🔍 Εκσφαλμάτωση λογικών λαθών στις δομές επανάληψης
Στις δομές επανάληψης μπορεί να παρουσιαστούν λογικά λάθη που σχετίζονται με:
- Τη συνθήκη επανάληψης ή τερματισμού,
- Την αρχικοποίηση της συνθήκης,
- Την ενημέρωση της συνθήκης εντός του βρόχου,
- Τις εντολές που περιλαμβάνονται εντός του βρόχου.
🧑🏫 Παράδειγμα 6 – Εκσφαλμάτωση λογικού λάθους σε δομή επανάληψης
Η εκφώνηση περιγράφει ένα πρόγραμμα που διαβάζει έναν βαθμό τετραμήνου σε εικοσάβαθμη κλίμακα και ελέγχει αν είναι αποδεκτή τιμή.
💻 Κώδικας σε ΓΛΩΣΣΑ [5.11]
ΠΡΟΓΡΑΜΜΑ Ανάγνωση_βαθμολογίας
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Βαθμός
ΑΡΧΗ
ΓΡΑΨΕ "Δώσε βαθμό στην εικοσάβαθμη κλίμακα"
ΔΙΑΒΑΣΕ Βαθμός
ΟΣΟ Βαθμός < 0 ΚΑΙ Βαθμός > 20 ΕΠΑΝΑΛΑΒΕ
ΓΡΑΨΕ "Μη αποδεκτή τιμή"
ΓΡΑΨΕ "Δώσε βαθμό στην εικοσάβαθμη κλίμακα"
ΔΙΑΒΑΣΕ Βαθμός
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ "Καταχωρήθηκε ο βαθμός της εικοσάβαθμης κλίμακας ", Βαθμός
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
📝 Απάντηση
Δοκιμαστική εκτέλεση:
- Αν δοθεί η τιμή -9 από το πληκτρολόγιο, θα εμφανιστεί το μήνυμα: «Καταχωρήθηκε ο βαθμός της εικοσάβαθμης κλίμακας -9» και το πρόγραμμα θα τερματιστεί λανθασμένα.
Έλεγχος ορθότητας αποτελέσματος:
- Η τιμή -9 δεν είναι αποδεκτή και το μήνυμα που εμφανίζεται είναι λανθασμένο.
- Το λάθος βρίσκεται στη συνθήκη
ΟΣΟ Βαθμός < 0 ΚΑΙ Βαθμός > 20
. - Η συνθήκη επανάληψης δεν θα εκτελεστεί για καμία τιμή της μεταβλητής Βαθμός, επειδή κανένας αριθμός μικρότερος του μηδέν δεν είναι ταυτόχρονα μεγαλύτερος του είκοσι.
🔧 Προτεινόμενη Διόρθωση
Η συνθήκη Βαθμός < 0 ΚΑΙ Βαθμός > 20
πρέπει να αντικατασταθεί με τη συνθήκη Βαθμός < 0 Ή Βαθμός > 20
.
🧑💻 Παράδειγμα 7 – Εκσφαλμάτωση λογικού λάθους σε δομή επανάληψης
Η εκφώνηση δίνει την ανάπτυξη ενός προγράμματος που διαβάζει αριθμούς από το πληκτρολόγιο και υπολογίζει το γινόμενο τους, εκτός από το 0, το οποίο δεν πρέπει να συμπεριλαμβάνεται στον υπολογισμό.
💻 Κώδικας σε ΓΛΩΣΣΑ [5.12]
ΠΡΟΓΡΑΜΜΑ Γινόμενο_μη_μηδενικών_αριθμών
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: Χ, Γινόμενο
ΑΡΧΗ
Γινόμενο <- 1
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ "Δώσε μη μηδενική τιμή"
ΔΙΑΒΑΣΕ Χ
Γινόμενο <- Χ*Γινόμενο
ΜΕΧΡΙΣ_ΟΤΟΥ Χ = 0
ΓΡΑΨΕ "Γινόμενο:", Γινόμενο
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
🔍 Ανάλυση του Προβλήματος
- Αν δοθούν από το πληκτρολόγιο οι τιμές 4, 3 και 0, εμφανίζεται το γινόμενο = 0, ενώ το σωστό αποτέλεσμα πρέπει να είναι 12.
- Το πρόβλημα εμφανίζεται επειδή το 0 υπολογίζεται στον γινόμενο και μηδενίζει το τελικό αποτέλεσμα.
Μελέτη πιθανού διορθώσεων
💡 Κώδικας με διορθώσεις [5.13]
ΓΡΑΨΕ "Δώσε μη μηδενική τιμή"
ΔΙΑΒΑΣΕ Χ
ΟΣΟ Χ <> 0 ΕΠΑΝΑΛΑΒΕ
Γινόμενο <- Χ*Γινόμενο
ΓΡΑΨΕ "Δώσε μη μηδενική τιμή"
ΔΙΑΒΑΣΕ Χ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Προσοχή στη συνθήκη!
✔️ Σύσταση για Δομή ΜΕΧΡΙΣ_ΟΤΟΥ
Η δομή ΜΕΧΡΙΣ_ΟΤΟΥ μπορεί να χρησιμοποιηθεί αντί της ΟΣΟ και να συμπεριλάβει μια βοηθητική συνθήκη επιλογής για αποφυγή λαθών.
💻 Κώδικας με δομή ΜΕΧΡΙΣ_ΟΤΟΥ [5.15]
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ "Δώσε μη μηδενική τιμή"
ΔΙΑΒΑΣΕ Χ
ΑΝ Χ <> 0 ΤΟΤΕ
Γινόμενο <- Χ*Γινόμενο
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ Χ = 0
Συμβουλή για βρόχους
Ο Ευκλείδης λειτουργεί μέσω τεχνητής νοημσύνης