Μάθημα : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γ ΕΠΑΛ ΘΕΩΡΙΑ
Κωδικός : T100228
Δομή επανάληψης While
Η εντολή while χρησιμεύει όπως και η απλή if ή ακόμα και η if ... else
ΕΛΕΓΧΟΣ ΑΝ ΠΛΗΚΤΡΟΛΟΓΗΘΗΚΕ ΧΑΡΑΚΤΗΡΑΣ ΤΕΛΟΥΣ
Ο παρακάτω κώδικας το αποδεικνεύει. Δοκιμάστε να τον τρέξετε
ch=raw_input("Δώσε οποιοδήποτε γράμμα T αγγλικο για τέλος ")
while ch.upper() != 'T':
print "Εδωσες "+ch
ch=raw_input("Δώσε οποιοδήποτε γράμμα T αγγλικο για τέλος ")
else:
print "Εδωσες "+ch+" και τελος"
Οταν θέλουμε να χρησιμοποιήσουμε την εντολή while προφανώς δυσκολευόμαστε με τη συνθηκη.
Για να το ξεπεράσουμε διαβαζουμε την εκφώνηση. Αν η εκφώνηση λέει για παράδειγμα το εξής "μέχρι να πατηθεί το πλήκτρο Τ , σκεφτόμαστε "αρα όσο το πλήκτρο που δοθηκε (για να συνεχίζει η επανάληψη) να μην είναι το Τ". Αυτό πρέπει να σκεφτούμε. ΤΟ ΠΩΣ ΘΑ ΣΥΝΕΧΙΖΕΙ
Με βάση αυτή τη σκέψη μας πάμε να περιγράψουμε με συνθήκη.
Το πλήκτρο που δόθηκε το περιέχει η μεταβλητή π.χ. ch στο παραπάνω παράδειγμα
Αρα για κάνουμε τη συνθήκη γράφουμε το όνομα της μεταβλητής ch
Πως μεταφράζουμε το 'δεν είναι' με την έκφραση 'διάφορο' ή καλύτερα != της Python
Mε τι να μην είναι ?? , με το 'Τ' ( σε μονά εισαγωγικά για να εκφράσουμε το σύμβολο 'T')
Αρα η συνθήκη γίνεται while ch != 'T':
ΕΛΕΓΧΟΣ ΑΝ ΠΛΗΚΤΡΟΛΟΓΗΘΗΚΕ ΕΝΔΕΙΞΗ ΤΕΛΟΥΣ ή ΟΛΟΚΛΗΡΩΘΗΚΕ Η ΦΟΡΤΩΣΗ
Η Ασκηση βασίζεται στην εκφώνηση 4_24732 θεμα της τράπεζας θεμάτων.
Μια μερική λύση που υλοποιεί τη συνθήκη που λαμβάνει επαναληπτικά κωδικό πελάτη μέχρι να δοθεί η λέξη ΝΟΝΕ ή να μην υπερβεί το πληθος των μεταφερόμενων παραγγελιών τις 30 ( έγινε στην τάξη για μέχρι 3 πελάτες) υλοποιείται ως παρακατω.
Σύμφωνα με τα παραπάνω η επανάληψη θα γίνεται όσο ο τρέχων κωδικός πελάτη ειναι διαφορος του NONE και δεν έχουμε υπερβεί τους 3 πελάτες
Ο κώδικας είναι
cod=raw_input("Δωσε κωδικο πελάτη") #αυτο που διαμορφώνει τη συνθήκη τέλους γράφεται
#πριν το while
counter = 0 # αρχική τιμή μέτρησης πλήθους παραγγελιών
while cod.upper() != 'NONE' and counter <3: # η συνθήκη επανάληψης
poso = input("Δωσε αξια πωλήσεων")
counter = counter+1
cod=raw_input("Δωσε κωδικο πελάτη") # Οτι πριν το while, το ίδιο ξαναγράφεται σαν τελευταία εντολή
# στο σώμα εντολών του whileμετα
Η τέλεια έκδοση του προγράμματος ώστε να μην ξαναζητάει κωδικό οταν οι παραγγελίες έχουν φτάσει στο όριο τους (εδω 3) είναι η
cod=raw_input("Δωσε κωδικο πελάτη")
counter = 0
while cod.upper() != 'NONE' and counter <3:
poso = input("Δωσε αξια πωλήσεων")
counter = counter+1
if counter <=3: #προσθέτουμε εδώ ενα επιπλεον έλεγχο να μην ξαναζητάει κωδικο
cod=raw_input("Δωσε κωδικο πελάτη")
print "Τέλος..."