Δομή επανάληψης: Αποτελείται από ένα σύνολο εντολών που εκτελούνται πολλές φορές (αυτοματοποιημένα). Εφαρμόζεται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι κοινό. Η διαδικασία της επανάληψης είναι πολύ συχνή. Στη δομή αυτή ανήκουν η εντολή Όσο, η εντολή Αρχή_επανάληψης κι η εντολή Για. Οι εντολές αυτές περιγράφονται πιο αναλυτικά στο κεφάλαιο 8 (βλ. παρ. 8.2 σελ. 173-181). Η εντολή Όσο συντάσσεται (στη γενική της μορφή) ως εξής: Όσο Συνθήκη επανέλαβε Εντολή_1 [Εντολή_2] Σύνολο Εντολών Τέλος_επανάληψης Οι λέξεις που είναι έντονες είναι πάλι δεσμευμένες λέξεις. Οι τετράγωνες αγκύλες [] σημαίνουν πάλι πως οτιδήποτε περιέχεται σ αυτές είναι προαιρετικό. Η συνθήκη είναι μία λογική έκφραση (που είναι είτε αληθής είτε ψευδής). Πρέπει να προσέχουμε οι μεταβλητές που υπάρχουν στη συνθήκη να έχουν πάρει τιμές (π.χ. με χρήση εντολών εισόδου ή ανάθεσης τιμής) πριν την εκτέλεση της εντολής Όσο. Το σύνολο εντολών είναι δυνατό να εκτελεστεί από 0 έως άπειρες φορές. Βέβαια πρέπει να εξασφαλίσουμε ότι η συνθήκη είναι τέτοια που δεν θα υπάρχει πρόβλημα περατότητας. Η εντολή Όσο λειτουργεί ως εξής: Αρχικά ελέγχεται η συνθήκη. Αν είναι αληθής τότε εκτελείται το σύνολο εντολών. Στη συνέχεια ελέγχεται εκ νέου η συνθήκη κι αν είναι αληθής τότε εκτελείται πάλι το σύνολο εντολών. Όταν η συνθήκη γίνει ψευδής τότε τελειώνει η επανάληψη κι ο αλγόριθμος συνεχίζεται με την εντολή που ακολουθεί το Τέλος_επανάληψης. Παρατηρήσεις για την δομή Όσο..επανάλαβε( ΣΟΣ)
Η ομάδα εντολών ανάμεσα στο Όσο. επανάλαβε και το Τελος_επαναληψης μπορεί να μην εκτελεστεί ποτέ, γιατί η συνθήκη μπορεί να είναι ψευδής. Δεν γνωρίζουμε εκ των προτέρων τον αριθμό των επαναλήψεων. Η ομάδα εντολών της επανάληψης εκτελείτε Όσο η συνθήκη είναι αληθής. Στην ομάδα εντολών πρέπει να περιλαμβάνονται και εντολές που θα τροποποιούν τη συνθήκη, έτσι ώστε κάποια στιγμή να γίνει ψευδής και να τερματιστεί η επανάληψη. Η δομή Όσο.. επανάλαβε χρησιμοποιείτε όταν δεν γνωρίζουμε τον ακριβή αριθμό επαναλήψεων. Όταν δηλαδή δεν γνωρίζουμε από την αρχή πόσες φορές θέλουμε να εκτελεστεί μια ομάδα εντολών, αλλά η εκτέλεση εξαρτάται από μια συνθήκη. ΘΕΩΡΕΙΑ Ατέρμων βρόχος. Δίνεται το παρακάτω τμήμα αλγόριθμου.. Αß4 Ο βρόχος αυτός δεν τερματίζει ποτέ γιατί η αρχική τιμή Όσο α<8 επανάλαβε της α είναι 4 και στην επανάληψη η τιμή της μειώνεται Εμφάνισε α κατά 1. Δηλαδή θα πάρει την τιμή 3,2,1,0.οι οποίες Αßα-1 είναι πάντα <8. Έτσι η συνθήκη της επανάληψης θα Τέλος_επανάληψης είναι πάντα αληθής και η επανάληψη θα εκτελεστεί άπειρες φορές
Το διάγραμμα ροής της δομής επανάληψης Όσο.. επανάλαβε είναι ΣΥΝΘΗ ΚΗ Ξ ΝΑΙ Εντολή 1 όχι Επόμενη εντολή εκτός δομής Εντολή ν ΜΕΘΟΔΟΛΟΓΙΑ ΑΣΚΗΣΕΩΝ Στις περισσότερες ασκήσεις, όπου πρέπει να εμφανίσουμε ή να επεξεργαστούμε μια δεδομένη ακολουθία αριθμών θα πρέπει να προσέχουμε τα παρακάτω : Τον αρχικό αριθμό ακολουθίας αριθμών. Τον τελικό αριθμό της ακολουθίας αριθμών. Το αν η σειρά των αριθμών είναι αύξουσα η φθίνουσα. Τη διάφορα μεταξύ των αριθμών. Ασκήσεις Να γράφει αλγόριθμος που θα εμφανίζει τους αριθμούς 1,2,3, 100 Να γράφει αλγόριθμος που θα εμφανίζει τους αριθμούς 99,97,95,.1 Να γράφει αλγόριθμος που θα υπολογίζει το άθροισμα 1+3+5+.+99
Στις ασκήσεις όπου πρέπει να διαβάσουμε ένα άγνωστο πλήθος αριθμών ή αλφαριθμητικών τιμών, θα κάνουμε τα εξής βήματα : 1. Τον πρώτο αριθμό ή αλφαριθμητικοί τιμή θα τον διαβάζει ο αλγόριθμος πριν την επανάληψη, για να μπορεί να γίνει ο έλεγχος στην αρχή της επανάληψης. 2. Στο εσωτερικό της επανάληψης θα εκτελούνται οι απαραίτητες ενέργειες για την τιμή της μεταβλητής οχ θα υπολογίζει άθροισμα ή γινόμενο.. 3. Πριν το τελος_επαναληψης θα διαβάζεται ο επόμενος αριθμός και θα εισάγεται στην ίδια μεταβλητή. Έτσι όταν επανέλθουμε στην αρχή της επανάληψης μπορούμε να ελέγξουμε την τιμή της ίδιας της μεταβλητής. Παράδειγμα Να γράφει αλγόριθμος που θα διαβάζει αριθμούς από το πληκτρολόγιο μέχρι να δοθεί σαν είσοδος ο αριθμός 0. για κάθε αριθμό που εισάγεται θα εμφανίζεται ο διπλάσιος του. Απάντηση : αλγόριθμος τεστ πλήθος ß0 άθροισμαç0 γινόμενοß0 Εμφάνισε δώσε ένα αριθμό Διάβασε α Όσο α<>0 επανάλαβε πλήθοςßπλήθος + 1 άθροισμαßάθροισμα + α γινόμενοßγινόμενο *α Εμφάνισε δώσε ένα αριθμό Διάβασε α Τελος_επαναληψης Εμφάνισε πλήθος.,πλήθος Εμφάνισε άθροισμα.,άθροισμα Εμφάνισε γινόμενο.,γινόμενο Τέλος τεστ Ασκήσεις
1. Να γράφει αλγόριθμος που θα διαβάζει αριθμούς από το πληκτρολόγιο μέχρι να δοθεί σαν είσοδος ο αριθμός 0. Ο Αλγόριθμος να υπολογίζει το πλήθος των θετικών και αρνητικών αριθμών καθώς και τα ποσοστά τους. 2. Να γράφει αλγόριθμος ο οποίος θα διαβάζει τα ονόματα ενός συνόλου μαθητών της γ λυκείου και τους βαθμούς τους στα γραπτά στα μαθήματα κατεύθυνσης. Για κάθε μαθητή να εμφανίζεται ο μέσος όρος των γραπτών του. Ο Αλγόριθμος να τερματίζει είτε αν δοθεί ο χαρακτήρας κενό είτε όταν δοθεί η λέξη τελευταίος.