𝄜 Εκσφαλμάτωση λογικών λαθών σε πίνακες
Η ενότητα αυτή αναλύει τα συχνά λογικά λάθη που εμφανίζονται σε προγράμματα που χρησιμοποιούν πίνακες. Θα εξετάσουμε τη σωστή διαχείριση των δεικτών και την αποφυγή υπέρβασης των ορίων των πινάκων.
🧑💻 Παράδειγμα 8 – Εκσφαλμάτωση λογικού λάθους σε πρόγραμμα με πίνακα
Ακολουθεί η εκφώνηση ενός προγράμματος που διαβάζει έσοδα καταστήματος ανά μήνα για το πρώτο εξάμηνο και ελέγχει εάν υπάρχει αύξηση στα έσοδα κάθε μήνα σε σχέση με τον προηγούμενο. Το μήνυμα που θα εμφανιστεί αφορά τον μήνα που παρατηρείται αύξηση.
💻 Κώδικας σε ΓΛΩΣΣΑ [5.17]
ΠΡΟΓΡΑΜΜΑ ΕΣΟΔΑ_ΚΑΤΑΣΤΗΜΑΤΟΣ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: ΕΣΟΔΑ[6]
ΑΚΕΡΑΙΕΣ: Ι
ΑΡΧΗ
! Επανάληψη ανάγνωσης εσόδων
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 6
ΓΡΑΨΕ "Δώσε τα έσοδα του ", Ι, "ου μήνα"
ΔΙΑΒΑΣΕ ΕΣΟΔΑ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! Επανάληψη ελέγχου αυξητικής τάσης
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 6
ΑΝ ΕΣΟΔΑ[Ι] <= ΕΣΟΔΑ[Ι + 1] ΤΟΤΕ
ΓΡΑΨΕ "Ο ", Ι, "ος μήνας ΑΥΞΗΣΗ"
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
🔍 Πίνακας εκτέλεσης και αποτελεσμάτων
I | ΕΣΟΔΑ[Ι] | ΕΣΟΔΑ[Ι+1] | ΕΣΟΔΑ[Ι] <= ΕΣΟΔΑ[Ι+1] | Έξοδος προγράμματος | Αναμενόμενο αποτέλεσμα | Ορθότητα εξόδου |
---|---|---|---|---|---|---|
1 | 2000 | 1800 | Ψευδής | Ο 2ος μήνας ΑΥΞΗΣΗ | 3ος μήνας ΑΥΞΗΣΗ | Σωστό |
2 | 1800 | 2100 | Αληθής | Ο 2ος μήνας ΑΥΞΗΣΗ | 3ος μήνας ΑΥΞΗΣΗ | Λάθος |
3 | 2100 | 2100 | Αληθής | Ο 3ος μήνας ΑΥΞΗΣΗ | 3ος μήνας ΑΥΞΗΣΗ | Λάθος |
4 | 2100 | 2000 | Ψευδής | Ο 5ος μήνας ΑΥΞΗΣΗ | 5ος μήνας ΑΥΞΗΣΗ | Λάθος |
5 | 2000 | ? | Αντικανονικός τερματισμός | Αντικανονικός τερματισμός |
🚨 Προτεινόμενες διορθώσεις
Στη δεύτερη επανάληψη, το μήνυμα που εμφανίζεται αναφέρεται σε λάθος μήνα. Η εντολή:
ΓΡΑΨΕ "Ο ", Ι, "ος μήνας ΑΥΞΗΣΗ"
πρέπει να γίνει:
ΓΡΑΨΕ "Ο ", Ι + 1, "ος μήνας ΑΥΞΗΣΗ"
Στην τρίτη και πέμπτη επανάληψη, η σύγκριση των εσόδων είναι ίση, άρα δεν υπάρχει αύξηση. Η συνθήκη:
ΕΣΟΔΑ[Ι] <= ΕΣΟΔΑ[Ι + 1]
πρέπει να γίνει:
ΕΣΟΔΑ[Ι] < ΕΣΟΔΑ[Ι + 1]
Στην έκτη επανάληψη, το πρόγραμμα προσπαθεί να προσπελάσει την τιμή ΕΣΟΔΑ[7] που είναι εκτός των ορίων του πίνακα. Για να διορθωθεί αυτό, η επανάληψη πρέπει να γίνει μέχρι τον 5ο μήνα:
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5
Συμβουλή
Κατά την εκσφαλμάτωση προγραμμάτων που χρησιμοποιούν πίνακες, προσέξτε:
- ⚪ το μέγεθος των πινάκων κατά τη δήλωσή τους
- ⚪ τους δείκτες των πινάκων κατά την προσπέλασή τους
- ⚪ τη μη υπέρβαση των ορίων του πίνακα