Επαναληπτικές Διαδικασίες Οι επαναληπτικές δομές ( εντολές επανάληψης επαναληπτικά σχήματα ) χρησιμοποιούνται, όταν μια ομάδα εντολών πρέπει να εκτελείται αρκετές- πολλές φορές ανάλογα με την τιμή μιας συνθήκης. Π.χ. Υπολογισμός μέσου όρου βαθμολογίας 400 μαθητών Υπάρχουν 3 μορφές επαναληπτικών δομών : διαφέρουν στον τρόπο με τον οποίο ελέγχεται το πλήθος των επαναλήψεων και κατά συνέπεια και ως προς τη χρήση 2014-15 Α. ΑΝΔΡΙΑΝΟΠΟΥΛΟΥ 1
Α. Εντολή : Όσο επανάλαβε Τέλος_επανάληψης ΓΕΝΙΚΗ ΜΟΡΦΗ Όσο < συνθήκη > επανάλαβε < ομάδα εντολών > Τέλος_επανάληψης Συνθήκη Ομάδα εντολών Επόμενη εντολή του αλγορίθμου ΛΕΙΤΟΥΡΓΙΑ Ελέγχεται η συνθήκη. Αν η συνθήκη είναι εκτελείται η ομάδα εντολών ( βρόχος ) που βρίσκεται μεταξύ επανάλαβε και Τέλος_επανάληψης. Στη συνέχεια επιστρέφει στο Όσο και ελέγχεται εκ νέου η συνθήκη. Η ομάδα εντολών ( βρόχος ) επαναλαμβάνεται Όσο η συνθήκη είναι Όταν η συνθήκη γίνει, εκτελείται η αμέσως επόμενη εντολή του αλγορίθμου μετά το Τέλος_επανάληψης. 2014-15 Α. ΑΝΔΡΙΑΝΟΠΟΥΛΟΥ 2
ΠΑΡΑΔΕΙΓΜΑ : Εκτύπωση αριθμών από 1-100 Αρχή Ι 1 Ι 100 Τέλος Ι Ι + 1 Αλγόριθμος Εκτύπωση_Αριθμών Ι 1 Όσο Ι 100 επανάλαβε Ι Ι + 1 Τέλος_επανάληψης Τέλος Εκτύπωση_Αριθμών 2014-15 Α. ΑΝΔΡΙΑΝΟΠΟΥΛΟΥ 3
ΠΑΡΑΤΗΡΗΣΕΙΣ 1. Παρατηρούμε ότι κάθε αριθμός παράγεται από τον προηγούμενό του, προσθέτοντας κάθε φορά το 1. Χρησιμοποιούμε λοιπόν, τη μεταβλητή Ι, η οποία παίρνει αρχική τιμή 1 και αυξάνεται κατά 1, φτάνοντας μέχρι και το 100. Η μεταβλητή αυτή ονομάζεται μετρητής. Γενικά μετρητής ονομάζεται μια μεταβλητή, που χρησιμοποιείται για την καταμέτρηση πλήθους. Στους μετρητές δίνουμε πάντα αρχική τιμή με χρήση της εντολής εκχώρησης ( συνήθως 0 ή 1ή κάτι άλλο ανάλογα με το ζητούμενο ). Ι 1. Η αύξηση του μετρητή γίνεται με χρήση της εντολής εκχώρησης Ι Ι + 1. 2. Το τμήμα του αλγορίθμου που επαναλαμβάνεται ονομάζεται βρόχος. 3. Η ομάδα εντολών ( βρόχος ) επαναλαμβάνεται όσο η συνθήκη είναι αληθής. Όταν η συνθήκη γίνει ψευδής, εκτελείται η αμέσως επόμενη εντολή του αλγορίθμου. 4. Ο έλεγχος της συνθήκης γίνεται στην αρχή της επανάληψης. Έτσι οι εντολές μέσα στο βρόχο μπορεί να μην εκτελεστούν (ποτέ), αν η συνθήκη είναι ψευδής (από την αρχή ). Π.χ. Αν στο παραπάνω παράδειγμα δίναμε στο Ι αρχική τιμή 1000. 5. Μέσα στο βρόχο πρέπει να υπάρχει εντολή ( ές ), που να αλλάζει τη συνθήκη, γιατί αλλιώς, αν η συνθήκη είναι αληθής), δεν τελειώνουν οι επαναλήψεις (ποτέ εκτελούνται επ άπειρο- ατέρμονας βρόχος ). Στο παραπάνω παράδειγμα ποια είναι η εντολή αλλαγής της συνθήκης; 6. Η παραπάνω εντολή επανάληψης χρησιμοποιείται όταν ο αριθμός των επαναλήψεων είναι άγνωστος. 7. Ο παραπάνω αλγόριθμος μπορεί να γραφεί με διάφορες παραλλαγές ( π. χ. ανάλογα με την αρχική τιμή που δίνω στο μετρητή 1 ή 0 ) 2014-15 Α. ΑΝΔΡΙΑΝΟΠΟΥΛΟΥ 4
Β. Εντολή : Αρχή_επανάληψης Μέχρις_ότου ΓΕΝΙΚΗ ΜΟΡΦΗ Αρχή_επανάληψης < ομάδα εντολών > Μέχρις_ότου < συνθήκη > Ομάδα εντολών Συνθήκη Επόμενη εντολή του αλγορίθμου ΛΕΙΤΟΥΡΓΙΑ Εκτελείται η ομάδα εντολών ( βρόχος ) που βρίσκεται μεταξύ Αρχή_επανάληψης και Μέχρις_ότου < συνθήκη>. Ελέγχεται η συνθήκη. Αν η συνθήκη είναι επιστρέφει στο Αρχή_επανάληψης και εκτελείται η ομάδα εντολών ( βρόχος )που βρίσκεται μεταξύ Αρχή_επανάληψης και Μέχρις_ότου. Στη συνέχεια ελέγχεται εκ νέου η συνθήκη. Η ομάδα εντολών ( βρόχος ) επαναλαμβάνεται Μέχρις ότου η συνθήκη γίνει, δηλαδή όσο η συνθήκη είναι Όταν η συνθήκη γίνει, εκτελείται η αμέσως επόμενη εντολή του αλγορίθμου μετά το Μέχρις_ότου < συνθήκη>. 2014-15 Α. ΑΝΔΡΙΑΝΟΠΟΥΛΟΥ 5
ΠΑΡΑΔΕΙΓΜΑ : Εκτύπωση αριθμών από 1-100 Αρχή Ι 1 Ι Ι + 1 Ι > 100 Τέλος Αλγόριθμος Εκτύπωση_Αριθμών Ι 1 Αρχή_επανάληψης Ι Ι + 1 Μέχρις_ότου Ι > 100 Τέλος Εκτύπωση_Αριθμών 2014-15 Α. ΑΝΔΡΙΑΝΟΠΟΥΛΟΥ 6
ΠΑΡΑΤΗΡΗΣΕΙΣ 1. Η ομάδα εντολών ( βρόχος ) επαναλαμβάνεται όσο η συνθήκη είναι ψευδής ( δηλαδή μέχρι η συνθήκη να γίνει αληθής ). Όταν η συνθήκη γίνει αληθής, εκτελείται η αμέσως επόμενη εντολή του αλγορίθμου. 2. Ο έλεγχος της συνθήκης γίνεται στο τέλος της επανάληψης.έτσι οι εντολές μέσα στο βρόχο εκτελούνται τουλάχιστον μια φορά ( αν η συνθήκη είναι αληθής από την αρχή εκτελούνται ακριβώς μια φορά). Π.χ. Αν στο παραπάνω παράδειγμα δίναμε στο Ι αρχική τιμή 1000. 3. Μέσα στο βρόχο πρέπει να υπάρχει εντολή ( ές ), που να αλλάζει τη συνθήκη, γιατί αλλιώς, αν η συνθήκη είναι ψευδής, δεν τελειώνουν οι επαναλήψεις (ποτέ- εκτελούνται επ άπειρο - ατέρμονας βρόχος ). Στο παραπάνω παράδειγμα ποια είναι η εντολή αλλαγής της συνθήκης; 4. Η παραπάνω εντολή επανάληψης χρησιμοποιείται όταν ο αριθμός των επαναλήψεων είναι άγνωστος. 5. Ο παραπάνω αλγόριθμος μπορεί να γραφεί με διάφορες παραλλαγές ( π. χ. ανάλογα με την αρχική τιμή που δίνω στο μετρητή 1 ή 0 ) 6. Για το μετρητή ισχύουν τα ίδια με προηγούμενα 2014-15 Α. ΑΝΔΡΙΑΝΟΠΟΥΛΟΥ 7
Γ. Εντολή : Για από μέχρι Τέλος_επανάληψης ΓΕΝΙΚΗ ΜΟΡΦΗ Για Μεταβλητή από Τ1 μέχρι Τ2 με_βήμα β < ομάδα εντολών > Τέλος_επανάληψης Μεταβλητή Τ1 Μεταβλητή Τ2 (ή Μεταβλητή Τ2) Ομάδα εντολών Μεταβλητή Μεταβλητή + β Επόμενη εντολή του αλγορίθμου ΛΕΙΤΟΥΡΓΙΑ Ελέγχεται η συνθήκη : Μεταβλητή Τ2 ή Μεταβλητή Τ2 ( ανάλογα το πρόσημο του βήματος β ) Αν η συνθήκη είναι εκτελείται η ομάδα εντολών ( βρόχος ) που βρίσκεται μεταξύ Για και Τέλος_επανάληψης. Στη συνέχεια επιστρέφει στο Για και ελέγχεται εκ νέου η συνθήκη. Η ομάδα εντολών ( βρόχος ) επαναλαμβάνεται όσο η συνθήκη είναι Όταν η συνθήκη γίνει, εκτελείται η αμέσως επόμενη εντολή του αλγορίθμου μετά το Τέλος_επανάληψης. 2014-15 Α. ΑΝΔΡΙΑΝΟΠΟΥΛΟΥ 8
ΠΑΡΑΔΕΙΓΜΑ 1 : Εκτύπωση αριθμών από 1-100 Αρχή Ι 1 Ι 100 Τέλος Ι Ι + 1 Αλγόριθμος Εκτύπωση_Αριθμών Για Ι από 1 μέχρι 100 Τέλος_επανάληψης Τέλος Εκτύπωση_Αριθμών 2014-15 Α. ΑΝΔΡΙΑΝΟΠΟΥΛΟΥ 9
ΠΑΡΑΤΗΡΗΣΕΙΣ 1. Η αρχική τιμή της Μεταβλητής δίνεται με το από ενώ η τελική τιμή δίνεται με το μέχρι (στο ΠΑΡΑΔΕΙΓΜΑ 1 : Για Ι από 1 μέχρι 100 ). Γι αυτό δε χρειάζεται εντολή αλλαγής της συνθήκης μέσα στο βρόχο (και κατά συνέπεια τερματισμού του βρόχου). 2. Το βήμα β προσδιορίζει την αριθμητική ποσότητα που προστίθεται και μπορεί να είναι θετικό ή αρνητικό. Αν β=1 (όπως στο ΠΑΡΑΔΕΙΓΜΑ 1 ) τότε μπορεί να παραληφθεί. Αν β>0 τότε : ( Τ1 Τ2 ) Μετά την εκτέλεση των εντολών του βρόχου η Μεταβλητή αυξάνεται αυτόματα κατά β ( στο ΠΑΡΑΔΕΙΓΜΑ 1 : κατά 1 ) και ελέγχεται η συνθήκη Μεταβλητή Τ2 ( στο ΠΑΡΑΔΕΙΓΜΑ 1 : Ι 100 ) Αν ισχύει η συνθήκη, επαναλαμβάνονται οι εντολές του βρόχου, αλλιώς τερματίζεται η επανάληψη και εκτελείται η επόμενη εντολή του αλγορίθμου. Αν β<0 τότε : ( Τ1 Τ2 ) Μετά την εκτέλεση των εντολών του βρόχου η Μεταβλητή μειώνεται αυτόματα κατά β και ελέγχεται η συνθήκη Μεταβλητή Τ2. Αν ισχύει η συνθήκη, επαναλαμβάνονται οι εντολές του βρόχου, αλλιώς τερματίζεται η επανάληψη και εκτελείται η επόμενη εντολή του αλγορίθμου. 2014-15 Α. ΑΝΔΡΙΑΝΟΠΟΥΛΟΥ 10