⚠️ Λάθη που οδηγούν σε αντικανονικό τερματισμό του προγράμματος
Ένα πρόγραμμα μπορεί να τερματιστεί αντικανονικά λόγω λαθών όπως η προσπάθεια διαίρεσης με το μηδέν ή άλλων παρόμοιων σφαλμάτων.
👩💻 Παράδειγμα 2 – Εντοπισμός λαθών που μπορεί να οδηγήσουν σε αντικανονικό τερματισμό
Δίνεται το παρακάτω πρόγραμμα που διαβάζει τα ύψη μελών ενός χορευτικού ομίλου και υπολογίζει το μέσο όρο τους. Ωστόσο, αν κάποιος εισάγει λάθος δεδομένα, όπως για παράδειγμα το -1, τότε προκαλείται διαίρεση με το μηδέν και το πρόγραμμα τερματίζεται αντικανονικά.
🔢 Κώδικας σε ΓΛΩΣΣΑ [5.4] – Παράδειγμα λάθους
ΠΡΟΓΡΑΜΜΑ Μέσος_όρος_ύψους
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: πλήθος
ΠΡΑΓΜΑΤΙΚΕΣ: ύψος, Σ, ΜΟ
ΑΡΧΗ
Σ <- 0
πλήθος <- 0
ΓΡΑΨΕ 'Δώσε ύψος:'
ΔΙΑΒΑΣΕ ύψος
ΟΣΟ ύψος > 0 ΕΠΑΝΑΛΑΒΕ
Σ <- Σ + ύψος
πλήθος <- πλήθος + 1
ΓΡΑΨΕ 'Δώσε ύψος:'
ΔΙΑΒΑΣΕ ύψος
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΟ <- Σ / πλήθος
ΓΡΑΨΕ 'Μέσος όρος ύψους:', ΜΟ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
❗ Πρόβλημα
Αν ο χρήστης κατά την πρώτη ανάγνωση δώσει το -1, τότε το πρόγραμμα προσπαθεί να διαιρέσει με το μηδέν, γεγονός που προκαλεί αντικανονικό τερματισμό.
✅ Λύση – Προτεινόμενος κώδικας για αποφυγή του λάθους [5.5]
Για να αποφύγουμε το πρόβλημα της διαίρεσης με το μηδέν, μπορούμε να προσθέσουμε έλεγχο πριν τη διαίρεση:
ΑΝ πλήθος = 0 ΤΟΤΕ
ΓΡΑΨΕ 'Δεν δόθηκαν στοιχεία μελών'
ΑΛΛΙΩΣ
ΜΟ <- Σ / πλήθος
ΓΡΑΨΕ 'Μέσος όρος ύψους:', ΜΟ
ΤΕΛΟΣ_ΑΝ
💡 Συμβουλή
Αν ο χρήστης εισάγει ένα μη αριθμητικό δεδομένο αντί για αριθμό (π.χ. ένα γράμμα), το πρόγραμμα θα τερματιστεί επίσης αντικανονικά λόγω λάθους. Στις σύγχρονες γλώσσες προγραμματισμού, υπάρχουν τρόποι διαχείρισης τέτοιων λαθών, τους οποίους θα αναλύσουμε σε επόμενα μαθήματα.
Ο Ευκλείδης λειτουργεί μέσω τεχνητής νοημσύνης