Η δομή ΟΣΟ…ΕΠΑΝΑΛΑΒΕ χρησιμοποιείται όταν δεν γνωρίζουμε εκ των προτέρων πόσες φορές θα επαναληφθούν οι εντολές του προγράμματος. Ο βρόχος εκτελείται όσο ισχύει μια συνθήκη, και σταματά όταν αυτή παύσει να είναι αληθής. Στις ασκήσεις τύπου αγνώστου πλήθους με τιμή φρουρό, η τιμή φρουρός δεν επιλέγεται από εμάς, αλλά καθορίζεται από την εκφώνηση. Οφείλουμε να την εντοπίσουμε, να τη χρησιμοποιήσουμε σωστά και να εξασφαλίσουμε ότι το πρόγραμμα τερματίζει ακριβώς όταν αυτή δοθεί.


1. Έννοια και ρόλος της τιμής φρουρού

Η τιμή φρουρός είναι μία ειδική τιμή που δίνεται στην εκφώνηση και σηματοδοτεί το τέλος των δεδομένων. Δεν αποτελεί κανονική είσοδο, αλλά σήμα για να σταματήσει η επανάληψη. Για παράδειγμα, αν η εκφώνηση λέει «να διαβάζονται αριθμοί μέχρι να δοθεί 0», τότε το 0 είναι η τιμή φρουρός που μας υποδεικνύει το τέλος της διαδικασίας. Δεν τη διαλέγουμε εμείς· απλώς την εφαρμόζουμε όπως ορίζεται.


2. Βασική μορφή της επανάληψης

Η σωστή δομή με τιμή φρουρό στην ΟΣΟ είναι:

ΔΙΑΒΑΣΕ Χ
ΟΣΟ Χ <> ΦΡΟΥΡΟΣ ΕΠΑΝΑΛΑΒΕ
    …επεξεργασία του Χ…
    ΔΙΑΒΑΣΕ Χ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Η πρώτη ΔΙΑΒΑΣΕ είναι απαραίτητη πριν από τη συνθήκη, γιατί η ΟΣΟ ελέγχει πριν εκτελέσει. Η δεύτερη ΔΙΑΒΑΣΕ βρίσκεται στο τέλος του βρόχου, ώστε κάθε φορά να λαμβάνεται νέα τιμή.


3. Κοινά λάθη

  1. Παράλειψη της πρώτης ΔΙΑΒΑΣΕ πριν από την ΟΣΟ. Το πρόγραμμα δεν έχει τιμή να ελέγξει.
  2. Επεξεργασία της τιμής φρουρού: η τιμή αυτή δεν πρέπει ποτέ να μπαίνει σε υπολογισμούς ή αθροίσματα.
  3. Παράλειψη της δεύτερης ΔΙΑΒΑΣΕ, που μπορεί να οδηγήσει σε άπειρη επανάληψη.

4. Παραδείγματα

Παράδειγμα 1 – Άθροισμα μέχρι φρουρό 0 (όπως ορίζει η εκφώνηση):

ΑΘΡΟΙΣΜΑ ← 0
ΔΙΑΒΑΣΕ Α
ΟΣΟ Α <> 0 ΕΠΑΝΑΛΑΒΕ
    ΑΘΡΟΙΣΜΑ ← ΑΘΡΟΙΣΜΑ + Α
    ΔΙΑΒΑΣΕ Α
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ "ΑΘΡΟΙΣΜΑ=", ΑΘΡΟΙΣΜΑ

Παράδειγμα 2 – Μέσος όρος μέχρι φρουρό -1 (όπως αναφέρει η εκφώνηση):

ΣΥΝΟΛΟ ← 0
ΠΛΗΘΟΣ ← 0
ΔΙΑΒΑΣΕ ΒΑΘΜΟΣ
ΟΣΟ ΒΑΘΜΟΣ <> -1 ΕΠΑΝΑΛΑΒΕ
    ΣΥΝΟΛΟ ← ΣΥΝΟΛΟ + ΒΑΘΜΟΣ
    ΠΛΗΘΟΣ ← ΠΛΗΘΟΣ + 1
    ΔΙΑΒΑΣΕ ΒΑΘΜΟΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ ΠΛΗΘΟΣ > 0 ΤΟΤΕ
    ΜΟ ← ΣΥΝΟΛΟ / ΠΛΗΘΟΣ
    ΓΡΑΨΕ "ΜΕΣΟΣ ΟΡΟΣ=", ΜΟ
ΑΛΛΙΩΣ
    ΓΡΑΨΕ "ΔΕΝ ΔΟΘΗΚΑΝ ΤΙΜΕΣ"
ΤΕΛΟΣ_ΑΝ

5. Χρήσιμες συμβουλές

  • Η τιμή φρουρός αναφέρεται πάντα ρητά στην εκφώνηση.
  • Πρέπει να υπάρχουν δύο εντολές ΔΙΑΒΑΣΕ για την τιμή φρουρό: μία πριν και μία την ΟΣΟ και μία πριν το ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ.

You cannot copy content of this page

Ασκήσεις ΑΕΠΠ με Λύσεις – Θέματα Γ & Δ για Πανελλήνιες | infoclass.gr