3
Δομή Επανάληψης
Ηλογική των επαναληπτικών διαδικασιών εφαρμόζεται
στις περιπτώσεις όπου μία ακολουθία εντολών πρέπει να
εφαρμοστεί σε ένα σύνολο περιπτώσεων που έχουν κάτι
κοινό και πρέπει να εκτελεστούν περισσότερες από μία
φορές. Οι επαναλήψεις ελέγχονται πάντοτε από κάποια
συνθήκη, η οποία καθορίζει την έξοδο από αυτήν. Οι
εντολές που επαναλαμβάνονται αποτελούν το βρόχο
(loop) της επανάληψης. Η δομή αυτή εκφράζεται σε τρεις
μορφές, που υλοποιούνται με τις παρακάτω εντολές:
Η διαδικασία της επανάληψης χρησιμοποιείται συχνά στην
επίλυση των προβλημάτων.
4.
4
Όσο συνθήκη επανάλαβε
εντολήή εντολές
Τέλος_επανάληψης
Για μεταβλητή από τ1 μέχρι τ2 με_βήμα β
εντολή ή εντολές
Τέλος_επανάληψης
Επαναληπτικές Διαδικασίες
Αρχή_επανάληψης
εντολή ή εντολές
Μέχρις_ότου συνθήκη
Δομή Επανάληψης
5.
5
Δομή Επανάληψης
Η ΕντολήΟΣΟ
Με την εντολή αυτή, η επανάληψη
ελέγχεται από μία λογική έκφραση στην
αρχή και εκτελείται όσο η συνθήκη αυτή
είναι αληθής.
Είναι η πιο γενική εντολή της Δομής
Επανάληψης. Αντιμετωπίζει οποιοδήποτε
πρόβλημα απαιτεί επαναληπτική δομή για
την αντιμετώπισή του.
6.
6
Δομή Επανάληψης
Εντολές1
ΟΣΟ συνθήκηΕΠΑΝΑΛΑΒΕ
Εντολές2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Εντολές3
Εκτελούνται οι
εντολές_Πριν
Ελέγχεται η
συνθήκη
Αν είναι ΑΛΗΘΗΣ
εκτελούνται οι εντολές του
βρόχου και ξαναελέγχεται η
συνθήκη
Αν είναι ΨΕΥΔΗΣ η
επανάληψη σταματάει και
εκτελούνται οι εντολές
μετά…
8
Δομή Επανάληψης
Η ΕντολήΜΕΧΡΙΣ_ΟΤΟΥ…
Με την εντολή αυτή, η επανάληψη ελέγχεται από
μία λογική έκφραση στο τέλος και εκτελείται όσο
η συνθήκη αυτή είναι αληθής.
Είναι μία γενική εντολή της Δομής Επανάληψης.
Αντιμετωπίζει οποιοδήποτε πρόβλημα απαιτεί
επαναληπτική δομή για την αντιμετώπισή του.
Λόγω της θέσης της συνθήκης (στο τέλος) οι
εντολές μέσα στην επανάληψη θα εκτελεστούν
οπωσδήποτε τουλάχιστον μία φορά.
10
ΠΡΟΓΡΑΜΜΑ Άθροισμα2
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Χ,Άθροισμα, Πλήθος
ΠΡΑΓΜΑΤΙΚΕΣ: ΜΟ
ΧΑΡΑΚΤΗΡΕΣ: Επιλογή
ΑΡΧΗ
Πλήθος 0
Άθροισμα 0
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ ‘Δώσε αριθμό’
ΔΙΑΒΑΣΕ Χ
ΑΝ Χ<=0 ΤΟΤΕ
ΓΡΑΨΕ ‘Λάθος αριθμός, δοκιμάστε ξανά…’
ΤΕΛΟΣ_ΑΝ
! Αν το Χ δεν είναι θετικό εισάγουμε νέο αριθμό
ΜΕΧΡΙΣ_ΟΤΟΥ Χ>0
Άθροισμα Άθροισμα + Χ
Πλήθος Πλήθος +1
ΓΡΑΨΕ ‘Νέα μέτρηση;’
ΔΙΑΒΑΣΕ Επιλογή
ΜΕΧΡΙΣ_ΟΤΟΥ Επιλογή=’Ο’ Η
Επιλογή=’ο’
ΜΟ Άθροισμα / Πλήθος
ΓΡΑΨΕ ‘Άθροισμα =’, Άθροισμα
ΓΡΑΨΕ ‘Μέσος όρος =’, ΜΟ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Δομή Επανάληψης
Δίνονται θετικοί αριθμοί και υπολογίζεται ο μέσος όρος
τους. Μετά την εισαγωγή κάθε αριθμού ακολουθεί
ερώτηση σχετικά με το αν θα γίνει νέα εισαγωγή.
11.
11
Δομή Επανάληψης
Η εντολήΓΙΑ
Η εντολή αυτή χρησιμοποιείται μόνο όταν
γνωρίζουμε (ή μπορούμε να
υπολογίσουμε) από την εκφώνηση του
προβλήματος τον αριθμό των
επαναλήψεων που χρειάζεται να
πραγματοποιηθούν.
Επομένως η χρήση της είναι περιορισμένη
και δεν μπορεί να χρησιμοποιηθεί για να
την αντιμετώπιση όλων των προβλημάτων
που χρειάζονται την επαναληπτική δομή.
12.
12
Δομή Επανάληψης
Εντολές1
ΓΙΑ μΑΠΟ ατ ΜΕΧΡΙ ττ ΜΕ_ΒΗΜΑ β
Εντολές2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Εντολές3
Δουλεύει όπως η ισοδύναμη ΟΣΟ,
όπως φαίνεται στο διπλανό
διάγραμμα.
13.
13
Δομή Επανάληψης
Ότανχρησιμοποιείται οδηγεί σε πιο απλούς και κατανοητούς
αλγορίθμους από την ΟΣΟ ή την ΜΕΧΡΙΣ_ΟΤΟΥ.
Οι εντολές μέσα στην επανάληψη μπορεί να μην εκτελεστούν
καμία φορά
Το βήμα δεν μπορεί να πάρει την τιμή μηδέν (0) γιατί
δημιουργείται πρόβλημα μη περατότητας
Όταν το βήμα είναι 1, μπορεί να παραληφθεί η έκφραση
ΜΕ_ΒΗΜΑ.
Η μεταβλητή μ αρχικά παίρνει την ατ, αλλά μπορεί να μη γίνει ποτέ
ίση με την ττ.
Το βήμα μπορεί να πάρει πραγματική τιμή
Αν δεν τροποποιείται το βήμα και η τελική τιμή (πράγμα που γενικά
ισχύει) ο αριθμός των επαναλήψεων που πραγματοποιείται ισούται
με Α_Μ((ττ-ατ)/βήμα)+1
Η μεταβλητή μ παίρνει από μόνη τις τιμές (αρχικά ίση με αρχική
τιμή, στη συνέχεια αυξάνει κατά βήμα) χωρίς να υπάρχει εντολή
εκχώρησης. Οι ενέργειες εκχώρησης είναι ενσωματωμένες στην
εντολή ΓΙΑ
14.
14
Αλγόριθμος Παρ_Για
Sum 0
Για i από 1 μέχρι 100
Sum Sum +1
Τέλος_επανάληψης
Γράψε Sum
Τέλος Παράδειγμα_10
Δομή Επανάληψης
Υπολογίζεται το άθροισμα Α=1+2+…+100
15.
15
Δομή Επανάληψης
ΠΡΟΓΡΑΜΜΑΆρτιοι
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: π ,χ ,ι
ΑΡΧΗ
π← 0
ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 10
γραψε 'Δώσε τον ',ι, 'ο ακέραιο αριθμό: '
ΔΙΑΒΑΣΕ χ
ΑΝ χ MOD 2 = 0 ΤΟΤΕ
π←π+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ 'Άρτιοι : ',π
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ