Φωτογραφία Δημήτρης Ντούσκας
Απορίες για τις διορθώσεις
από Δημήτρης Ντούσκας - Wednesday, 9 May 2012, 3:57 PM
 
Καλησπέρα.πως θα μπορούσα να χρησιμοποιήσω την for για να μην έχω τόσα πολλά if στην λύση της 1ης άσκησης; δεν τα καταφέρνω
 
Φωτογραφία Βασίλης Κόλιας
Απάντηση: Απορίες για τις διορθώσεις
από Βασίλης Κόλιας - Wednesday, 9 May 2012, 4:16 PM
 
Κάτι σαν
for(int i=0; i<5; i++)
{
if(IsEven(r.next()))
Console.WriteLine("The number is even");
else
Console.WriteLine("The number is odd");
}
Φωτογραφία Δημήτρης Ντούσκας
Απάντηση: Απορίες για τις διορθώσεις
από Δημήτρης Ντούσκας - Wednesday, 9 May 2012, 4:30 PM
 
Ωραία ευχαριστώω..γίενται έτσι σωστά αλλά δεν μπορώ να το κάνω έτσι ώστε να εμφανίζει και τον αριθμό που εξετάζει κάθε φορα...
Φωτογραφία Βασίλης Κόλιας
Απάντηση: Απορίες για τις διορθώσεις
από Βασίλης Κόλιας - Wednesday, 9 May 2012, 6:05 PM
 
Ωραία άσκηση, για δοκίμασε να παίξεις με τη συνθήκη στο if και με κάποια από τις άλλες δομές επανάληψης και πόσταρε εδώ τα ευρήματά σου...
Φωτογραφία Δημήτρης Ντούσκας
Απάντηση: Απορίες για τις διορθώσεις
από Δημήτρης Ντούσκας - Thursday, 10 May 2012, 10:16 AM
 
Αρχικά δοκίμασα:
for(int i=0; i<5; i++)
{
if(IsEven(r.next()))
Console.WriteLine(r.next() + "The number is even");
else
Console.WriteLine(r.next() + "The number is odd");
}
αλλά μου έβζασε λάθος αποτελέσματα και φαντάστικα ότι θα παίρνει άλλους τυχαίους αριθμούς μέσα στο if από αυτές έξω...
μετά πριν τιν επαναληπτική δομή έφτιαξα ένα πίνακα με τους τυχαίους αριθμούς και έκανα foreach αλλα και πάλι λάθος τα έβγαζε....

Random r = new Random();
int num1 = r.Next();
int num2 = r.Next();
int num3 = r.Next();
int num4 = r.Next();
int num5 = r.Next();

int[] numbers = { num1, num2, num3, num4, num5 };

foreach(int num in numbers)
{
if (IsEven(r.Next()))
Console.WriteLine("The number : " + num + " The number is even");
else
Console.WriteLine("The number : " + num + " The number is odd");
}

Δεν μπορώ να σκεφτώ κάτι άλλο.....
Φωτογραφία ΕΥΑΓΓΕΛΟΣ ΤΑΜΠΑΚΗΣ
Απάντηση: Απορίες για τις διορθώσεις
από ΕΥΑΓΓΕΛΟΣ ΤΑΜΠΑΚΗΣ - Thursday, 10 May 2012, 11:01 AM
 
Θα σου πρότεινα να βάλεις :
if (IsEven(num))
{
Console.WriteLine("The number : " + num + " The number is even");
else
Console.WriteLine("The number : " + num + " The number is odd");
}

Αν βάλεις στο if αυτό που εχεις τότε τρέχει ξανά την random και δημιουργεί καινούργιο αριθμό και όχι αυτά που έχεις στον πίνακα.
Φωτογραφία Δημήτρης Ντούσκας
Απάντηση: Απορίες για τις διορθώσεις
από Δημήτρης Ντούσκας - Thursday, 10 May 2012, 11:38 AM
 
Σωστόοος!! Δουλεύει μια χαρά..Αν και νομίζω ο κ.Κόλιας εννούσε να γίνει χωρίς την χρήση πίνακα. Αλλά μόνο αυτή τη λύση μπορώ να σκεφτώ
Φωτογραφία Βασίλης Κόλιας
Απάντηση: Απορίες για τις διορθώσεις
από Βασίλης Κόλιας - Thursday, 10 May 2012, 11:37 AM
 
Ακριβώς, η απάντηση είναι πολύ πιο απλή. Μέσα στη for θα πρέπει να αποθηκεύσεις την τυχαία τιμή που δημιουργείται σε μια τοπική μεταβλητή. Αυτή τη μεταβλητή θα την ελέγχεις αν είναι άρτια και θα εκτυπώνεις την τιμή της ανάλογα.
Φωτογραφία Δημήτρης Ντούσκας
Απάντηση: Απορίες για τις διορθώσεις
από Δημήτρης Ντούσκας - Thursday, 10 May 2012, 11:46 AM
 
Αυτό;

for (int i = 0; i < 5; i++)
{
int number = r.Next();
if (IsEven(number))
Console.WriteLine(number + "The number is even");
else
Console.WriteLine(number + "The number is odd");
}
οπότε έτσι δεν χρειάζεται να γράψουμε και αυτό :

int num1 = r.Next();
int num2 = r.Next();
int num3 = r.Next();
int num4 = r.Next();
int num5 = r.Next();
σωστά;
Φωτογραφία Βασίλης Κόλιας
Απάντηση: Απορίες για τις διορθώσεις
από Βασίλης Κόλιας - Thursday, 10 May 2012, 12:55 PM
 
Ακριβώς