Περιγράψτε τις τρεις βασικές κατηγορίες λαθών και δώστε ένα παράδειγμα για κάθε μία από αυτές.
Σκέψη / Μεθοδολογία: Ερώτηση απαρίθμησης-ορισμού· ανατρέχουμε στα §19.1-19.3 και δίνουμε από ένα δικό μας παράδειγμα ανά κατηγορία.
Λύση:
Απάντηση: (1) Συντακτικά λάθη: παραβιάζουν τους κανόνες γραφής της γλώσσας και εντοπίζονται από τον μεταγλωττιστή/διερμηνέα πριν την εκτέλεση — π.χ. παράλειψη 'ΤΕΛΟΣ_ΑΝ' σε δομή επιλογής. (2) Λάθη αντικανονικού τερματισμού: το πρόγραμμα ξεκινά να εκτελείται αλλά σταματά απότομα λόγω μη επιτρεπτής ενέργειας — π.χ. διαίρεση με το μηδέν, ή προσπέλαση στοιχείου πίνακα εκτός ορίων (π.χ. Πίνακας[7] σε πίνακα 6 θέσεων). (3) Λογικά λάθη: το πρόγραμμα εκτελείται κανονικά μέχρι το τέλος, αλλά παράγει λανθασμένα αποτελέσματα — π.χ. χρήση λάθος συγκριτικού τελεστή (<= αντί για <) σε μια συνθήκη ελέγχου.
Πρόσεξε:
Χαρακτηρίστε τις παρακάτω προτάσεις ως Σωστές ή Λάθος, αιτιολογώντας όπου είναι λανθασμένες: (1) Στον έλεγχο «μαύρου κουτιού» τα σενάρια ελέγχου βασίζονται στον κώδικα του προγράμματος. (2) Τα σενάρια ελέγχου περιλαμβάνουν και μη έγκυρες τιμές εισόδου. (3) Κατά τον έλεγχο ακραίων τιμών ελέγχονται τυχαίες τιμές από κάθε διάστημα της εισόδου. (4) Ο έλεγχος «μαύρου κουτιού» μπορεί να εφαρμοστεί και σε υποπρογράμματα.
Σκέψη / Μεθοδολογία: Ελέγχουμε κάθε πρόταση με βάση τον ορισμό του §19.8: ο έλεγχος μαύρου κουτιού βασίζεται στις προδιαγραφές (όχι στον κώδικα), περιλαμβάνει και μη έγκυρες τιμές, ελέγχει ΑΚΡΑΙΕΣ (όχι τυχαίες) τιμές, και εφαρμόζεται και σε υποπρογράμματα.
Λύση:
Απάντηση: (1) Λάθος — τα σενάρια βασίζονται στις προδιαγραφές, όχι στον κώδικα (αν βασίζονταν στον κώδικα θα ήταν white-box testing). (2) Σωστό. (3) Λάθος — ελέγχονται οι ακραίες τιμές κάθε διαστήματος, όχι τυχαίες τιμές. (4) Σωστό.
Πρόσεξε:
Στο Λύκειο, για την ετήσια επίδοση των μαθητών χρησιμοποιείται ο γενικός μέσος όρος (Γ.Μ.Ο.), πραγματικός αριθμός 0-20 με ακρίβεια ενός δεκαδικού ψηφίου. Να αναπτύξετε πρόγραμμα σε ΓΛΩΣΣΑ που να διαβάζει τον Γ.Μ.Ο. Αν είναι τουλάχιστον 9,5 να εμφανίζεται «Προάγεται», διαφορετικά «Παραπέμπεται σε επανεξέταση». Αν δοθεί τιμή εκτός 0-20, να εμφανίζεται «Μη έγκυρος Γ.Μ.Ο.». Πραγματοποιήστε έλεγχο ακραίων τιμών δημιουργώντας τα κατάλληλα σενάρια.
Σκέψη / Μεθοδολογία: Η ακρίβεια εδώ είναι 1 δεκαδικό ψηφίο (όχι 2 όπως στο Παράδειγμα σχετικής υγρασίας του §19.8), άρα η μονάδα προσαύξησης/μείωσης για τις ελλείπουσες ακραίες τιμές είναι 0,1. (Ενδεικτική απάντηση.)
Λύση:
Απάντηση: Ενδεικτικά σενάρια ελέγχου: (1) Γ.Μ.Ο.=-0,1 → «Μη έγκυρος Γ.Μ.Ο.»· (2) Γ.Μ.Ο.=0 → «Παραπέμπεται σε επανεξέταση» (κάτω άκρο εγκυρότητας)· (3) Γ.Μ.Ο.=9,4 → «Παραπέμπεται σε επανεξέταση» (άνω άκρο διαστήματος παραπομπής)· (4) Γ.Μ.Ο.=9,5 → «Προάγεται» (κάτω άκρο διαστήματος προαγωγής)· (5) Γ.Μ.Ο.=20 → «Προάγεται» (άνω άκρο εγκυρότητας)· (6) Γ.Μ.Ο.=20,1 → «Μη έγκυρος Γ.Μ.Ο.» (πάνω από το άνω όριο).
Πρόσεξε:
Μια τουριστική επιχείρηση διαθέτει διαμερίσματα για βραχυχρόνια μίσθωση με την εξής τιμολογιακή πολιτική: για διαμονή έως 3 ημέρες 50€/ημέρα, έως 7 ημέρες 47€/ημέρα, έως 20 ημέρες 42€/ημέρα (μέγιστος χρόνος μίσθωσης 20 ημέρες). Να αναπτύξετε συνάρτηση σε ΓΛΩΣΣΑ που δέχεται το πλήθος ημερών διαμονής και επιστρέφει τη συνολική χρέωση· για είσοδο εκτός 1-20 να επιστρέφει -1. Δημιουργήστε κατάλληλα σενάρια για έλεγχο ακραίων τιμών.
Σκέψη / Μεθοδολογία: Εδώ υπάρχουν τρία τιμολογιακά υποδιαστήματα (1-3, 4-7, 8-20) πέρα από τα όρια εγκυρότητας — άρα χρειάζονται ακραίες τιμές γύρω ΚΑΙ από τα δύο εσωτερικά όρια αλλαγής τιμής ανά ημέρα (3/4 και 7/8), όχι μόνο γύρω από τα άκρα 1 και 20. (Ενδεικτική απάντηση.)
Λύση:
Απάντηση: Ενδεικτικά σενάρια ελέγχου: (1) ημέρες=0 → -1 (κάτω άκρο εγκυρότητας)· (2) ημέρες=1 → 50€ (κάτω άκρο 1ης ζώνης, 1×50)· (3) ημέρες=3 → 150€ (άνω άκρο 1ης ζώνης, 3×50)· (4) ημέρες=4 → 188€ (κάτω άκρο 2ης ζώνης, 4×47)· (5) ημέρες=7 → 329€ (άνω άκρο 2ης ζώνης, 7×47)· (6) ημέρες=8 → 336€ (κάτω άκρο 3ης ζώνης, 8×42)· (7) ημέρες=20 → 840€ (άνω άκρο εγκυρότητας, 20×42)· (8) ημέρες=21 → -1 (πάνω από το άνω όριο εγκυρότητας).
Πρόσεξε: