Μάθημα : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γ ΕΠΑΛ ΘΕΩΡΙΑ

Κωδικός : T100228

T100228  -  ΓΕΩΡΓΙΟΣ ΜΠΑΝΤΟΥΒΕΡΗΣ

Ενότητες - Δομή επανάληψης While

Δομή επανάληψης 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 "Τέλος..."