Λογότυπο ήδη-έτερον

🔍 Εκσφαλμάτωση λογικών λαθών στις δομές επανάληψης

Στις δομές επανάληψης μπορεί να παρουσιαστούν λογικά λάθη που σχετίζονται με:

  • Τη συνθήκη επανάληψης ή τερματισμού,
  • Την αρχικοποίηση της συνθήκης,
  • Την ενημέρωση της συνθήκης εντός του βρόχου,
  • Τις εντολές που περιλαμβάνονται εντός του βρόχου.

🧑‍🏫 Παράδειγμα 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

Ο Ευκλείδης λειτουργεί μέσω τεχνητής νοημσύνης