ΤΕΣΤ (ΑΣΚΗΣΕΙΣ) ONLINE
98 Tests / Διαγωνίσματα

Κεφάλαιο 19.9 – Σελίδα 142 – ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ΄ ΛΥΚΕΙΟΥ – Απαντήσεις – Λύσεις

Ασκήσεις

Ε.1 (σελ. 142)

Περιγράψτε τις τρεις βασικές κατηγορίες λαθών και δώστε ένα παράδειγμα για κάθε μία από αυτές.

Σκέψη / Μεθοδολογία: Ερώτηση απαρίθμησης-ορισμού· ανατρέχουμε στα §19.1-19.3 και δίνουμε από ένα δικό μας παράδειγμα ανά κατηγορία.

Λύση:

  • Ανακαλούμε τον ορισμό κάθε κατηγορίας λάθους όπως δόθηκε στα §19.1 (συντακτικά), §19.2 (αντικανονικός τερματισμός) και §19.3 (λογικά).
  • Δίνουμε ένα απλό παράδειγμα κώδικα για καθεμία.

Απάντηση: (1) Συντακτικά λάθη: παραβιάζουν τους κανόνες γραφής της γλώσσας και εντοπίζονται από τον μεταγλωττιστή/διερμηνέα πριν την εκτέλεση — π.χ. παράλειψη 'ΤΕΛΟΣ_ΑΝ' σε δομή επιλογής. (2) Λάθη αντικανονικού τερματισμού: το πρόγραμμα ξεκινά να εκτελείται αλλά σταματά απότομα λόγω μη επιτρεπτής ενέργειας — π.χ. διαίρεση με το μηδέν, ή προσπέλαση στοιχείου πίνακα εκτός ορίων (π.χ. Πίνακας[7] σε πίνακα 6 θέσεων). (3) Λογικά λάθη: το πρόγραμμα εκτελείται κανονικά μέχρι το τέλος, αλλά παράγει λανθασμένα αποτελέσματα — π.χ. χρήση λάθος συγκριτικού τελεστή (<= αντί για <) σε μια συνθήκη ελέγχου.

Πρόσεξε:

  • Τα λογικά λάθη είναι τα πιο δύσκολα να εντοπιστούν, γιατί το πρόγραμμα φαίνεται να 'δουλεύει' κανονικά — δεν σταματά και δεν δίνει μήνυμα σφάλματος.

Ε.2 (σελ. 142)

Χαρακτηρίστε τις παρακάτω προτάσεις ως Σωστές ή Λάθος, αιτιολογώντας όπου είναι λανθασμένες: (1) Στον έλεγχο «μαύρου κουτιού» τα σενάρια ελέγχου βασίζονται στον κώδικα του προγράμματος. (2) Τα σενάρια ελέγχου περιλαμβάνουν και μη έγκυρες τιμές εισόδου. (3) Κατά τον έλεγχο ακραίων τιμών ελέγχονται τυχαίες τιμές από κάθε διάστημα της εισόδου. (4) Ο έλεγχος «μαύρου κουτιού» μπορεί να εφαρμοστεί και σε υποπρογράμματα.

Σκέψη / Μεθοδολογία: Ελέγχουμε κάθε πρόταση με βάση τον ορισμό του §19.8: ο έλεγχος μαύρου κουτιού βασίζεται στις προδιαγραφές (όχι στον κώδικα), περιλαμβάνει και μη έγκυρες τιμές, ελέγχει ΑΚΡΑΙΕΣ (όχι τυχαίες) τιμές, και εφαρμόζεται και σε υποπρογράμματα.

Λύση:

  • (1) Λάθος: ο έλεγχος μαύρου κουτιού βασίζεται στις προδιαγραφές, αγνοώντας εντελώς τον κώδικα.
  • (2) Σωστό: πρέπει να δημιουργούνται διαστήματα και σενάρια και για μη έγκυρες τιμές, αφού δεν είμαστε σίγουροι ότι το πρόγραμμα θα τροφοδοτηθεί μόνο με έγκυρες.
  • (3) Λάθος: ελέγχονται οι ΑΚΡΑΙΕΣ τιμές κάθε διαστήματος, όχι τυχαίες, γιατί εκεί εμφανίζονται τα περισσότερα λάθη.
  • (4) Σωστό: η τεχνική εφαρμόζεται και σε υποπρογράμματα, ελέγχοντας πρώτα το καθένα μεμονωμένα.

Απάντηση: (1) Λάθος — τα σενάρια βασίζονται στις προδιαγραφές, όχι στον κώδικα (αν βασίζονταν στον κώδικα θα ήταν white-box testing). (2) Σωστό. (3) Λάθος — ελέγχονται οι ακραίες τιμές κάθε διαστήματος, όχι τυχαίες τιμές. (4) Σωστό.

Πρόσεξε:

  • Μην συγχέεται ο έλεγχος μαύρου κουτιού (βάσει προδιαγραφών) με τον έλεγχο λευκού κουτιού (βάσει εσωτερικού κώδικα) — η πρόταση (1) ελέγχει ακριβώς αυτή τη διάκριση.

Ε.3 (σελ. 142)

Στο Λύκειο, για την ετήσια επίδοση των μαθητών χρησιμοποιείται ο γενικός μέσος όρος (Γ.Μ.Ο.), πραγματικός αριθμός 0-20 με ακρίβεια ενός δεκαδικού ψηφίου. Να αναπτύξετε πρόγραμμα σε ΓΛΩΣΣΑ που να διαβάζει τον Γ.Μ.Ο. Αν είναι τουλάχιστον 9,5 να εμφανίζεται «Προάγεται», διαφορετικά «Παραπέμπεται σε επανεξέταση». Αν δοθεί τιμή εκτός 0-20, να εμφανίζεται «Μη έγκυρος Γ.Μ.Ο.». Πραγματοποιήστε έλεγχο ακραίων τιμών δημιουργώντας τα κατάλληλα σενάρια.

Σκέψη / Μεθοδολογία: Η ακρίβεια εδώ είναι 1 δεκαδικό ψηφίο (όχι 2 όπως στο Παράδειγμα σχετικής υγρασίας του §19.8), άρα η μονάδα προσαύξησης/μείωσης για τις ελλείπουσες ακραίες τιμές είναι 0,1. (Ενδεικτική απάντηση.)

Λύση:

  • Ισοδύναμα διαστήματα: Γ.Μ.Ο.<0 (μη έγκυρο), 0<=Γ.Μ.Ο.<9,5 (Παραπέμπεται), 9,5<=Γ.Μ.Ο.<=20 (Προάγεται), Γ.Μ.Ο.>20 (μη έγκυρο).
  • Ακραίες τιμές (ακρίβεια 1 δεκαδικού, βήμα ±0,1): -0,1, 0, 9,4, 9,5, 20, 20,1.
  • Αντιστοιχίζουμε το αναμενόμενο μήνυμα σε κάθε ακραία τιμή.

Απάντηση: Ενδεικτικά σενάρια ελέγχου: (1) Γ.Μ.Ο.=-0,1 → «Μη έγκυρος Γ.Μ.Ο.»· (2) Γ.Μ.Ο.=0 → «Παραπέμπεται σε επανεξέταση» (κάτω άκρο εγκυρότητας)· (3) Γ.Μ.Ο.=9,4 → «Παραπέμπεται σε επανεξέταση» (άνω άκρο διαστήματος παραπομπής)· (4) Γ.Μ.Ο.=9,5 → «Προάγεται» (κάτω άκρο διαστήματος προαγωγής)· (5) Γ.Μ.Ο.=20 → «Προάγεται» (άνω άκρο εγκυρότητας)· (6) Γ.Μ.Ο.=20,1 → «Μη έγκυρος Γ.Μ.Ο.» (πάνω από το άνω όριο).

Πρόσεξε:

  • Το όριο 9,5 δεν είναι ακέραιος αριθμός — η ακραία τιμή αμέσως κάτω του δεν είναι 9, αλλά 9,4 (αφού η ακρίβεια είναι 1 δεκαδικό ψηφίο).

Ε.4 (σελ. 142)

Μια τουριστική επιχείρηση διαθέτει διαμερίσματα για βραχυχρόνια μίσθωση με την εξής τιμολογιακή πολιτική: για διαμονή έως 3 ημέρες 50€/ημέρα, έως 7 ημέρες 47€/ημέρα, έως 20 ημέρες 42€/ημέρα (μέγιστος χρόνος μίσθωσης 20 ημέρες). Να αναπτύξετε συνάρτηση σε ΓΛΩΣΣΑ που δέχεται το πλήθος ημερών διαμονής και επιστρέφει τη συνολική χρέωση· για είσοδο εκτός 1-20 να επιστρέφει -1. Δημιουργήστε κατάλληλα σενάρια για έλεγχο ακραίων τιμών.

Σκέψη / Μεθοδολογία: Εδώ υπάρχουν τρία τιμολογιακά υποδιαστήματα (1-3, 4-7, 8-20) πέρα από τα όρια εγκυρότητας — άρα χρειάζονται ακραίες τιμές γύρω ΚΑΙ από τα δύο εσωτερικά όρια αλλαγής τιμής ανά ημέρα (3/4 και 7/8), όχι μόνο γύρω από τα άκρα 1 και 20. (Ενδεικτική απάντηση.)

Λύση:

  • Ισοδύναμα διαστήματα: ημέρες<1 (μη έγκυρο→-1), 1<=ημέρες<=3 (50€/ημέρα), 4<=ημέρες<=7 (47€/ημέρα), 8<=ημέρες<=20 (42€/ημέρα), ημέρες>20 (μη έγκυρο→-1).
  • Ακραίες τιμές (ακέραια είσοδος, ±1): 0, 1, 3, 4, 7, 8, 20, 21.
  • Υπολογίζουμε τη χρέωση για κάθε ακραία τιμή με βάση την αντίστοιχη τιμή/ημέρα.

Απάντηση: Ενδεικτικά σενάρια ελέγχου: (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 (πάνω από το άνω όριο εγκυρότητας).

Πρόσεξε:

  • Με τρεις τιμολογιακές ζώνες υπάρχουν δύο εσωτερικά όρια αλλαγής τιμής (3/4 και 7/8) που χρειάζονται ο καθένας δικά τους σενάρια ελέγχου, πέρα από τα εξωτερικά όρια εγκυρότητας (1 και 20) — συνολικά 8 σενάρια, όχι μόνο 2.