Μπάμπης Μπουλής
Master of Science in Computer Engineering
Α1. Να γράψετε στο τετράδιο σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1 – 5 και δίπλα τη λέξη Σωστή αν είναι σωστή ή τη λέξη Λάθος αν είναι λανθασμένη. (10 μονάδες)
- Ο βρόχος for k in range (−4, −2, -1) εκτελείται ακριβώς τρεις φορές.
- Η έκφραση a or not a για οποιαδήποτε τιμή της λογικής μεταβλητής α δίνει πάντα αποτέλεσμα True.
- Το αποτέλεσμα της έκφρασης 25 / 7 % 2 == 0 είναι True.
- Με μια εντολή input() μπορούμε να διαβάσουμε από το πληκτρολόγιο τιμές για τρεις μεταβλητές.
- Ο Αντικειμενοστρεφής προγραμματισμός αλλάζει την εστίαση του προγραμματισμού
από τις διαδικασίες στις έννοιες.
Α2. Να γράψετε σε Python τις κάτωθι προτάσεις: (5 μονάδες)
- Εκχώρησε στο x την τρίτη δύναμη του y.
- Προσαύξησε την τιμή της x κατά το 1/3 της.
- Μείωσε την τιμή του x κατά 5 και διπλασίασε την.
- Εκχώρησε στο x το υπόλοιπο της διαίρεσης του y με το x.
- Αν ο βαθμός (vath) υπερβαίνει τον μέσο όρο(mo) κατά 8 τότε να εκτυπώνει “προσοχή”
Α3. Συμπληρώστε τα κενά στον κάτωθι πίνακα, με τις τιμές που παίρνει η μεταβλητή x μετά την εκτέλεση των εκχωρήσεων, καθώς και τον τύπο της. (6 μονάδες)
εκχώρηση | τιμή της x στην μνήμη | τύπος x | |
πχ// | x = 12*3 % 5 | 1 | integer |
α) | x = (2*5+3)/2.0 | ||
β) | x = True != False | ||
γ) | x = “12345” |
Α4. Τι είναι οι κλάσεις (classes) στον αντικειμενοστρεφή προγραμματισμό; (4 μονάδες)
Β1. Μετά την εκτέλεση του παρακάτω τμήματος προγράμματος τι θα εμφανιστεί στην οθόνη; (15 μονάδες)
for a in range (1, 22, 5):
—-b=2
—-while (b < 4):
—-—-a = a + b
—-—-if a/2 > 8:
—-—-—-b = b + 1
—-—-else:
—-—-—-b = b + 2
—-—-print a, b
a=a + b
print a
Β2. Να δημιουργήσετε μια κλάση με όνομα student που θα έχει τις ιδιότητες:
id(αριθμός μητρώου), name(όνομα), dateofbirth(ημερομηνία γέννησης)
και τις μεθόδους :
studies(μελετάει) και eats(τρώει).
Στην συνέχεια να δημιουργήσετε δύο αντικείμενα(στιγμιότυπα) αυτής της κλάσης:
tasos με ιδιότητες “123”, “Μπaλής”, “1/1/1998”
kyriaki με ιδιότητες “567”, “Μπaλή”, “1/1/1999” (10 μονάδες)
Στο κέντρο συγκέντρωσης προσφύγων Μόρια, στην Λέσβο, για την προμήθεια νερού εστάλη ένα μεγάλο βυτιοφόρο που διαθέτει δεξαμενή χωρητικότητας 50.000 λίτρων. Να γράψετε πρόγραμμα Python το οποίο:
Γ1. να διαβάζει την αρχική ποσότητα του νερού(σε λίτρα) που υπάρχει στο βυτιοφόρο. Να γίνει έλεγχος εγκυρότητας. (3 μονάδες)
Για κάθε πρόσφυγα που προσέρχεται να πάρει νερό:
Γ2. να διαβάζει την εθνικότητα του “ΣΥΡΙΟΣ” ή “ΑΛΛΟΣ” και το φύλο του “Α” = ΑΝΔΡΑΣ, “Γ”=ΓΥΝΑΙΚΑ και “Π”=ΠΑΙΔΙ. Να μην γίνει έλεγχος εγκυρότητας. (2 μονάδες)
Γ3. Να διαβάζει την χωρητικότητα του μπιτονιού που έχει ο πρόσφυγας σε λίτρα και να του το γεμίζει αν υπάρχει επάρκεια νερού στο βυτίο, διαφορετικά να μην εξυπηρετείται. (7 μονάδες)
Γ4. Η επαναληπτική διαδικασία να τερματίζεται, όταν αδειάσει το βυτίο ή όταν δεν εξυπηρετηθούν τρία διαδοχικά άτομα. (4 μονάδες)
Γ5. Στο τέλος το πρόγραμμα, αφού έχει υπολογίσει πριν, να εμφανίζει:
- τη μέση ποσότητα νερού ανά φύλλο που εξυπηρετήθηκε. (2 μονάδες)
- τη συνολική ποσότητα νερού που διατέθηκε σε ΣΥΡΙΑ παιδιά. (2 μονάδες)
- Ποιας εθνικότητας και φύλλο ήταν ο πρόσφυγας που πήρε το περισσότερο νερό. (3 μονάδες)
- το πλήθος των Σύριων και το πλήθος των άλλων που εξυπερετήθηκαν. (2 μονάδες)
Σημείωση:
Θεωρήστε ότι στο βυτίο προσέρχεται ένας τουλάχιστον πρόσφυγας για τον οποίο η ποσότητα νερού επαρκεί. Επίσης θεωρείστε την χωρητικότητα του κάθε μπιτονιού θετική.
Στο Πανευρωπαϊκό πρωτάθλημα στίβου το 2016 στον τελικό το αθλήματος Σφύρας αγωνίστηκαν 16 αθλητές. Κάθε αθλητής είχε στην διάθεσή του έξι προσπάθειες. Από τις 6 προσπάθειες στην τελική του επίδοση μετράει αυτή στην οποία πέταξε την σφύρα στα περισσότερα μέτρα.
Να γράψετε πρόγραμμα python το οποίο:
Δ1. Θα καταγράφει σε έναν μονοδιάστατο πίνακα on τα ονόματα των 16 αθλητών, σε πίνακα xo την χώρα προέλευσης του αθλητή και σε πίνακα ep την μεγαλύτερη ρίψη που έκανε ο κάθε αθλητής. (μονάδες 3)
Δ2. Θα διαβάζει το όνομα ενός αθλητή και την χώρα του. Με χρήση κατάλληλου υποπρογράμματος(Δ4), να ελέγχει αν αυτός υπάρχει στην λίστα. Αν υπάρχει να εκτυπώνει την επίδοσή του. Αν δεν υπάρχει να τυπώνει κατάλληλο μήνυμα. (μονάδες 5)
Δ3. Να τυπώνει τους αθλητές (όνομα, χώρα, επίδοση), με φθίνουσα σειρά ως προς την επίδοση τους. (μονάδες 10)
Δ4. Το υποπρόγραμμα θα δέχεται σαν παραμέτρους δύο λίστες list1, list2 και δύο κλειδιά key1, key2. Αν το key1 υπάρχει στην list1 σε κάποια θέση και στην αντίστοιχη(ίδια) θέση της list2 υπάρχει το key2 να επιστρέφει την θέση που το βρήκε αλλιώς να επιστρέφει την τιμή -1. Θεωρείστε ότι υπάρχει μία μόνο τέτοια σύμπτωση. (μονάδες 7)