ΟΣΟ ... ΕΠΑΝΑΛΑΒΕ
Εντολή Επανάληψης ΟΣΟ
Σύνταξη Εντολής στη ΓΛΩΣΣΑ |
Κωδικοποίηση σε Διάγραμμα Ροής |
Εντολές_Πριν ΟΣΟ συνθήκη_συνέχειας ΕΠΑΝΑΛΑΒΕ
Εντολές_Βρόχου
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Εντολές_Μετά |
|
Πως δουλεύει:
1ο βήμα:
Εκτελούνται οι
εντολές_Πριν (πριν την επανάληψη). Εδώ κάπου γίνεται η απόδοση στην συνθήκη
κάποιας τιμής έμμεσα ή άμεσα (Αρχικοποίηση συνθήκης)
2ο βήμα:
Ελέγχεται την συνθήκη_συνέχειας.
Αν η συνθήκη είναι αληθής τότε
α) εκτελούνται οι εντολές_Βρόχου μέσα στην επανάληψη. Προσοχή κάπου εδώ πρέπει να τροποποιούνται οι μεταβλητές που συμμετέχουν στην συνθήκη ώστε κάποτε η συνθήκη να γίνει ψευδής.
β) Μόλις φτάσουμε στο ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ, πηγαίνουμε στο ΟΣΟ και ελέγχουμε πάλι την συνθήκη
Αν η συνθήκη είναι Ψευδής τότε η επανάληψη τερματίζεται και δεν εκτελούνται μέσα σε αυτή)
3ο βήμα:
Εκτελούνται οι Εντολές_Μετά που είναι μετά την επανάληψη. Εδώ συνήθως γίνεται η παρουσίαση των αποτελεσμάτων του αλγορίθμου.
Παρατηρήσεις:
Το γεγονός ότι η συνθήκη ελέγχεται στην αρχή σημαίνει ότι οι εντολές μέσα στην επανάληψη μπορεί να μην εκτελεστούν ποτέ (αν η αρχική τιμή της συνθήκης είναι ψευδής).
Σε περίπτωση που η συνθήκη είναι συνέχεια αληθής, οι εντολές εκτελούνται επ' άπειρο.
Παράδειγμα:
Το παρακάτω πρόγραμμα δέχεται από το πληκτρολόγιο ονόματα και βαθμούς μαθητών μέχρι να δοθεί ως όνομα το κενό και εμφανίζει το ΜΟ της βαθμολογίας των μαθητών με βαθμό πάνω από τη βάση (>10).
(Ενεργοποιήσετέ το για να δείτε πως γίνεται η εκτέλεση)
ΠΡΟΓΡΑΜΜΑ Μαθητές
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: πλ
ΠΡΑΓΜΑΤΙΚΕΣ: β, ΜΟ, Αθρ, Αποτ
ΧΑΡΑΚΤΗΡΕΣ: Ον
ΑΡΧΗ
ΓΡΑΨΕ 'Δώσε το ονοματεπώνυμο του μαθητή:'
ΔΙΑΒΑΣΕ Ον
πλ <- 0
Αθρ <- 0
ΟΣΟ Ον <> '' ΕΠΑΝΑΛΑΒΕ
ΓΡΑΨΕ 'Δώσε το βαθμό του μαθητή:'
ΔΙΑΒΑΣΕ β
ΑΝ β > 10 ΤΟΤΕ
Αθρ <- Αθρ + β
πλ <- πλ + 1
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ 'Δώσε το ονοματεπώνυμο του μαθητή:'
ΔΙΑΒΑΣΕ Ον !
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ πλ > 0 ΤΟΤΕ
ΜΟ <- Αθρ/πλ
ΓΡΑΨΕ 'Ο μέσος όρος βαθμολογίας είναι ', ΜΟ
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Δεν υπάρχουν βαθμοί μεγαλύτεροι του 10'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Παράδειγμα 2:
Το παρακάτω τμήμα προγράμματος υπολογίζει το άθροισμα Α=102+82+62+42+22
'''
Σ<- 0
χ <- 10
ΟΣΟ χ>0 ΕΠΑΝΑΛΑΒΕ
Σ <- Σ + χ^2
χ <- χ - 2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ Σ