Γ Επαλ 17/05/2020 Προγραμματισμός Υπολογιστών Θέμα Α Α1. Να γράψετε τον αριθμό της κάθε πρότασης (1-5) και δίπλα τη λέξη ΣΩΣΤΟ, αν η πρόταση είναι σωστή, ή τη λέξη ΛΑΘΟΣ, αν η πρόταση είναι λανθασμένη. 1. Η ταξινόμηση ευθείας ανταλλαγής σε μία λίστα 10 θέσεων θα πραγματοποιήσει 10 περάσματα της λίστας. 2. Η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένες συλλογές δεδομένων. 3. Ένα υποπρόγραμμα μπορεί να έχει περισσότερα από ένα σημεία εισόδου από τα οποίαδέχεται τα δεδομένα του. 4. Μια συνάρτηση δεν μπορεί να κληθεί από άλλη συνάρτηση. 5. Οι συμβολοσειρές είναι ακολουθίες από χαρακτήρες και έχουν σταθερό μέγεθος και μη μεταβαλλόμενα περιεχόμενα. Α2. α. Αναφέρατε τους αριθμητικούς τελεστές που υποστηρίζει η γλώσσα προγραμματισμού Python. β. Να γράψετε την προκαθορισμένη ιεραρχία πράξεων που ακολουθείται σε μια έκφραση όταν σε αυτήν υπάρχουν αριθμητικοί τελεστές. Α3. α. Δίνεται το παρακάτω τμήμα προγράμματος σε Python στο οποίο έχουν αριθμηθεί οι εντολές του: 1. x=10 2. y=3 3. print x, y Σελίδα 1 από 5
4. t=x 5. x=y 6. y=t 7. print x, y Να ξαναγράψετε το παραπάνω τμήμα αντικαθιστώντας τις εντολές 4-6 με μια μόνο εντολή εκχώρησης ώστε να παράγει το ίδιο αποτέλεσμα με το δοθέν τμήμα. β. Δίνεται το παρακάτω τμήμα προγράμματος σε Python στο οποίο έχουν αριθμηθεί οι εντολές του: 1. x=10 2. y=3 3. if x > y : 4. z=true 5. else : 6. z=false 7. print z Να ξαναγράψετε το παραπάνω τμήμα αντικαθιστώντας τις εντολές 3-6 με δύο εντολές απλής επιλογής ώστε να παράγει το ίδιο αποτέλεσμα με το δοθέν τμήμα. A4. Δίνεται το παρακάτω ημιτελές τμήμα προγράμματος σε Python, το οποίο υπολογίζει και εμφανίζει το ποσοστό (%) των θετικών αριθμών στο σύνολο των 200 αριθμών που διαβάζονται. i=1 k=0 while (1) : x=input( Δώσε αριθμό: ) if (2) : k=k + (3) i=i + (4) Σελίδα 2 από 5
pososto=( (5) / (6) ) * 100 print pososto Να γράψετε στο τετράδιο σας τους αριθμούς (1) έως (6) που αντιστοιχούν στα κενά του προγράμματος και δίπλα σε κάθε αριθμό ότι πρέπει να συμπληρωθεί, ώστε το τμήμα προγράμματος να επιτελεί τη λειτουργία που περιγράφεται. Θέμα Β Β1. Για καθένα από τα παρακάτω ερωτήματα να γράψετε τους αριθμούς τους (1-4) και δίπλα την εντολή σε Python που υλοποιεί τη λειτουργία που περιγράφεται. 1. Να αρχικοποιηθεί μια μεταβλητή count με την τιμή 0. 2. Να διπλασιαστεί η μεταβλητή x. 3. Να μειωθεί η μεταβλητή price κατά 50%. 4. Να εκχωρηθεί στη μεταβλητή m το υπόλοιπο της ακέραιας διαίρεσης του a με το b. B2. Δίνεται παρακάτω ένα τμήμα προγράμματος σε Python: arxi, telos, bima = input ( 'δώσε τρεις τιμές, αρχή, τέλος, βήμα: ' ) for i in range ( arxi, telos, bima ): print ( i ) Να γράψετε τους αριθμούς των ερωτημάτων (1 5) και δίπλα τις τιμές που πρέπει να πάρουν οι μεταβλητές arxi, telos, bima για να τυπώνονται οι τιμές που περιγράφονται σε καθένα από τα παρακάτω ερωτήματα. 1. Όλοι οι μονοψήφιοι θετικοί ακέραιοι αριθμοί. 2. Όλοι οι άρτιοι που υπάρχουν στο πεδίο τιμών [11, 78]. 3. Όλα τα θετικά διψήφια πολλαπλάσια του 3. 4. Όλοι οι περιττοί από το 1 μέχρι το 100. Σελίδα 3 από 5
Β3. Δίνεται το παρακάτω τμήμα προγράμματος το οποίο περιέχει τρία αριθμημένα κενά ( 1 3 ). Να γράψετε στο τετράδιό σας τους αριθμούς των κενών και δίπλα τι πρέπει να συμπληρωθεί ώστε να εμφανίζεται πάντα η μεγαλύτερη τιμή από τις δύο τιμές που διαβάζονται. a, b = ( 1 ) ( δώσε δύο αριθμούς ) if ( 2 ) : ( 3 ) print ( a ) Θέμα Γ Ένας σκληρός δίσκος έχει συνολική χωρητικότητα 500 GB. Ο ιδιοκτήτης του ξεκινάει να αποθηκεύει αρχεία στον σκληρό δίσκο, ο οποίος είναι άδειος αρχικά. Η αποθήκευση θα σταματήσει όταν η χωρητικότητα του δίσκου δεν θα επαρκεί για την αποθήκευση του αρχείου που διαβάζεται. Να γράψετε πρόγραμμα σε Python το οποίο: Γ1. Θα αποθηκεύει στη μεταβλητή capacity την αρχική χωρητικότητα του σκληρού δίσκου. Γ2. Θα διαβάζει επαναληπτικά το μέγεθος (σε GΒ) του αρχείου που θέλει να αποθηκεύσει ο ιδιοκτήτης, και θα ελέγχει αν μπορεί να αποθηκευτεί στον σκληρό δίσκο. Γ3. Αν η αποθήκευση μπορεί να πραγματοποιηθεί, θα εμφανίζει το μήνυμα Επιτυχής αποθήκευση. Αν η αποθήκευση δε μπορεί να πραγματοποιηθεί, θα εμφανίζει Δεν υπάρχει αρκετός χώρος γι αυτό το αρχείο. Γ4. Στο τέλος θα εμφανίζει: α. το πλήθος των αρχείων που αποθηκεύτηκαν, β. το μέγεθος του μεγαλύτερου αρχείου που αποθηκεύτηκε, γ. το ποσοστό των αρχείων που είχε μέγεθος το πολύ 1 GΒ, δ. το μέσο όρο των μεγεθών όλων των αρχείων που αποθηκεύτηκαν στον δίσκο, ε. τον ελεύθερο χώρο που έμεινε στον σκληρό δίσκο. Αν δεν έχει μέινει χώρος στον σκληρό δίσκο, να εμφανίζει το μήνυμα Ο δίσκος έχει γεμίσει. Παρατηρήσεις: Θεωρήστε δεδομένο ότι όλα τα αρχεία έχουν διαφορετικό μέγεθος μεταξύ τους και ότι θα επιτευχθεί η αποθήκευση τουλάχιστον ενός αρχείου στο δίσκο. Σελίδα 4 από 5
Θέμα Δ Μια εταιρεία απασχολεί 50 υπαλλήλους. Οι μηνιαίες αποδοχές κάθε υπαλλήλου κυμαίνονται από 800 έως και 2000 ευρώ. Να γράψετε πρόγραμμα σε Python το οποίο: Δ1. Για κάθε υπάλληλο που απασχολείται στην εταιρεία: α. Διαβάζει με τη βοήθεια κατάλληλου μηνύματος το ονοματεπώνυμο του. β. Διαβάζει με τη βοήθεια κατάλληλου μηνύματος ως πραγματικό αριθμό τις μηνιαίες αποδοχές του υπαλλήλου. Σε περίπτωση όπου δοθεί μη έγκυρη τιμή για τις αποδοχές το πρόγραμμα να εμφανίζει το μήνυμα «Λάθος τιμή για τις αποδοχές. Προσπαθήστε ξανά» και να δίνει τη δυνατότητα στο χρήστη να εισάγει ξανά νέα τιμή για τις αποδοχές μέχρι αυτή να είναι αποδεκτή με τις προδιαγραφές του προβλήματος. γ. Καλεί τη συνάρτηση με όνομα taxis η οποία δέχεται σαν παράμετρο τις μηνιαίες αποδοχές του υπαλλήλου. δ. Να εμφανίζει το ονοματεπώνυμο, τις μηνιαίες αποδοχές, το φόρο και τις καθαρές μηνιαίες αποδοχές που προκύπτουν μετά την αφαίρεση του φόρου. Δ2. Στο τέλος το πρόγραμμα να εμφανίζει με τη βοήθεια κατάλληλων μηνυμάτων: α. Τη μέση τιμή του φόρου που αντιστοιχεί σε όλους τους υπαλλήλους. β. Το συνολικό ποσό που αντιστοιχεί στις καθαρές μηνιαίες αποδοχές όλων των υπαλλήλων. Δ3. Να κατασκευάσετε την συνάρτηση taxis του ερωτήματος Δ1.γ λαμβάνοντας υπόψη ότι η συνάρτηση υπολογίζει και επιστρέφει το ποσό του φόρου που αντιστοιχεί σε κάθε υπάλληλο κλιμακωτά σύμφωνα με τον παρακάτω πίνακα: Μηνιαίες αποδοχές (σε ευρώ) Ποσοστό κράτησης φόρου (επί τωνμηνιαίων αποδοχών) Από 800 έως και 1000 15% Άνω των 1000 έως και 1400 22% Άνω των 1400 35% Σελίδα 5 από 5