Στην συνθήκη επανάληψης (επανέλαβε μέχρι ) άμα μου ζητάει να διαβάζω συνέχεια αριθμούς μεχριν να δοθεί ο αριθμός 0 ή αριθμός μικρότερος από το 0. θα πρέπει να έλεγχο τον αριθμό που θα καταχωρηθεί κάθε φορά άμα είναι μεγαλύτερος από το 0;
Π.χ
Αρχή
Επανέλαβε
Διάβασε χ
Αν χ>0
Τότε
Αρχή
Υ:=x*2
Εμφάνισε y
Τέλος
Μέχρι χ<=0
Τέλος
για την αρχή επανάληψης δες εδώ (http://users.sch.gr/ptsiotakis/old/aepp/aepp_theory2c.htm)
αν για παράδειγμα θέλεις να διαβάσεις αριθμούς μέχρι ότου δοθει αρνητικός ή μηδέν θα μπορούσες να γράψεις το εξής:
<εντολές>
Αρχή_Επανάληψης
Διάβασε αριθμός
<εντολές>
Μέχρις_Ότου αριθμός<=0
<εντολές>
Παράθεση από: Mhtsos στις 30 Νοε 2012, 12:54:34 ΠΜ
Στην συνθήκη επανάληψης (επανέλαβε μέχρι ) άμα μου ζητάει να διαβάζω συνέχεια αριθμούς μεχριν να δοθεί ο αριθμός 0 ή αριθμός μικρότερος από το 0. θα πρέπει να έλεγχο τον αριθμό που θα καταχωρηθεί κάθε φορά άμα είναι μεγαλύτερος από το 0;
Εξαρτάται από το ποιο είναι το ζητούμενο! Ποιο είναι το ζητούμενο στη περίπτωση που αναφέρεις;
Παράθεση από: dpa2006 στις 30 Νοε 2012, 10:49:38 ΠΜ
για την αρχή επανάληψης δες εδώ (http://users.sch.gr/ptsiotakis/old/aepp/aepp_theory2c.htm)
αν για παράδειγμα θέλεις να διαβάσεις αριθμούς μέχρι ότου δοθει αρνητικός ή μηδέν θα μπορούσες να γράψεις το εξής:
<εντολές>
Αρχή_Επανάληψης
Διάβασε αριθμός
<εντολές>
Μέχρις_Ότου αριθμός<=0
<εντολές>
Αυτό δεν είναι ακριβώς σωστό
Όταν δοθεί αρνητικός αριθμός ή μηδέν, οι εντολές μέσα στην επανάληψη δεν θα πρέπει να εκτελεστούν
Το πρόβλημα λύνεται με μια εντολή Διάβασε πριν την επανάληψη και μια εντολή Διάβασε πριν την συνθήκη του Μέχρις_Ότου
Η άσκηση λέει να διαβάζει έναν αριθμό και θα εμφανίζει το διπλάσιο του.αυτο θα επαναλαμβάνεται συνεχώς μέχρι να δοθεί ένας αρνητικός αριθμός η το μηδέν.
Παράθεση από: petrosp13 στις 30 Νοε 2012, 05:23:19 ΜΜ
Όταν δοθεί αρνητικός αριθμός ή μηδέν, οι εντολές μέσα στην επανάληψη δεν θα πρέπει να εκτελεστούν
Το πρόβλημα λύνεται με μια εντολή Διάβασε πριν την επανάληψη και μια εντολή Διάβασε πριν την συνθήκη του Μέχρις_Ότου
Κι αν δοθεί από την αρχή αρνητικός αριθμός ή μηδέν (στην 1η Διάβασε), πάλι δεν θα πρέπει να διασφαλισθεί ότι οι εντολές δεν θα εκτελεστούν για αυτόν τον αριθμό;
Προφανώς με μια επανάληψη Όσο λύνεται και αυτό το πρόβλημα, αν και θεωρώ μη λογικό να ελεγχθεί μια τέτοια περίπτωση
Παράθεση από: petrosp13 στις 30 Νοε 2012, 11:19:54 ΜΜ
... θεωρώ μη λογικό να ελεγχθεί μια τέτοια περίπτωση
Το θέμα είναι αν θα θεωρηθεί σωστό να μην ελεγχθεί...
Παράθεση από: Mhtsos στις 30 Νοε 2012, 12:54:34 ΠΜ
Στην συνθήκη επανάληψης (επανέλαβε μέχρι ) άμα μου ζητάει να διαβάζω συνέχεια αριθμούς μεχριν να δοθεί ο αριθμός 0 ή αριθμός μικρότερος από το 0. θα πρέπει να έλεγχο τον αριθμό που θα καταχωρηθεί κάθε φορά άμα είναι μεγαλύτερος από το 0;
Π.χ
Αρχή
Επανέλαβε
Διάβασε χ
Αν χ>0
Τότε
Αρχή
Υ:=x*2
Εμφάνισε y
Τέλος
Μέχρι χ<=0
Τέλος
Η λύση που διατυπώνεις είναι η σωστή, καθώς συνηθίζεται η τιμή που δίνεται για τερματισμό της επανάληψης, να μην χρησιμοποιείται σε οποιαδήποτε πράξη, αθροίσματα, κλπ και να χρησιμοποιείται μόνο για να τερματίζει μια επαναληπτική διαδικασία.
Γι' αυτό τον λόγο τοποθετείται στο εσωτερικό της επανάλαβε, και μετά το Διάβασε, μία εντολή Αν που αποτρέπει την εκτέλεση οποιαδήποτε πράξης με την τιμή τερματισμού.