ΔΙΑΓΩΝΙΣΜΑ ΕΚΠ. ΕΤΟΥΣ 2016-2017 ΜΑΘΗΜΑ / ΤΑΞΗ : Προγραμματισμός Υπολογιστών / Γ ΕΠΑ.Λ. ΗΜΕΡΟΜΗΝΙΑ: 22-1-2017 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: ΓΙΑΝΝΗΣ ΜΙΧΑΛΕΑΚΟΣ- ΑΝΝΑ ΚΑΤΡΑΚΗ ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση τη λέξη Σωστό, αν η πρόταση είναι σωστή, ή τη λέξη Λάθος, αν η πρόταση είναι λανθασμένη. α. β. γ. δ. ε. Ο λογικός τύπος δέχεται περισσότερες από δύο τιμές. Σε κάθε έκφραση στην οποία υπάρχουν αριθμητικοί τελεστές η ύψωση σε δύναμη έχει τη μεγαλύτερη ιεραρχία Η συνάρτηση range() εκτός των άλλων χρησιμοποιείται για την υπόδειξη του αριθμού των επαναλήψεων που θα εκτελεστούν σε ένα βρόχο. Η εντολή επανάληψης while χρησιμοποιείται για μη προκαθορισμένο αριθμό επαναλήψεων Για να ορίσουμε τη δική μας συνάρτηση χρησιμοποιούμε τη χαρακτηριστική λέξη function. (Μονάδες 10) A2. Δίνεται το παρακάτω τμήμα προγράμματος σε Python: if x >=10 and x <=99 : y=x * 2 print x, y Να γράψετε στο γραπτό σας: α. Τις μεταβλητές β. Τους λογικούς τελεστές γ. Τους αριθμητικούς τελεστές δ. Τις λογικές εκφράσεις Τους τελεστές σύγκρισης ε. που υπάρχουν στο παραπάνω τμήμα. (Μονάδες 5) A3. Να γράψετε τους αριθμούς 1, 2, 3 από τη Στήλη Α και δίπλα το γράμμα α, β, γ, δ, ε από τη Στήλη Β που δίνει τη σωστή αντιστοιχία. Σελίδα 1 από 5
Στήλη Α (τμήμα προγράμματος) 1. for i in range (1, 10, 2) : 2. i = 2 while i > -2 : i = i - 1 3. i = 3 while i!=12 : i = i + 2 Στήλη Β (αριθμός επαναλήψεων) α. τέσσερις β. τρεις γ. πέντε δ. Άπειρες ε. έξι Α4. Το παρακάτω ημιτελές πρόγραμμα σε Python επιδιώκει να ελέγξει την ορθότητα στοιχείων μαθητών σύμφωνα με τα παρακάτω: α. Η τάξη είναι Α ή Β β. Ο βαθμός είναι από 1 μέχρι και 20 class=raw_input( Δώστε τη τάξη του μαθητή: )) while (1) : class=raw_input( Δώσατε λάθος τιμή. Δώστε ξανά τη τάξη του μαθητή: )) vathmos=float(input( Δώστε το βαθμό του μαθητή: )) while (2) : vathmos=float(input( Δώσατε λάθος τιμή. Δώστε ξανά το βαθμό του μαθητή: )) (Μονάδες 9) Να γράψετε στο γραπτό σας τους αριθμούς 1,2 των κενών διαστημάτων του παραπάνω προγράμματος και δίπλα τις κατάλληλες λογικές εκφράσεις ώστε το πρόγραμμα να πετυχαίνει την επιδίωξη του. Α5. Να μεταφέρετε στο γραπτό σας και να συμπληρώσετε τα κενά στο παρακάτω πρόγραμμα ώστε αυτό να υπολογίζει και να εμφανίζει το γινόμενο g =1 2. 2 2. 3 2. 4 2. 5 2 g = for i in range (, ) : g = * print g (Μονάδες 10) Σελίδα 2 από 5
ΘΕΜΑ Β Β1. Δίνεται το παρακάτω πρόγραμμα σε Python: sum=0 while x! = 0 : sum=sum + x print sum Τι εμφανίζει όταν δοθούν στην μεταβλητή x οι παρακάτω περιπτώσεις τιμών: α. 0 (μονάδες 2) β. 7, 6, 9, -2, 0 (μονάδες 4) Β2. Δίνονται τα δύο (2) παρακάτω τμήματα προγραμμάτων σε Python: y=input() x=x + y y=x y x=x y Τμήμα Α y=input() z=x x=y y=z Τμήμα Β Να γράψετε στο γραπτό σας τον αριθμό 1-3 για κάθε μια από τις παρακάτω προτάσεις και δίπλα τη λέξη Σωστό, αν η πρόταση είναι σωστή, ή τη λέξη Λάθος, αν είναι λανθασμένη. 1. Ένα από τα τμήματα θα κάνει αντιμετάθεση των τιμών στις μεταβλητές x, y. 2. Και τα δύο τμήματα θα κάνουν αντιμετάθεση των τιμών στις μεταβλητές x, y. 3. Κανένα από τα δύο τμήματα θα κάνει αντιμετάθεση των τιμών στις μεταβλητές x, y. Β3. Δίνονται τα δύο (2) παρακάτω τμήματα προγραμμάτων σε Python: Τμήμα Α y=0 for x in range (10) : y=y + x print y Τμήμα Β y=0 for x in range (8, -1, -2) : y=y + x print y Να γράψετε ξανά κάθε ένα από τα παραπάνω τμήματα αντικαθιστώντας την εντολή επανάληψης for με την εντολή while ώστε να παράγουν τα ίδια αποτελέσματα Σελίδα 3 από 5 (Μονάδες 8)
ΘΕΜΑ Γ Στο μαραθώνιο μιας ευρωπαϊκής πόλης πήραν μέρος 150000 δρομείς από διάφορες χώρες του κόσμου. Να γράψετε πρόγραμμα σε Python το οποίο: Γ1 Για κάθε δρομέα που πήρε μέρος στον μαραθώνιο διαβάζει με χρήση κατάλληλων μηνυμάτων: α. Το ονοματεπώνυμο του. (μονάδες 1) β. Τη χώρα προέλευσης. Η χώρα εισάγεται με κεφαλαία ελληνικά γράμματα Πχ:. η Ελλάδα εισάγεται ως «ΕΛΛΑΣ». (μονάδες 1) γ. Το φύλο του. Για άνδρες δρομείς θα δίνεται ο χαρακτήρας Α και για τις γυναίκες ο χαρακτήρας Γ. Να γίνεται έλεγχος εγκυρότητας των τιμών για το φύλο του δρομέα. (μονάδες 3) δ. Το χρόνο (σε ώρες) που έκανε. Να γίνεται έλεγχος εγκυρότητας ώστε να εισάγονται πραγματικές τιμές μεγαλύτερες ή ίσες του 0.0 και μικρότερες ή ίσες των 5.0 ωρών. Η τιμή 0.0 δίνεται στην περίπτωση που ένας αθλητής δεν τερμάτισε ή μηδενίστηκε. (μονάδες 3). Γ2. Στο τέλος το πρόγραμμα υπολογίζει και εμφανίζει (Μονάδες 8) α. Το πλήθος των Ελληνίδων δρομέων που πήραν μέρος. Η εμφάνιση θα γίνεται σύμφωνα με το μήνυμα «Στον Μαραθώνιο πήραν μέρος: Ελληνίδες δρομείς», όπου στο κενό θα εμφανίζεται το πλήθος. (μονάδες 3) β. Το ποσοστό (%) των αθλητών που τερμάτισαν στο σύνολο των δρομέων που πήραν μέρος στον μαραθώνιο. Η εμφάνιση να γίνεται με το μήνυμα «Το % των δρομέων τερμάτισαν», όπου στο κενό θα εμφανίζεται το ποσοστό (σαν πραγματικός αριθμός). (μονάδες 3) γ. Το ονοματεπώνυμο και τη χώρα προέλευσης του άνδρα δρομέα που έφερε το καλύτερο χρόνο από αυτούς που κατόρθωσαν να τερματίσουν. (να θεωρήσετε ότι υπάρχει ένας τέτοιος μόνο άνδρας δρομέας). Η εμφάνιση να γίνεται με το μήνυμα «Ο: από τη χώρα: έφερε το καλύτερο χρόνο», όπου στο 1 ο κενό θα εμφανίζεται το ονοματεπώνυμο του δρομέα με τον καλύτερο χρόνο και στο 2 ο η χώρα προέλευσης του. (μονάδες 6) (Μονάδες 12) Σελίδα 4 από 5
ΘΕΜΑ Δ Να γράψετε πρόγραμμα σε Python το οποίο Δ1. Διαβάζει επαναληπτικά ακεραίους αριθμούς μέχρι το άθροισμα τους να γίνει μεγαλύτερο ή ίσο του 200 Δ2. Στο τέλος το πρόγραμμα εμφανίζει: α, Το πλήθος των αριθμών που ήταν μεγαλύτεροι του 20. (μονάδες 4) β. Το μέσο όρο των αριθμών που δόθηκαν (να εμφανίζεται σαν πραγματικός αριθμός) (μονάδες 4) γ. Τον μεγαλύτερο άρτιο αριθμό που δόθηκε. (μονάδες 6) (Μονάδες 14) Παρατήρηση: Δεν είναι υποχρεωτικό να υπάρχουν κατάλληλα μηνύματα τόσο κατά την είσοδο των δεδομένων όσο και κατά την εμφάνιση των αποτελεσμάτων. ΚΑΛΗ ΕΠΙΤΥΧΙΑ! Σελίδα 5 από 5