Λύσεις των τριών άλυτων ενσωματωμένων δραστηριοτήτων του κεφαλαίου 4: ανάλυση και τροποποίηση του προγράμματος δείκτη UV, συμπλήρωση συνθήκης while, περιγραφή του παιχνιδιού μαντέματος.
Ερώτηση: Α) Μελετήστε το παρακάτω πρόγραμμα. Τι θα τυπώσει το παρακάτω πρόγραμμα για τιμές 1, 7, 9, 16; Τι πιστεύετε ότι κάνει το πρόγραμμα; Β) Να τροποποιηθεί κατάλληλα το παρακάτω πρόγραμμα, ώστε να περιέχει και την περίπτωση που ο χρήστης δώσει, κατά λάθος, ως βαθμό έναν αρνητικό αριθμό. (Πρόγραμμα ελέγχου υπεριώδους ακτινοβολίας, σελ. 50-51)
Απάντηση:
uv <= 15, μετά uv >= 11, μετά uv >= 6, μετά uv >= 0:else στο εσωτερικότερο if uv >= 0 (ή ισοδύναμα ελέγχουμε πρώτα την εγκυρότητα 0 ≤ uv ≤ 15):# Πρόγραμμα ελέγχου υπεριώδους ακτινοβολίας (με έλεγχο αρνητικής τιμής)
uv = input(' Παρακαλώ δώσε έναν αριθμό έκθεσης δείκτη UV: ')
if uv <= 15:
if uv >= 11:
print ' Ακραία κατάσταση κινδύνου '
else:
if uv >= 6:
print ' Μεγάλος ή Πολύ μεγάλος κίνδυνος ' # 6 <= uv < 11
else:
if uv >= 0:
print 'Ελάχιστος ή μικρός κίνδυνος' # 0 <= uv < 6
else: # uv < 0 (ΝΕΟ)
print 'Έδωσες αρνητικό αριθμό. Μη αποδεκτή τιμή!'
else: # uv > 15
print 'Ο αριθμός που έδωσες υπερβαίνει το 15. Μη αποδεκτή τιμή!'
if uv < 0 or uv > 15: … elif uv >= 11: … elif uv >= 6: … else: … — ίδιο αποτέλεσμα. (Python 3: input() → float(input(...)), print(...).)Σύνοψη: Α) 1 → «Ελάχιστος ή μικρός κίνδυνος», 7 και 9 → «Μεγάλος ή Πολύ μεγάλος κίνδυνος», 16 → «υπερβαίνει το 15. Μη αποδεκτή τιμή!»· κατατάσσει τον δείκτη UV σε επίπεδα κινδύνου. Β) προσθήκη else στο if uv >= 0 (ή έλεγχος uv < 0 or uv > 15) με μήνυμα μη αποδεκτής αρνητικής τιμής.
Κριτήρια αξιολόγησης:
Ερώτηση: Συμπλήρωσε κατάλληλα την παρακάτω συνθήκη, έτσι ώστε να εξασφαλίζεται ότι ο χρήστης θα εισάγει τελικά την τιμή 0-20 για το βαθμό στο μάθημα Εφαρμογές Πληροφορικής. #Έλεγχος εισαγωγής δεδομένων / choice = input(' Δώστε το βαθμό που πήρατε στο μάθημα Εφαρμογές Πληροφορικής') / while …….. ……… ……...: / choice = input ('Παρακαλώ δώστε έγκυρη τιμή ')
Απάντηση:
while πρέπει να επαναλαμβάνεται όσο η τιμή είναι ΜΗ έγκυρη, δηλαδή όσο είναι μικρότερη από 0 ή μεγαλύτερη από 20:#Έλεγχος εισαγωγής δεδομένων
choice = input(' Δώστε το βαθμό που πήρατε στο μάθημα Εφαρμογές Πληροφορικής')
while choice < 0 or choice > 20:
choice = input ('Παρακαλώ δώστε έγκυρη τιμή ')
or και όχι and: η συνθήκη του while είναι η συνθήκη συνέχισης (όσο ισχύει, ξαναζητάμε τιμή). Μια τιμή είναι άκυρη αν παραβιάζει οποιοδήποτε από τα δύο όρια, άρα choice < 0 or choice > 20. Η choice < 0 and choice > 20 δεν ικανοποιείται ποτέ (κανένας αριθμός δεν είναι ταυτόχρονα < 0 και > 20) και ο βρόχος δεν θα εκτελούνταν ποτέ.while not (0 <= choice <= 20): ή while not (choice >= 0 and choice <= 20):.input δίνει αρχική τιμή στη μεταβλητή (Σημείωση 2 του βιβλίου)· ο βρόχος ελέγχει πριν από κάθε επανάληψη — αν η πρώτη τιμή είναι έγκυρη, το μπλοκ δεν εκτελείται καθόλου· διαφορετικά ζητά νέα τιμή μέχρι να δοθεί βαθμός στο [0, 20] (η νέα ανάθεση μέσα στο μπλοκ είναι αυτή που κάποτε κάνει τη συνθήκη ψευδή — Σημείωση 1).Σύνοψη: while choice < 0 or choice > 20: (ή while not (0 <= choice <= 20):) — επανάληψη όσο η τιμή είναι εκτός [0, 20].
Κριτήρια αξιολόγησης:
Ερώτηση: Βρείτε τι κάνει το παρακάτω πρόγραμμα και δώστε με μία πρόταση ένα χαρακτηριστικό τίτλο. (import random / thenum = random.randint(1,10) / … while guess != thenum: guess = input("Δώσε αριθμό: ") … — σελ. 54-55)
Απάντηση:
import random εισάγει τη βιβλιοθήκη τυχαίων αριθμών· thenum = random.randint(1,10) επιλέγει τυχαίο ακέραιο από 1 έως και 10 (ο «αύξων αριθμός» του υποψηφίου που ψήφισε το πρόγραμμα)· τυπώνει δύο μηνύματα-πρόκληση· guess = 0 δίνει αρχική τιμή στη μεταβλητή της συνθήκης (ώστε 0 ≠ thenum και ο βρόχος να ξεκινήσει)· while guess != thenum: — μη προκαθορισμένη επανάληψη όσο ο χρήστης δεν έχει βρει τον αριθμό· σε κάθε επανάληψη διαβάζει guess και με πολλαπλή επιλογή απαντά: αν guess > thenum «Έδωσες μεγαλύτερο αριθμό», αν guess < thenum «Έδωσες μικρότερο αριθμό», αλλιώς (ίσος) «Τον βρήκες!» — οπότε η συνθήκη guess != thenum γίνεται ψευδής και ο βρόχος τερματίζει.Σύνοψη: (ενδεικτική) Παιχνίδι «Μάντεψε τον αριθμό»: επιλέγει τυχαίο ακέραιο 1-10 και με βρόχο while ζητά προσπάθειες, απαντώντας «μεγαλύτερο»/«μικρότερο» μέχρι να βρεθεί.
Κριτήρια αξιολόγησης: