Εκφώνηση Ασκησης
Ένα βιβλιοπωλείο χρεώνει τις φωτοτυπίες ανάλογα με το μέγεθός τους κλιμακωτά, σύμφωνα με τον παρακάτω πίνακα:
Αριθμός φωτοτυπιών | Μέγεθος Α4 (€) | Μέγεθος Α3 (€) |
1 - 300 | 0.10 | 0.20 |
301 και πάνω | 0.06 | 0.16 |
Να αναπτύξετε πρόγραμμα σε Python το οποίο:
4.1 Να διαβάζει επαναληπτικά για κάθε πελάτη τον αριθμό των φωτοτυπιών που ζήτησε θεωρώντας ότι κάθε πελάτης ζητάει φωτοτυπίες ενός μόνο μεγέθους. Απαιτείται έλεγχος εγκυρότητας δεδομένων για το μέγεθος των φωτοτυπιών ώστε να είναι «Α4» ή «Α3».
Η χρέωση γίνεται με κλιμακωτή χρέωση.
Η διαδικασία να τερματίζεται όταν δοθεί για τον αριθμό των φωτοτυπιών τιμή αρνητική ή 0.
Πριν προχωρήσουμε στη λύση ας δούμε τι σημαινει έλεγχος εγκυρότητας ή αλλιώς έλεγχος ορθότητας .
Σημαίνει ότι το πρόγραμμα θα πρέπει να δέχεται μόνο τις εκφράσεις Α4 ή Α3 (ΜΕ αγγλικους χαρακτήρες)
Γενκά σημαίνει ανάλογα με την εκφώνηση ότι το πρόγραμμα θα πρέπει μετά απο το input που αναφέρεται να γίνει σε κάποιο σημείο του προγράμματος θα ελέγχει αν το δεδομένο που προέκυψε είναι ένα δεδομενο ενα απο κάποιο τα στοιχεία ενός συνόλου ή να βρίσκεται εντός ενός διαστήματος τιμών.
Στο παράδειγμα μας πρέπει σε κάποιο σημείο θα δέχεται τον μέγεθος της φωτοτυπίας με μηνυμα π.χ. "Δώσε μέγεθος φωτοτυπιών (Α4 ή Α3)" και θα αποθηκεύεται σε ενα πεδίο εστω megethos
Πρέπει στη συνέχεια να ελέγχει αν το περιεχόμενο της λέξης megethos είναι μια απο τις εκφράσες A4 ή Α3 και αν δεν είναι να ξαναζητάει και να ξαναζητάει μεχρι να δοθεί σωστό περιεχόμενο
Αρα η επανάληψη θα γίνεται όσο το περιεχόμενο της μεταβλητής μέγεθος είναι ΔΕΝ ΕΙΝΑΙ 'A4' ή ΔΕΝ ΕΙΝΑΙ 'Α3'
To ΔΕΝ ΕΙΝΑΙ ΕΝΑ ΑΠΟ ΤΑ 'Α4' ή 'Α3') μεταφράζεται σε not ( megethos == 'A4' or megethos == 'A3')
ή megethos != 'A4' and megethos != 'A3'
και ο κώδικας ελέγχου ορθότητας που επικεντρωνόμαστε είναι
megethos=raw_input("Δωσε μέγεθος A4 ή A3")
while not (megethos == 'A4' or megethos == "A3"):
print("Λάθος")
megethos=raw_input("Δωσε (ξανά) μέγεθος A4 ή A3")
print "Τελος"
Μερική λύση με edublocks εδώ......
-----------------------
# ΕΛΕΓΟΣ ΟΡΘΟΤΗΤΑΣ ΕΜΠΟΔΙΟ ΓΙΑ ΤΗΝ ΠΑΡΑΠΕΡΑ ΣΥΝΕΧΙΣΗ
# Ο ΧΡΗΣΤΗΣ ΥΠΟΧΡΕΟΥΤΑΙ ΝΑ ΔΩΣΕΙ Ν ή Ο ΓΙΑ ΝΑ ΠΡΟΧΩΡΗΣΕΙ ΤΟ ΠΡΟΓΡΑΜΜΑ
ch=raw_input("Δωσε Ν για Ναι ή (Ο) για οχι :")
while ch.upper() != 'N' and ch.upper != 'O' :
print "Εδωσες "+ch
ch=raw_input("Δωσε Ν για Ναι ή (Ο) για οχι :")
print "Εδωσες "+ch+" και τελος"
print "ΕΔΩ ΤΟ ch πρεπει να ειναι N Ή Ο αγγλικο"
print "telos programmatos"