Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική μετάφραση): e-book στην τοποθεσία http://dide.flo.sch.gr/plinet/meetings/meeting23/a_byte_of_python-el.pdf ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Σελίδα - 1 -
Η εντολή while Η εντολή while επιτρέπει την επαναλαμβανόμενη εκτέλεση μιας πλοκάδας εντολών (while-block), όσο μια προϋπόθεση παραμένει αληθές. Η εντολή while είναι ένα παράδειγμα αυτού που αποκαλείται εντολή βρόχου ( looping statement). Μια εντολή while μπορεί να έχει έναν προαιρετικό όρο else. Ιδιαίτερη προσοχή πρέπει να δοθεί στις εντολές που συμπεριλαμβάνονται στην πλοκάδα εντολών και οι οποίες θα εκτελεστούν πιθανότατα παραπάνω από μια φορές. Επίσης είναι πολύ χρήσιμη στην περίπτωση που θέλουμε να χρησιμοποιήσουμε το πρόγραμμα μας σε περισσότερα από ένα input χωρίς να το ξανα-τρέξουμε όπως κάναμε ως τώρα. Για να γίνει αυτό θα πρέπει να προσθέσουμε την εντολή input σαν μια εντολή στην πλοκάδα εντολών του while. Στην πλοκάδα εντολών με εσοχή μπορούν να περιλαμβάνονται οποιεσδήποτε εντολές όπως συναρτήσεις, if ή άλλη while. Σύνταξη while while συνθήκη: εντολή_while1 εντολή_while2.. while-block με εσοχή εντολή_whilwn else: εντολή_else1 εντολή_else2.. else-block με εσοχή (προαιρετικό) εντολή_elsen ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Σελίδα - 2 -
Παράδειγμα 1 Δημιουργήστε πρόγραμμα με όνομα program.py το οποίο αρχικά ζητάει την εισαγωγή ενός αριθμού από το πληκτρολόγιο. Εφόσον αυτός ο αριθμός είναι διαφορετικός από το μηδέν, υπολογίζει τον διπλάσιο του, τον τυπώνει στην οθόνη και ζητάει την εισαγωγή του επόμενου αριθμού. Η διαδικασία τερματίζεται όταν πληκτρολογηθεί ο αριθμός 0. Σε αυτή την περίπτωση θα εμφανίζεται το μήνυμα Done Λύση # program.py k=int(input('εισάγετε ακέραιο:\n ')) #Εισαγωγή αρχικού αριθμού while(k!=0): #Αρχή επανάληψης ( συνθήκη: όσο ο αριθμός διάφορος του 0) apotelesma=2*k print(apotelesma) #υπολογισμός αποτελέσματος #εκτύπωση αποτελέσματος k=int(input('εισάγετε ακέραιο:\n ')) #Εισαγωγή επόμενου αριθμού print('done') #έξοδος επανάληψης Παράδειγμα 2 Να γράψετε πρόγραμμα program1.py το οποίο θα διαβάζει τυχαίους αριθμούς από το πληκτρολόγιο μέχρι να δοθεί ο αριθμός 0. Το πρόγραμμα θα υπολογίζει και εκτυπώνει: α) Πόσοι αριθμοί διαβάστηκαν (εκτός του 0), β) Το πλήθος των ζυγών αριθμών, γ) Το πλήθος, το άθροισμα και τον μέσο όρο των μονών αριθμών. Λύση #παράδειγμα 2 x=int(input('εισάγετε αριθμό')) i=0 j=0 k=0 athroisma=0 m_o=0 while x!=0: i=i+1 x=int(input('εισάγετε αριθμό')) ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Σελίδα - 3 -
if x%2==0: j=j+1 else: k=k+1 athroisma=athroisma+x m_o= athroisma/k print('το πλήθος των αριθμών που διαβάστηκαν είναι', i) print('το πλήθος των ζυγών αριθμών που διαβάστηκαν είναι', j) print('το πλήθος των μονών αριθμών που διαβάστηκαν είναι',k) print('το άθροισμα των μονών αριθμών που διαβάστηκαν είναι',athroisma) print('o μέσος όρων των μονών αριθμών που διαβάστηκαν είναι',m_o) Άσκηση 1 Να γραφεί πρόγραμμα program2.py που θα εκτυπώνει το άθροισμα όλων των θετικών διψήφιων ακεραίων μέχρι το 100 Άσκηση 2 Να γραφεί πρόγραμμα program3.py που υπολογίζει και θα εκτυπώνει το τετράγωνο όλων των θετικών ακεραίων μέχρι το 20 που είναι διαιρέσιμοι με το 3 Άσκηση 3 Να γραφεί πρόγραμμα program4.py το οποίο θα διαβάζει 20 ακεραίους από τον πληκτρολόγιο και θα υπολογίζει και θα εκτυπώνει: το πλήθος των άρτιων αριθμών που διαβάστηκαν καθώς και το πλήθος των αριθμών που είναι μεγαλύτεροι από 15. ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Σελίδα - 4 -
Άσκηση 4 Γράψτε ένα πρόγραμμα program5.py στο οποίο θα εισάγετε έναν ακέραιο στο διάστημα [1,100]. Όσο ο αριθμός που πληκτρολογείται είναι θετικός Όταν ο αριθμός ανήκει στο διάστημα [1, 100] και διαιρείται με το 3 αλλά όχι με το 4 θα εμφανίζεται το μήνυμα Αριθμός διαιρετέος με το 3 και θα ζητάει την εισαγωγή του επόμενου αριθμού. Διαφορετικά αν ο αριθμός ανήκει στο διαστημα [1,100] αλλά δεν διαρείται με το 3 θα εμφανίζεται το μήνυμα Αριθμός μη διαιρετέος με το 3 και θα ζητάει την εισαγωγή του επόμενου αριθμού. Διαφορετικά θα εμφανίζεται το μήνυμα Λάθος αριθμός. και θα ζητάει την εισαγωγή του επόμενου αριθμού. Η διαδικασία θα τερματίζεται όταν πληκτρολογείται ένας αρνητικός αριθμός. Παράδειγμα output ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Σελίδα - 5 -
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Σελίδα - 6 -