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

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

Ασκήσεις

Παράδειγμα 10 (σελ. 139)

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

Σκέψη / Μεθοδολογία: Εφαρμόζουμε τα τρία βήματα της μεθοδολογίας μαύρου κουτιού: πρώτα ορίζουμε τα ισοδύναμα διαστήματα (έγκυρα+μη έγκυρα), μετά υπολογίζουμε τις ακραίες τιμές τους (η είσοδος είναι ακέραιος, άρα ±1), και τέλος φτιάχνουμε ένα σενάριο ελέγχου ανά ακραία τιμή.

Λύση:

  • Ισοδύναμα διαστήματα: 0<=βαθμός<10 (Ανεπιτυχής), 10<=βαθμός<=20 (Επιτυχής), βαθμός<0 (μη έγκυρο), βαθμός>20 (μη έγκυρο).
  • Ακραίες τιμές (ακέραια είσοδος, βήμα ±1): -1, 0, 9, 10, 20, 21.
  • Σχηματίζουμε ένα σενάριο ελέγχου για κάθε ακραία τιμή, με αναμενόμενο αποτέλεσμα και περιγραφή περίπτωσης.

Απάντηση: Έξι σενάρια ελέγχου: (1) είσοδος -1 → «Μη έγκυρη βαθμολογία» (άνω άκρο βαθμός<0)· (2) είσοδος 0 → «Ανεπιτυχής εξέταση» (κάτω άκρο 0<=βαθμός<10)· (3) είσοδος 9 → «Ανεπιτυχής εξέταση» (άνω άκρο 0<=βαθμός<10)· (4) είσοδος 10 → «Επιτυχής εξέταση» (κάτω άκρο 10<=βαθμός<=20)· (5) είσοδος 20 → «Επιτυχής εξέταση» (άνω άκρο 10<=βαθμός<=20)· (6) είσοδος 21 → «Μη έγκυρη βαθμολογία» (κάτω άκρο βαθμός>20). Ένα τόσο απλό πρόγραμμα με μία μόνο είσοδο απαιτεί ήδη 6 σενάρια ελέγχου.

Πρόσεξε:

  • Δεν αρκεί να ελεγχθεί μία τυχαία τιμή ανά διάστημα — πρέπει να ελεγχθούν συγκεκριμένα τα δύο άκρα κάθε διαστήματος, γιατί εκεί εμφανίζονται τα περισσότερα λογικά λάθη (π.χ. σύγχυση < με <=).

Δραστηριότητα 6 (σελ. 140)

Ένα πάρκινγκ στο κέντρο της πόλης έχει την ακόλουθη τιμολογιακή πολιτική: για στάθμευση έως και 3 ώρες σταθερή χρέωση 6€, κάθε επιπλέον ώρα χρεώνεται 1,5€ με μέγιστο συνολικό χρόνο παραμονής τις 8 ώρες (χρέωση ανά ολόκληρη ώρα). Να αναπτύξετε πρόγραμμα σε ΓΛΩΣΣΑ, το οποίο να διαβάζει έναν ακέραιο αριθμό ωρών στάθμευσης και να εμφανίζει τη συνολική χρέωση. Αν δοθεί τιμή εκτός του διαστήματος 1-8, να εμφανίζει μήνυμα λάθους «Μη έγκυρος χρόνος». Με βάση τις προδιαγραφές, δημιουργήστε κατάλληλα σενάρια για έλεγχο ακραίων τιμών.

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

Λύση:

  • Ισοδύναμα διαστήματα: ώρες<1 (μη έγκυρο), 1<=ώρες<=3 (σταθερή χρέωση 6€), 4<=ώρες<=8 (χρέωση 6+1,5×(ώρες-3)€), ώρες>8 (μη έγκυρο).
  • Ακραίες τιμές (ακέραια είσοδος, ±1): 0, 1, 3, 4, 8, 9.
  • Υπολογίζουμε το αναμενόμενο αποτέλεσμα για κάθε ακραία τιμή με βάση τον τύπο χρέωσης.

Απάντηση: Ενδεικτικά σενάρια ελέγχου: (1) ώρες=0 → «Μη έγκυρος χρόνος» (άνω άκρο ώρες<1)· (2) ώρες=1 → χρέωση 6€ (κάτω άκρο σταθερής χρέωσης)· (3) ώρες=3 → χρέωση 6€ (άνω άκρο σταθερής χρέωσης — τελευταία ώρα χωρίς προσαύξηση)· (4) ώρες=4 → χρέωση 6+1,5=7,5€ (κάτω άκρο προσαυξημένης χρέωσης — πρώτη ώρα με προσαύξηση)· (5) ώρες=8 → χρέωση 6+1,5×5=13,5€ (άνω άκρο μέγιστης παραμονής)· (6) ώρες=9 → «Μη έγκυρος χρόνος» (κάτω άκρο ώρες>8).

Πρόσεξε:

  • Πέρα από τα όρια εγκυρότητας εισόδου (1 και 8), υπάρχει και ΕΣΩΤΕΡΙΚΟ όριο αλλαγής συμπεριφοράς (3→4) που πρέπει επίσης να ελεγχθεί ξεχωριστά — εύκολα παραβλέπεται αν σκεφτούμε μόνο τα όρια εγκυρότητας της εισόδου.

Δραστηριότητα 7 (σελ. 141)

Η σχετική υγρασία του αέρα εκφράζεται ως ποσοστό. Για εσωτερικούς χώρους, το ιδανικό επίπεδο σχετικής υγρασίας είναι από 30% έως 60%. Να αναπτύξετε διαδικασία σε ΓΛΩΣΣΑ, η οποία να δέχεται ως είσοδο μια πραγματική τιμή από 0 έως 1 που αντιστοιχεί στη σχετική υγρασία. Να εμφανίζει «Ιδανική υγρασία» αν η υγρασία είναι από 0,3 έως 0,6, «Ξηρός αέρας» αν είναι χαμηλότερη από 0,3, «Υγρός αέρας» αν είναι μεγαλύτερη από 0,6, και «Μη έγκυρη τιμή» αν είναι εκτός 0-1. Ο έλεγχος να γίνει με ακρίβεια 2 δεκαδικών ψηφίων. Δημιουργήστε κατάλληλα σενάρια για έλεγχο ακραίων τιμών.

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

Λύση:

  • Ισοδύναμα διαστήματα: υγρασία<0 (μη έγκυρο), 0<=υγρασία<0,3 (Ξηρός αέρας), 0,3<=υγρασία<=0,6 (Ιδανική υγρασία), 0,6<υγρασία<=1 (Υγρός αέρας), υγρασία>1 (μη έγκυρο).
  • Ακραίες τιμές (ακρίβεια 2 δεκαδικών, βήμα ±0,01): -0,01, 0, 0,29, 0,30, 0,60, 0,61, 1,00, 1,01.
  • Υπολογίζουμε το αναμενόμενο μήνυμα για κάθε ακραία τιμή.

Απάντηση: Ενδεικτικά σενάρια ελέγχου: (1) υγρασία=-0,01 → «Μη έγκυρη τιμή»· (2) υγρασία=0 → «Ξηρός αέρας» (κάτω άκρο εγκυρότητας)· (3) υγρασία=0,29 → «Ξηρός αέρας» (άνω άκρο ξηρού αέρα)· (4) υγρασία=0,30 → «Ιδανική υγρασία» (κάτω άκρο ιδανικής υγρασίας)· (5) υγρασία=0,60 → «Ιδανική υγρασία» (άνω άκρο ιδανικής υγρασίας)· (6) υγρασία=0,61 → «Υγρός αέρας» (κάτω άκρο υγρού αέρα)· (7) υγρασία=1,00 → «Υγρός αέρας» (άνω άκρο εγκυρότητας)· (8) υγρασία=1,01 → «Μη έγκυρη τιμή» (πάνω από το άνω όριο εγκυρότητας).

Πρόσεξε:

  • Όταν η είσοδος είναι πραγματικός αριθμός, η μονάδα υπολογισμού των ελλειπουσών ακραίων τιμών καθορίζεται από τη ζητούμενη ακρίβεια δεκαδικών ψηφίων (εδώ 0,01), όχι από τη σταθερή μονάδα 1 που χρησιμοποιείται για ακέραιες εισόδους.