Η εντολή ΓΙΑ
Η εντολή αυτή χρησιμοποιείται όταν ξέρουμε προκαταβολικά πόσες επαναλήψεις θα χρειαστούν. Η σύνταξη (γενική μορφή) της εντολής ΓΙΑ είναι:
Ως μεταβλητή μπορούμε να βάλουμε όποιο όνομα θέλουμε, συνήθως όμως χρησιμοποιούμε τα γράμματα I ή J. Το πλήθος των επαναλήψεων προκύπτει από τους αριθμούς: αρχική, τελική και βήμα. Η μεταβλητή παίρνει αρχικά την τιμή αρχική και στο τέλος κάθε επανάληψης προστίθεται σε αυτή ο αριθμός βήμα. Η επαναληπτική διαδικασία τερματίζεται όταν η μεταβλητή ξεπεράσει τον τελική. Εάν η μεταβλητή βήμα είναι 1 τότε μπορεί να παραληφθεί το τμήμα «ΜΕ_ΒΗΜΑ βήμα». Δεν επιτρέπεται να μεταβάλουμε με κάποια εντολή εκχώρησης μέσα στην ΓΙΑ την τιμή της μεταβλητής.
Πατήστε τα δύο κουμπιά παρακάτω για να δείτε την σύνταξη (γενική μορφή) και το αντίστοιχο λογικό διάγραμμα της εντολής ΓΙΑ όταν αντίστοιχα το βήμα είναι θετικό και αρνητικό.:
Στον παρακάτω πίνακα φαίνεται το πλήθος των επαναλήψεων για διαφορετικές περιπτώσεις.
ΓΙΑ | επαναλήψεις |
---|---|
ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 10 ΜΕ_ΒΗΜΑ 2 εντολές ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ | 4 |
ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 0 ΜΕ_ΒΗΜΑ 3 εντολές ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ | 0 |
ΓΙΑ I ΑΠΟ 5 ΜΕΧΡΙ 1 ΜΕ_ΒΗΜΑ -2 εντολές ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ | 3 |
ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ 10 ΜΕ_ΒΗΜΑ 0 εντολές ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ | άπειρες |
ΓΙΑ I ΑΠΟ 1 ΜΕΧΡΙ -1.5 ΜΕ_ΒΗΜΑ 0.5 εντολές ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ | 6 |
ΓΙΑ I ΑΠΟ 3 ΜΕΧΡΙ 5 εντολές ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ | 3 |
Άσκηση
Να γραφτεί τμήμα προγράμματος που εμφανίζει τα τετράγωνα των ζυγών αριθμών 100, 102, …, 200.
ΓΙΑ I ΑΠΟ 100 ΜΕΧΡΙ 200 ΜΕ_ΒΗΜΑ 2
ΓΡΑΨΕ Ι^2
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Ερώτηση
Αν στο τέλος του προηγούμενο προγράμματος προσθέσουμε την εντολή ΓΡΑΨΕ Ι, τι εμφανιστεί επιπλέον;
Απάντηση
Η σωστή απάντηση δεν είναι 200 αλλά 202. Όταν το Ι φτάσει στην τιμή 200 η ΓΙΑ θα κάνει ακόμη μια επανάληψη και η τιμή θα γίνει 202 που θα οδηγήσει στον τερματισμό της ΓΙΑ.
Κάθε εντολή ΟΣΟ, ΜΕΧΡΙΣ_ΟΤΟΥ και ΓΙΑ μαζί με τις εντολές που περιέχουν λέγεται βρόχος (loop). Όταν ο βρόχος θα εκτελείται αενάως καλείται ατέρμων βρόχος (infinite loop).
Επιτρέπεται μέσα σε βρόχο να υπάρχει άλλος βρόχος κοκ. Στη χρήση των εμφωλευμένων βρόχων ισχύουν συγκεκριμένοι κανόνες:
- Ο εσωτερικός βρόχος πρέπει να βρίσκεται ολόκληρος μέσα στον εξωτερικό. Ο βρόχος που ξεκινάει τελευταίος, πρέπει να ολοκληρώνεται πρώτος.
- Η είσοδος σε κάθε βρόχο υποχρεωτικά γίνεται από την αρχή του (Στην ΓΛΩΣΣΑ και να θέλουμε δεν μπορεί να γίνει διαφορετικά).
- Δεν μπορεί να χρησιμοποιηθεί η ίδια μεταβλητή ως μετρητής δύο ή περισσοτέρων βρόχων που ο ένας βρίσκεται στο εσωτερικό του άλλου.
Μετρητές
Σε πολλές ασκήσεις ζητείται να καταμετρηθεί το πλήθος των τιμών που ικανοποιούν μια συνθήκη (π.χ. είναι θετικοί αριθμοί). Η καταμέτρηση γίνεται με την βοήθεια μιας μεταβλητής-μετρητής που η αρχική της τιμή είναι 0.
Άσκηση
Να γραφεί τμήμα προγράμματος που διαβάζει 100 αριθμούς και εμφανίζει το πλήθος των θετικών.
πλ←0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100
ΔΙΑΒΑΣΕ X
ΑΝ Χ>0 ΤΟΤΕ
πλ ←πλ+1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ πλ
Άθροισμα – γινόμενο πολλών αριθμών
Επίσης συχνά ζητείται να υπολογιστεί το άθροισμα κάποιων τιμών που ικανοποιούν μια συνθήκη (π.χ. από το 1 μέχρι το 100). Ο υπολογισμός γίνεται με την βοήθεια μιας μεταβλητής που η αρχική της τιμή είναι 0. Αν αντί για άθροισμα ζητηθεί το γινόμενο των αριθμών τότε χρησιμοποιούμαι μια μεταβλητή του οποίου η αρχική τιμή είναι 1.
Άσκηση
Να γραφεί τμήμα προγράμματος που διαβάζει ένα θετικό ακέραιο αριθμό Ν και στην συνέχεια υπολογίζει το άθροισμα και το γινόμενο των ακέραιων αριθμών από το 1 μέχρι το Ν (1+2+…+Ν και 1*2*…*Ν).
ΔΙΑΒΑΣΕ Ν
ΑΘ←0
ΓΙΝ←1
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν
ΑΘ←ΑΘ+Ι
ΓΙΝ←ΓΙΝ*Ι
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ ΑΘ, ΓΙΝ
Έλεγχος εγκυρότητας
Συχνά παρουσιάζεται η ανάγκη τα ίδια τα προγράμματα που φτιάχνουμε να ελέγχουν και να αποδέχονται μόνο έγκυρες τιμές. Π.χ. σε ένα πρόγραμμα επεξεργασίας των βαθμών των μαθητών μιας τάξης δεν θα πρέπει να γίνονται αποδεκτές τιμές όπως -10 ή 200. Ο έλεγχος εγκυρότητας μπορεί εύκολα να υλοποιηθεί με την ΜΕΧΡΙΣ_ΟΤΟΥ ή την ΟΣΟ.
Άσκηση
Να γραφεί τμήμα προγράμματος που διαβάζει την βαθμολογία ενός μαθητή. Θα δέχεται μόνο έγκυρες τιμές δηλαδή από 0 μέχρι 20.
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ βαθ
ΜΕΧΡΙΣ_ΟΤΟΥ βαθ>=0 ΚΑΙ βαθ<=20
ή
ΔΙΑΒΑΣΕ βαθ
ΟΣΟ βαθ<0 ή βαθ>20 ΕΠΑΝΑΛΑΒΕ
ΔΙΑΒΑΣΕ βαθ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Εύρεση μεγίστου/ ελαχίστου
Η εύρεση του μεγίστου ή ελαχίστου μεταξύ δύο ή τριών τιμών γίνεται με την χρήση της δομής επιλογής.
ΔΙΑΒΑΣΕ Χ,Υ,Ζ
ΑΝ Χ>Υ ΚΑΙ Υ>Ζ ΤΟΤΕ
ΓΡΑΨΕ Χ
ΑΛΛΙΩΣ_ΑΝ Υ>Χ ΚΑΙ Υ>Ζ ΤΟΤΕ
ΓΡΑΨΕ Υ
ΑΛΛΙΩΣ
ΓΡΑΨΕ Ζ
ΤΕΛΟΣ_ΑΝ
Για περισσότερες τιμές απαιτείται η χρήση αντίστοιχων μεταβλητών (π.χ. max, min). Αν το εύρος τιμών των δεδομένων είναι γνωστό (π.χ. [x,y]) τότε η αρχική τιμή της μεταβλητής max θα μπορούσε να είναι οποιαδήποτε τιμή μικρότερη ή ίση του x και της min οποιαδήποτε τιμή μεγαλύτερη ή ίση του y. Π.χ. στην περίπτωση που έχουμε ηλικίες ανθρώπων, η αρχική τιμή της max θα μπορούσε να είναι το 0 ή -10 και της min το 150 ή 500.
Αν το εύρος τιμών δεν είναι γνωστό τότε η αρχική τιμή της max και της min θα μπορούσε να είναι η πρώτη τιμή από τα δεδομένα που εισάγονται στον αλγόριθμο.
Άσκηση
Να γραφεί τμήμα προγράμματος που διαβάζει το βάρος 100 ανθρώπων και εμφανίζει το μικρότερο και το μεγαλύτερο βάρος.
max ← -5 ! οποιοσδήποτε αριθμός <=0 κάνει
min ← 1000 ! οποιοσδήποτε αριθμός >700 κάνει (παγκόσμιο ρεκόρ είναι 635Kgr )
ΓΙΑ Ι ΑΠΌ 1 ΜΕΧΡΙ 100
ΔΙΑΒΑΣΕ Β
ΑΝ Β>max ΤΟΤΕ
max ← Β
ΤΕΛΟΣ_ΑΝ
ΑΝ Β
Άσκηση
Να γραφεί τμήμα προγράμματος που διαβάζει το 100 αριθμούς και εμφανίζει τον μικρότερο και τον μεγαλύτερο από αυτούς.
ΔΙΑΒΑΣΕ Β
max ← Β
min ← Β
ΓΙΑ Ι ΑΠΌ 2 ΜΕΧΡΙ 100
ΔΙΑΒΑΣΕ Β
ΑΝ Β>max ΤΟΤΕ
max ← Β
ΤΕΛΟΣ_ΑΝ
ΑΝ Β
Ερωτήσεις ανάπτυξης απο Πανελλαδικές εξετάσεις
- (B2000-Θ3Α) Να αναφέρετε ονομαστικά τις τρεις βασικές δομές που χρησιμοποιούνται για την ανάπτυξη αλγορίθμων.
- (B2001-Θ1Α) Να αναφερθούν οι βασικές αλγοριθμικές δομές (συνιστώσες / εντολές ενός αλγορίθμου).
- (Ε2000-Θ1Α2) Να γράψετε σε ψευδογλώσσα (ψευδοκώδικα) τη γενική μορφή (σύνταξη) κάθε μιας από τις τρεις δομές επανάληψης.
- (Ε2016-Α3) Δίδεται ο παρακάτω πίνακας:
Εντολή Επανάληψης Καταλληλότητα Χρήσης 1. Όσο … επανάλαβε … Τέλος_επανάληψης α. Γνωστός αριθμός επαναλήψεων 2. Για … από … μέχρι … με βήμα … Τέλος_επανάληψης β. Άγνωστος αριθμός επαναλήψεων 3. Αρχή επανάληψης … μέχρις ότου … γ. Άγνωστος αριθμός επαναλήψεων, αλλά τουλάχιστον μία επανάληψη - (2017-ΘΑ4, Β2017-ΘΒ2) Έστω ότι έχουμε το παρακάτω απόσπασμα αλγορίθμου:S←0Για i από 5 μέχρι 20 με βήμα 3Διάβασε X S←S+X Τέλος_επανάληψης Να ξαναγράψετε το παραπάνω απόσπασμα αλγορίθμου χρησιμοποιώντας αντί για την εντολή Για…Τέλος_επανάληψης: α) την εντολή Όσο…Τέλος_επανάληψης β) την εντολή Αρχή επανάληψης…Μέχρις_ότου
- (Β2007-Θ1Α3) Να γράψετε τους κανόνες που πρέπει να ακολουθούνται στη χρήση των εμφωλευμένων βρόχων.
- (2014-A4a, Β2014-Α4α) Να γράψετε τους κανόνες που πρέπει να ακολουθούνται στη χρήση των εμφωλευμένων βρόχων με εντολές ΓΙΑ.
- (Ε2013-Α1β, ΕΒ2013-Α1β) Να γράψετε στο τετράδιο σας τους αριθμούς της στήλης Α και δίπλα το γράμμα της στήλης Β που αντιστοιχεί σωστά. Σημειώνεται ότι από τη στήλη Β περισσεύει μία επιλογή.
ΣΤΗΛΗ Α ΣΤΗΛΗ Β Τμήματα αλγορίθμου Πλήθος εμφανίσεων του χαρακτήρα Χ 1. ΓΙΑ i ΑΠΟ 0 ΜΕΧΡΙ 9 ΓΙΑ j ΑΠΟ i ΜΕΧΡΙ 9 ΓΡΑΨΕ ‘Χ’ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ α. 54 2. ΓΙΑ i ΑΠΟ 0 ΜΕΧΡΙ 5 ΓΡΑΨΕ ‘Χ’ ΓΙΑ j ΑΠΟ 0 ΜΕΧΡΙ 7 ΓΡΑΨΕ ‘Χ’ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ β. 55 3. ΓΙΑ i ΑΠΟ 0 ΜΕΧΡΙ 20 ΓΡΑΨΕ ‘Χ’ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΙΑ j ΑΠΟ i ΜΕΧΡΙ 56 ΓΡΑΨΕ ‘Χ’ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ γ. 56 4. ΓΙΑ i ΑΠΟ 0 ΜΕΧΡΙ 110 ΜΕ_ΒΗΜΑ 2 ΓΡΑΨΕ ‘Χ’ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ δ. 57 ε. 58 - (Ε2017-Α2β, ΕΞ2017-Α2β) Να γράψετε στο τετράδιο σας τις τιμές που θα εμφανιστούν, όταν εκτελεστεί το παρακάτω τμήμα προγράμματος:
j ← 1 k ← 2 Για i από 1 μέχρι 4 f ← j+k Γράψε f j ← k k ← f Τέλος_επανάληψης
- (Ε2008-Θ2Α) Δίνεται το παρακάτω πρόγραμμα σε «ΓΛΩΣΣΑ»
1 ΠΡΟΓΡΑΜΜΑ ΕΙΝΑΙ-ΠΡΩΤΟΣ 2 ΜΕΤΑΒΛΗΤΕΣ 3 ΑΚΕΡΑΙΕΣ: Χ, i 4 ΧΑΡΑΚΤΗΡΕΣ: ΜΗΝΥΜΑ 5 ΑΡΧΗ 6 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ 7 ΔΙΑΒΑΣΕ Χ 8 ΜΕΧΡΙΣ_ΟΤΟΥ Χ>0 9 C ← 0 10 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Χ ΕΠΑΝΑΛΑΒΕ 11 ΑΝ (Χ MOD i) = 0 ΤΟΤΕ 12 C ← C + 1 13 ΤΕΛΟΣ_ΑΝ 14 ΤΕΛΟΣ_ΓΙΑ 15 ΑΝ C=2 ΤΟΤΕ 16 ΜΗΝΥΜΑ ← 'ΕΙΝΑΙ ΠΡΩΤΟΣ' 17 ΑΛΛΙΩΣ 18 ΜΗΝΥΜΑ ← 'ΔΕΝ ΕΙΝΑΙ ΠΡΩΤΟΣ' 19 ΤΕΛΟΣ 20 ΓΡΑΨΕ ΜΗΝΥΜΑ 21 ΤΕΛΟΣ_ΑΛΓΟΡΙΘΜΟΥ
Να γράψετε στο τετράδιο σας τον αριθμό της γραμμής του προγράμματος, στην οποία εντοπίζετε συντακτικό λάθος και να περιγράψετε το λάθος αυτό.