Μάθημα : Πληροφορική ΕΠ

Κωδικός : 0551942404

0551942404 - ΑΝΤΩΝΙΟΣ ΦΩΤΕΙΝΟΣ

Ενότητες μαθήματος

Προγραμματισμός

Ύλη 2026

Ύλη 2026

Ασκήσεις

1. Λίστες 

1. Γράψτε ένα πρόγραμμα το οποίο ελέγχει αν δυο λίστες έχουν τουλάχιστον ένα κοινό στοιχείο.
2. Γράψτε ένα πρόγραμμα το οποίο αποθηκεύει σε μια λίστα τις λέξεις που εισάγει ο χρήστης και στη συνέχεια εμφανίζει μόνο τις λέξεις με περισσότερα από 3 γράμματα. Η είσοδος των λέξεων θα πρέπει να τερματίζει όταν ο χρήστης δώσει τη λέξη ’end’.

2. Γράμματα (2018, Γ)

Διαφημιστική εταιρεία επιθυμεί να παραγγείλει κεφαλαία γράμματα του ελληνικού αλφαβήτου για τη δημιουργία επιγραφών. Για το λόγο αυτό κάνει στατιστική εκτίμηση της συχνότητας εμφάνισης των γραμμάτων χρησιμοποιώντας τη λίστα GRAM η οποία περιέχει στη σειρά τα κεφαλαία ελληνικά γράμματα, δηλαδή GRAM=['Α', 'Β', 'Γ', . . . , 'Ψ','Ω'].
Να γράψετε πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο:


Γ1. Να διαβάζει από το πληκτρολόγιο διαδοχικά δύο επιγραφές με κεφαλαία ελληνικά γράμματα (μον. 2) και να τις συνενώνει στη μεταβλητή epig.
Γ2. Να δημιουργεί μια κενή λίστα με όνομα SUMA και στη συνέχεια με μια επαναληπτική διαδικασία να καταχωρίζει σε αυτή 24 στοιχεία με τιμή μηδέν (0). Η λίστα SUMA θα χρησιμοποιηθεί στα επόμενα ερωτήματα, για την αποθήκευση του αριθμού που δείχνει πόσες φορές υπάρχει κάθε γράμμα (συχνότητα εμφάνισης) στη μεταβλητή epig. Κάθε θέση της λίστας SUMA αντιστοιχεί, με την ίδια σειρά, σε ένα γράμμα της λίστας GRAM.
Γ3. Να υπολογίζει τη συχνότητα εμφάνισης κάθε γράμματος της λίστας GRAM που περιέχεται στη μεταβλητή epig και να ενημερώνει την αντίστοιχη θέση της λίστας SUMA με την τιμή αυτή.
Γ4. α) Να εμφανίζει ποια γράμματα πρέπει να παραγγελθούν και σε ποια ποσότητα.
      β) Να υπολογίζει και να εμφανίζει το πλήθος των γραμμάτων που έχουν μηδενικό πλήθος εμφανίσεων και δεν θα παραγγελθούν.


Σημείωση:

α) Η λίστα GRAM θα πρέπει να οριστεί στο πρόγραμμα που θα αναπτύξετε.
β) Δεν απαιτούνται έλεγχοι ορθότητας δεδομένων.
γ) Η λίστα GRAM να φορτωθεί από αντίστοιχο αρχείο κειμένου.

3. Υποψήφιοι (2020, Δ)

Ένας οργανισμός διεξάγει διαγωνισμό για την πρόσληψη τριών (3) υπαλλήλων, στον οποίο προσήλθαν είκοσι (20) υποψήφιοι. Οι υποψήφιοι, μεταξύ άλλων, θα πρέπει να συμπληρώσουν ένα τεστ που αποτελείται από δεκαπέντε (15) ερωτήσεις πολλαπλής επιλογής. Κάθε ερώτηση έχει πέντε (5) δυνατές απαντήσεις, οι οποίες χαρακτηρίζονται από τα γράμματα α, β, γ, δ και ε. Μία από τις απαντήσεις α, β, γ και δ είναι η σωστή, ενώ η απάντηση "ε" σημαίνει «Δεν γνωρίζω». Ο υποψήφιος για κάθε ερώτηση έχει μία και μόνο επιλογή. Αν η επιλογή αντιστοιχεί στη σωστή απάντηση βαθμολογείται με τρεις (3) μονάδες, αν είναι λανθασμένη, αφαιρείται μία (1) μονάδα και αν έχει επιλεγεί το "ε", δεν βαθμολογείται [μηδέν (0) μονάδες]. Οι σωστές απαντήσεις βρίσκονται στη λίστα LI["α", "δ", "γ", "β", "δ", "γ", "β", "α", "δ", "γ", "β", "δ", "γ", "β", "α"].Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο να πραγματοποιεί τα παρακάτω:


Δ1. Για κάθε υποψήφιο:
α) Να διαβάζει, από αρχείο, το όνομά του και να το εισάγει στη λίστα ON[ ].
β) Να διαβάζει, από αρχείο, διαδοχικά τις δεκαπέντε (15) απαντήσεις που έδωσε και να υπολογίζει τη συνολική βαθμολογία του, σύμφωνα με την περιγραφόμενη διαδικασία βαθμολόγησης και χρήση της λίστας LI[ ]. Η συνολική βαθμολογία του εισάγεται στη λίστα SV[ ] .

Δ2. Να εμφανίζει τα ονόματα των υποψηφίων που είχαν βαθμολογία μεγαλύτερη ή ίση από τον μέσο όρο όλων των βαθμολογιών.

Δ3. Να εμφανίζει τα ονόματα των τριών (3) υποψηφίων που είχαν την υψηλότερη βαθμολογία. (Θεωρήστε ότι οι βαθμολογίες είναι διαφορετικές μεταξύ τους).

4. Διαγωνισμός χορού (2016, Δ)

Σε ένα διαγωνισμό χορού συμμετέχουν διαγωνιζόμενοι από όλη τη χώρα. Στην πρώτη φάση του διαγωνισμού κάθε διαγωνιζόμενος βαθμολογείται (βαθμ. κλίμακα 1-10) από τρεις (3) κριτές. Ο διαγωνιζόμενος προκρίνεται στην επόμενη φάση, αν ο μέσος όρος των τριών βαθμολογιών του είναι μεγαλύτερος ή ίσος του επτά (7).

Να γράψετε πρόγραμμα σε γλώσσα προγραμματισμού Pascal,το οποίο:

 

∆1. Να περιλαμβάνει το τμήμα δηλώσεων μεταβλητών.
∆2. Να διαβάζει το επώνυμο κάθε διαγωνιζομένου και τις βαθμολογίες που έλαβε από τους τρεις κριτές. Η επανάληψη συνεχίζεται έως ότου δοθεί για επώνυμο διαγωνιζομένου η τιμή «ΤΕΛΟΣ».
∆3. Να υπολογίζει το μέσο όρο των βαθμολογιών κάθε διαγωνιζομένου. Εάν ο διαγωνιζόμενος περνάει στην επόμενη φάση, να εμφανίζει το επώνυμο και το μέσο όρο του.

∆4. Να υπολογίζει και να εμφανίζει το επώνυμο του διαγωνιζομένου με το μεγαλύτερο μέσο όρο. Να θεωρήσετε ότι αυτός ο διαγωνιζόμενος είναι μοναδικός.
∆5. Να υπολογίζει και να εμφανίζει το πλήθος των διαγωνιζομένων που δεν πέρασαν στην επόμενη φάση.

Σημείωση

α. Να γίνεται έλεγχος ορθότητας τιμών και να υπάρχουν κατάλληλα μηνύματα στις εντολές εισόδου και εξόδου.
β. Στο διαγωνισμό συμμετέχει τουλάχιστον ένας διαγωνιζόμενος. Να θεωρήσετε ότι δεν υπάρχουν διαγωνιζόμενοι με το ίδιο επώνυμο.

5. Συχνότητες γραμμάτων

Να γράψετε πρόγραμμα το οποίο να διαβάζει ένα κείμενο, από ένα αρχείο, και να παρουσιάζει μια στατιστική ανάλυση των συχνοτήτων εμφάνισης κάθε γράμματος της ελληνικής αλφαβήτας σε φθίνουσα σειρά, όπως στο παράδειγμα :

Γράμμα Συχνότητα
Ε 27%
Α 16%
Ο 15%
Κ 14%
.  
.  

 

6. Παράσταση (2020, Γ)

Σε μία παράσταση υπαίθριου δημοτικού θεάτρου το εισιτήριο εισόδου είναι για τους ενήλικες δέκα (10) ευρώ και για τα παιδιά πέντε (5) ευρώ. Η χωρητικότητα του θεάτρου είναι πεντακόσια (500) άτομα.
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο να πραγματοποιεί τα παρακάτω:


Γ1. α) Για κάθε άτομο ή παρέα εισερχόμενων θεατών, να εμφανίζει τις διαθέσιμες ελεύθερες θέσεις του θεάτρου και να διαβάζει από το πληκτρολόγιο το πλήθος των ενηλίκων και ακολούθως το πλήθος των παιδιών της παρέας.
β) Να καλεί τη συνάρτηση EISITIRIO(), η οποία υπολογίζει το συνολικό κόστος των εισιτηρίων, και στη συνέχεια το πρόγραμμα να εμφανίζει το κόστος αυτό. Η λειτουργία της συνάρτησης αυτής περιγράφεται στο ερώτημα Γ3.
γ) Η διαδικασία της εισόδου θεατών να τερματίζεται, όταν εισαχθεί ο αριθμός μείον ένα (-1) ως πλήθος ενηλίκων θεατών μιας παρέας. Ο αριθμός μείον ένα (-1) σημαίνει ότι είτε οι διαθέσιμες θέσεις δεν επαρκούν είτε δεν υπάρχουν άλλοι θεατές που επιθυμούν να εισέλθουν. Στην περίπτωση αυτή, δεν εισάγεται αριθμός παιδιών. 
Θεωρήστε ότι υπάρχει τουλάχιστον ένας θεατής και σε κάθε παρέα υπάρχει τουλάχιστον ένας ενήλικας.

 

Γ2. Να υπολογίζει και να εμφανίζει:
α) Τα συνολικά έσοδα του θεάτρου.
β) Το ποσοστό των παιδιών στο σύνολο των θεατών.


Γ3. Να υλοποιήσετε τη συνάρτηση EISITIRIO(), η οποία δέχεται το πλήθος των ενηλίκων και το πλήθος των παιδιών μιας παρέας και επιστρέφει το συνολικό κόστος των εισιτηρίων.

7. Εξετάσεις πιστοποιητικού (2022, Δ)

Στις εξετάσεις του Κρατικού Πιστοποιητικού Γλωσσομάθειας συμμετέχουν υποψήφιοι από όλη τη χώρα. Η βαθμολογία των υποψηφίων είναι ένας ακέραιος αριθμός από το 1 έως και το 100. Επιτυχών θεωρείται ο υποψήφιος που έχει βαθμολογία πάνω από 60.
Θεωρήστε ότι υπάρχουν περισσότεροι από δύο υποψήφιοι και τουλάχιστον ένας επιτυχών.

Να γράψετε πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο:

 

Δ1. Για κάθε υποψήφιο:
α) Να διαβάζει τον κωδικό του (ως συμβολοσειρά) και να τον καταχωρίζει σε λίστα με όνομα KΟD.
β) Να διαβάζει τη βαθμολογία του και να κάνει έλεγχο ορθότητας τιμών. Στη συνέχεια να την καταχωρίζει σε λίστα με όνομα VATH.
Η εισαγωγή των στοιχείων θα τερματίζεται, όταν δοθεί ως κωδικός υποψηφίου η λέξη “ΤΕΛΟΣ”.
Δ2. Να υπολογίζει και να εμφανίζει τον μέσο όρο της βαθμολογίας όλων των υποψηφίων.
Δ3. α) Να εντοπίζει τη μεγαλύτερη βαθμολογία των υποψηφίων και να εμφανίζει τους κωδικούς των υποψηφίων που έχουν αυτή τη βαθμολογία.
β) Να ταξινομεί τις δύο λίστες σε φθίνουσα σειρά ως προς την βαθμολογία.
Δ4. Να δημιουργεί αρχείο κειμένου με όνομα “epityxon.txt”, όπου σε κάθε γραμμή του θα γραφεί ο αύξων αριθμός γραμμής, ακολουθούμενος από τελεία, και ο κωδικός του επιτυχόντος υποψηφίου.  
Το αρχείο να έχει την παρακάτω δομή (ενδεικτικά):
1.ΑΚ12345
2.ΒΤ45678

8. Εξεταστικά κέντρα (2014, Δ)

Για τη διεξαγωγή των Πανελλαδικών Εξετάσεων των ΕΠΑ.Λ. σήμερα, το Υπουργείο Παιδείας & Θρησκευμάτων έχει ορίσει 143 εξεταστικά κέντρα σε όλη τη χώρα.
Να γραφεί πρόγραμμα το οποίο:


∆1. Θα περιέχει τμήμα δήλωσης των μεταβλητών του
προγράμματος.
∆2. Θα διαβάζει για καθένα εξεταστικό κέντρο:
α. το νομό στον οποίο βρίσκεται.
β. το πλήθος των μαθητών που έχουν δικαίωμα να προσέλθουν στις εξετάσεις.
γ. το πλήθος των απόντων μαθητών.
∆3. Να εμφανίζει το νομό που βρίσκεται το μεγαλύτερο εξεταστικό κέντρο (δηλαδή αυτό με το μεγαλύτερο πλήθος μαθητών, οι οποίοι έχουν δικαίωμα να προσέλθουν στις
εξετάσεις). Να θεωρήσετε ότι αυτό το εξεταστικό κέντρο είναι μοναδικό.
∆4. Να εμφανίζει το συνολικό αριθμό των μαθητών που προσήλθαν στις εξετάσεις σε όλα τα εξεταστικά κέντρα της χώρας.
∆5. Να εμφανίζει το πλήθος των εξεταστικών κέντρων στα οποία προσήλθαν για τις εξετάσεις όλοι οι μαθητές, δηλαδή δεν έχουν κανένα απόντα.

 

Υπόδειξη:
∆ε χρειάζεται να γίνει έλεγχος ορθότητας τιμών, ούτε να υπάρχουν τα κατάλληλα μηνύματα στις εντολές εισόδου και εξόδου.

9. Αγώνας ταχύτητας αυτοκινήτων (2019, Γ)

Σε έναν αγώνα ταχύτητας αυτοκινήτων συμμετέχουν στον προκριματικό 35 οδηγοί με τα αυτοκίνητα τους. Στον τελικό αγώνα θα συμμετάσχουν όσοι οδηγοί σημειώσουν επίδοση
μικρότερη ή ίση από 180 δευτερόλεπτα που αποτελεί το όριο πρόκρισης. Κάθε οδηγός έχει μέχρι τέσσερις (4) προσπάθειες για να πετύχει το όριο πρόκρισης. Αν πετύχει σε μία
προσπάθεια, σταματά και δεν συνεχίζει τις υπόλοιπες προσπάθειες.

Να γράψετε πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο:

 

Γ1. Για κάθε οδηγό να διαβάζει το όνομά του και διαδοχικά τον χρόνο των προσπαθειών του μέχρι να πετύχει την κατάλληλη επίδοση ή να συμπληρωθεί ο αριθμός των προσπαθειών που δικαιούται.
Γ2. Για κάθε οδηγό να εμφανίζει το όνομά του και αν προκρίθηκε τον χρόνο πρόκρισής του, διαφορετικά να εμφανίζει το μήνυμα “ΜΗ ΣΥΜΜΕΤΟΧΗ”.
Γ3. Να υπολογίζει και να εμφανίζει το πλήθος των προκριθέντων οδηγών, καθώς και το μέσο όρο των χρόνων πρόκρισης που πέτυχαν. Υποθέστε ότι υπάρχει τουλάχιστον ένας.
Γ4. Να βρίσκει και να εμφανίζει το όνομα του οδηγού με το μικρότερο χρόνο πρόκρισης και τον χρόνο αυτό. (Υποθέστε ότι είναι μοναδικός).

10. Θερμοκρασίες (2018,Δ)

Δίνεται αρχείο "pth.txt" το οποίο περιέχει ονόματα πόλεων και τη μέγιστη θερμοκρασία τους σε μία συγκεκριμένη ημέρα. Το αρχείο έχει την παρακάτω δομή (ενδεικτικά):

Πάτρα
25
Λάρισα
27
.
.
.

Συνεπώς οι γραμμές που βρίσκονται σε περιττές θέσεις περιέχουν ονόματα πόλεων και οι γραμμές που βρίσκονται σε άρτιες θέσεις περιέχουν σε ακέραιο αριθμό τη μέγιστη θερμοκρασία της πόλης.
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο:


Δ1. Να διαβάζει το αρχείο "pth.txt" γραμμή προς γραμμή και ανάλογα αν η γραμμή είναι σε περιττή ή άρτια θέση, να καταχωρεί τα ονόματα των πόλεων σε μία λίστα POL και τις αντίστοιχες θερμοκρασίες τους σε μία λίστα THER.
Δ2. Να υπολογίζει και να εμφανίζει το μέσο όρο των θερμοκρασιών όλων των πόλεων.
Δ3. Να ταξινομεί τη λίστα THER με χρήση του αλγορίθμου ταξινόμησης της ευθείας ανταλλαγής (φυσαλίδα-bubble sort) σε φθίνουσα σειρά ως προς τις θερμοκρασίες αναδιατάσσοντας συγχρόνως τη λίστα POL έτσι ώστε να διατηρείται η αντιστοίχιση πόλεων-θερμοκρασιών.
Δ4. Θεωρώντας ότι μπορεί να υπάρχουν περισσότερες από μία πόλεις με την ίδια θερμοκρασία, να εμφανίζει την υψηλότερη θερμοκρασία που έχει καταχωρηθεί και τα ονόματα των πόλεων που έχουν αυτή τη θερμοκρασία.


Σημείωση: Θεωρήστε ότι όλα τα δεδομένα είναι ορθά.

11. Ρύποι (2015, Δ)

To Υπουργείο Περιβάλλοντος αποφάσισε να παρακολουθήσει για τριάντα (30) ημέρες τα επίπεδα ενός ρύπου στην ατμόσφαιρα, πραγματοποιώντας μία μέτρηση την ημέρα. Έχουν καθοριστεί τρία επίπεδα μόλυνσης με βάση την τιμή του ρύπου, όπως φαίνεται στον παρακάτω πίνακα:

Τιμές ρύπου  Επίπεδα μόλυνσης
έως και 1 «Φυσιολογικό»
πάνω από 1 έως και 2  «Οριακό»
πάνω από 2 «Επικίνδυνο»




Να γράψετε ένα πρόγραμμα σε γλώσσα προγραμματισμού Pascal, το οποίο:


Δ1. Θα περιέχει τμήμα δήλωσης των μεταβλητών του προγράμματος.
Δ2. Για κάθε μία από τις τριάντα (30) ημέρες να διαβάζει την τιμή του ρύπου με τη χρήση κατάλληλου μηνύματος (να γίνεται έλεγχος ορθότητας τιμών).
Δ3. Να εμφανίζει για κάθε μέρα το επίπεδο μόλυνσης ανάλογα με την τιμή του ρύπου.
Δ4. Να υπολογίζει και να εμφανίζει το πλήθος των ημερών κατά τη διάρκεια των οποίων η τιμή του ρύπου ξεπέρασε την τιμή 3.
Δ5. Να υπολογίζει και να εμφανίζει τον μέσο όρο των τιμών του ρύπου για το διάστημα των τριάντα (30) ημερών.

12. B3 (2019)

∆ίνεται το παρακάτω τμήμα προγράμματος Python:


x=100
def func(x):
print “To x είναι”, x
x=2
print “To τοπικό x άλλαξε σε”, x
func(x)
print “To x είναι ακόμα”, x

 

Να γράψετε τι εμφανίζει το πρόγραμμα κατά την εκτέλεσή του.

13. B1 (2019)

 

∆ίνεται η παρακάτω κλάση:

 

class Foititis:
def __init__(self, am, onoma, credits):
self.am=am
self.onoma=onoma
self.credits=credits

 

όπου am είναι ο αριθμός μητρώου του φοιτητή, onoma το όνομά του και credits ο αριθμός των πιστωτικών μονάδων του.

 

α) Να αναφέρετε μία ιδιότητα της κλάσης.
β) Να δημιουργήσετε τη μέθοδο με όνομα perasa_mathima η οποία θα δέχεται παράμετρο p και θα αυξάνει κατά p τα credits του αντικειμένου.
γ) Να δημιουργήσετε ένα στιγμιότυπο της κλάσης, δηλαδή ένα αντικείμενο με όνομα foititis1 του οποίου οι τιμές των ιδιοτήτων του θα οριστούν κατά τη δημιουργία του ως εξής: am=103, onoma=
“Κωνσταντίνου”, credits=0.
δ) Για το παραπάνω αντικείμενο να καλέσετε τη μέθοδο perasa_mathima, δίνοντας ως παράμετρο τον αριθμό 5.

14. Πλανητάριο (2025, Γ)

Ένα πλανητάριο δέχεται τέσσερα (4) σχολεία ανά ημέρα, για πέντε (5) ημέρες. Θεωρήστε ότι κατά το διάστημα αυτό κάθε σχολείο επισκέπτεται το πλανητάριο μόνο μία φορά. Το πλήθος των μαθητών ανά σχολείο είναι από είκοσι (20) έως και πενήντα (50) μαθητές. Η τιμή του εισιτηρίου για κάθε μαθητή είναι τέσσερα (4) ευρώ.
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python
το οποίο:

 

Γ1. Για κάθε μία από τις πέντε (5) ημέρες και για κάθε σχολείο να διαβάζει:


α) Το όνομα του σχολείου.
β) Τον τύπο του σχολείου ("ΕΠΑΛ" για Επαγγελματικό Λύκειο, "ΠΕΠΑΛ" για Πρότυπο Επαγγελματικό Λύκειο, "ΓΕΛ" για Γενικό Λύκειο, "ΜΟΥΣ" για Μουσικό σχολείο).
γ) Το πλήθος των μαθητών του σχολείου.

 

Να γίνεται έλεγχος ορθότητας, ώστε το πλήθος των μαθητών που καταχωρίζονται να είναι από είκοσι (20)
έως και πενήντα (50) μαθητές.

 

Γ2. Να υπολογίζει και να εμφανίζει το κόστος των εισιτηρίων για κάθε σχολείο. Για τον σκοπό αυτό να γίνεται κλήση της συνάρτησης YPOLOGISMOS(), όπως περιγράφεται στο ερώτημα Γ3.

 

Γ3. Να υλοποιεί συνάρτηση με όνομα YPOLOGISMOS, η οποία δέχεται το πλήθος των μαθητών ενός σχολείου και επιστρέφει το κόστος των εισιτηρίων του σχολείου.

 

Γ4. Να υπολογίζει και να εμφανίζει:


α) Τα συνολικά έσοδα του πλανηταρίου από τις επισκέψεις των σχολείων.
β) Το ποσοστό των μαθητών των Πρότυπων Επαγγελματικών Λυκείων (ΠΕΠΑΛ) που επισκέφθηκαν το πλανητάριο κατά τη διάρκεια των πέντε (5) ημερών.

 

Σημείωση: Θεωρήστε ότι υπάρχει τουλάχιστον ένα (1) σχολείο
από κάθε τύπο σχολείου στη διάρκεια των πέντε (5) ημερών.

15. Δακτύλιος (Επαναληπτικές 2020, Γ)

Στο κέντρο μίας πόλης εφαρμόζεται το μέτρο του δακτυλίου για την κυκλοφορία των οχημάτων. Η πρόσβαση στον δακτύλιο γίνεται με βάση τον αριθμό κυκλοφορίας του οχήματος. Ένας αριθμός κυκλοφορίας αποτελείται από 3 γράμματα που ακολουθούνται από 4 ψηφία (π.χ. ΙΖΚ1234).
Σύμφωνα με το παραπάνω μέτρο, τις μονές ημέρες επιτρέπεται η πρόσβαση των οχημάτων των οποίων ο αριθμός κυκλοφορίας λήγει σε μονό αριθμό. Αντίστοιχα, τις ζυγές ημέρες κυκλοφορούν τα οχήματα των οποίων ο αριθμός κυκλοφορίας λήγει σε ζυγό αριθμό. Η παράβαση του παραπάνω μέτρου επιφέρει πρόστιμο 100€. Από το μέτρο του δακτυλίου εξαιρούνται τα οχήματα των οποίων ο αριθμός κυκλοφορίας ξεκινά από «ΤΑΑ», «∆ΟΚ» και «ΚΥΑ».
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο:

Γ1. Για κάθε ημέρα από τις 25 έως και τις 29 Νοεμβρίου να πραγματοποιεί τα παρακάτω:

α) Να διαβάζει τον αριθμό κυκλοφορίας του οχήματος που διέρχεται από το σημείο ελέγχου. Η εισαγωγή να τερματίζει όταν δοθεί ως αριθμός κυκλοφορίας η λέξη «ΤΕΛΟΣ».

β) Να ελέγχει εάν το όχημα ανήκει στις εξαιρούμενες κατηγορίες εμφανίζοντας κατάλληλο μήνυμα. Σε διαφορετική περίπτωση να εξετάζει αν υπάρχει παράβαση, εμφανίζοντας το μήνυμα «ΠΡΟΣΤΙΜΟ».

Γ2. Να υπολογίζει και να εμφανίζει το ποσό των εσόδων από τα πρόστιμα της κάθε ημέρας.

Γ3. Να εντοπίζει και να εμφανίζει την ημέρα με τα περισσότερα πρόστιμα. Θεωρήστε ότι υπάρχει μόνο μία ημέρα με τα περισσότερα πρόστιμα.

Γ4. Να υπολογίζει και να εμφανίζει το πλήθος των οχημάτων που εξαιρέθηκαν του μέτρου στο σύνολο των ημερών.

 

16. Διαγωνισμός ρομποτικής (Επαναληπτικές 2020, Δ)

Σε έναν διαγωνισμό ρομποτικής συμμετέχουν 200 διαγωνιζόμενοι. Στην 1η φάση του διαγωνισμού ο κάθε διαγωνιζόμενος βαθμολογείται από τέσσερις (4) κριτές. Η  βαθμολογία του κάθε κριτή είναι από 1 έως και 100 μονάδες.
Η συνολική βαθμολογία του κάθε διαγωνιζόμενου προκύπτει από το άθροισμα των μονάδων των τεσσάρων (4) κριτών.
Στην επόμενη φάση του διαγωνισμού προκρίνονται 50 διαγωνιζόμενοι που συγκέντρωσαν τις περισσότερες μονάδες. Όσοι διαγωνιζόμενοι έχουν τις ίδιες μονάδες με τον πεντηκοστό διαγωνιζόμενο προκρίνονται και αυτοί.
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο να πραγματοποιεί τα παρακάτω:

∆1. Για κάθε διαγωνιζόμενο:

α) Να διαβάζει το ονοματεπώνυμό του και να το καταχωρίζει σε λίστα με όνομα NAME .
β) Να διαβάζει τις βαθμολογίες των τεσσάρων (4) κριτών με έλεγχο ορθότητας τιμών. Στη
συνέχεια να υπολογίζει τη συνολική βαθμολογία και να την καταχωρίζει σε λίστα με όνομα VATH.

∆2. Να καλεί συνάρτηση, την οποία θα έχετε υλοποιήσει με τρόπο ώστε να δέχεται τις παραπάνω λίστες και να τις ταξινομεί σε φθίνουσα σειρά ως προς τη βαθμολογία.
∆3. Να εμφανίζει τα ονοματεπώνυμα και τη βαθμολογία των διαγωνιζομένων που προκρίνονται στην επόμενη φάση.
∆4. α) Να υπολογίζει και να εμφανίζει τον μέσο όρο της βαθμολογίας των προκριθέντων.
      β) Να υπολογίζει και να εμφανίζει το ποσοστό των διαγωνιζομένων που συγκέντρωσαν       βαθμολογία μεγαλύτερη από 300 μονάδες στο σύνολο των διαγωνιζόμενων.

17. Θέματα Β (Επαναληπτικές 2020,2021)

  • Να γράψετε στο τετράδιό σας το παρακάτω τμήμα προγράμματος χρησιμοποιώντας την εντολή επανάληψης for αντί της εντολής επανάληψης while, ώστε να εμφανίζεται το ίδιο αποτέλεσμα.
i=2
while i<=100:
print i
i += 10

  • Να μεταφέρετε στο τετράδιό σας τον παρακάτω πίνακα αληθείας και να συμπληρώσετε για την κάθε γραμμή το αποτέλεσμα της λογικής έκφρασης:
A B C not A or (B and C)
True True True  
False True False  
True False True  
False False False  
False True True  

 

  • Να γράψετε στο τετράδιό σας τι θα εμφανίσει η εκτέλεση του παρακάτω τμήματος προγράμματος:
s1= "Προγραμματισμός"
s2="Υπολογιστών"
s3=s1+"_"+s2
print s3[:14]
print s3[19:]

 

  • ∆ίνεται το παρακάτω τμήμα προγράμματος σε γλώσσα προγραμματισμού Python:
f=[5,8,13,21,34]
1. print f
f.pop(1)
2. print f
f.append(18)
3. print f
f.pop()
4. print f
f.insert(1,75)
5. print f

Να γράψετε στο τετράδιό σας τους αριθμούς 1, 2, 3, 4 και 5 που αντιστοιχούν στις εντολές print του παραπάνω
τμήματος προγράμματος και δίπλα σε κάθε αριθμό το αποτέλεσμα που θα εμφανιστεί στην οθόνη κατά την εκτέλεσή του.

18. Εξετάσεις Ισπανικών (2025 Γ)

Ένας φορέας Πιστοποίησης Γλωσσομάθειας διεξάγει ετήσιες εξετάσεις πιστοποίησης στη γλώσσα των Ισπανικών στις οποίες προσήλθαν τριακόσιοι (300) υποψήφιοι. Οι υποψήφιοι πρέπει να συμπληρώσουν ένα ηλεκτρονικό φύλλο αξιολόγησης που αποτελείται από δέκα (10) ερωτήσεις πολλαπλής επιλογής. Κάθε ερώτηση έχει τέσσερις (4) δυνατές απαντήσεις, οι οποίες χαρακτηρίζονται από τα γράμματα a, b, c και d. Μόνο μία από τις απαντήσεις a, b, c, d είναι η σωστή. Θεωρήστε ότι ο υποψήφιος για κάθε ερώτηση επιλέγει υποχρεωτικά μία και μόνο απάντηση.
Κάθε σωστή απάντηση βαθμολογείται με πέντε (5) μονάδες, ενώ κάθε λανθασμένη βαθμολογείται με μηδέν (0) μονάδες. Οι σωστές απαντήσεις βρίσκονται στη λίστα ANS["a", "d", "b", "b","a", "c", "d", "a", "b", "c"].
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο:


Δ1. Για κάθε υποψήφιο:

α) Να διαβάζει τον κωδικό του (ως συμβολοσειρά) και να τον καταχωρίζει σε λίστα με όνομα KOD.
β) Να διαβάζει από το πληκτρολόγιο διαδοχικά τις δέκα (10) απαντήσεις που έδωσε και να υπολογίζει τη συνολική βαθμολογία του, σύμφωνα με την περιγραφόμενη διαδικασία βαθμολόγησης και χρήση της λίστας ANS. Η λίστα ANS πρέπει να οριστεί στο πρόγραμμα.
γ) Να καταχωρίζει τη συνολική βαθμολογία του στη λίστα SB.

Δ2. Να εμφανίζει τους κωδικούς των υποψηφίων που είχαν βαθμολογία μεγαλύτερη των τριάντα (30) μονάδων.
Θεωρήστε ότι υπάρχει τουλάχιστον ένας (1) υποψήφιος με βαθμολογία μεγαλύτερη των τριάντα (30) μονάδων.

 

Δ3.  α) Να ταξινομεί τη λίστα SB με χρήση του αλγορίθμου ταξινόμησης της ευθείας ανταλλαγής (φυσαλίδα – bubble sort) σε φθίνουσα σειρά, αναδιατάσσοντας συγχρόνως τη λίστα KOD, ώστε να διατηρείται η αντιστοιχία κωδικών και συνολικών βαθμολογιών.

       β) Να δημιουργεί αρχείο κειμένου με όνομα "lang.txt", όπου σε κάθε γραμμή του θα γραφεί ο κωδικός του υποψηφίου, ακολουθούμενος από έναν κενό χαρακτήρα και τη συνολική του βαθμολογία.

Σημείωση: Δεν απαιτούνται έλεγχοι ορθότητας δεδομένων.

19. (2025, Β)

Η παρακάτω συνάρτηση δέχεται μία λίστα (listA) που περιέχει λέξεις και επιστρέφει μία συμβολοσειρά που δημιουργείται από τα αρχικά γράμματα των λέξεων της λίστας (listA).


def newWord (listA):
arxika = ____(1)
for ____(2) in listA :
arxika = ____(3) + lexi[ ____(4) ]
return ____(5)

Να γράψετε στο τετράδιό σας τους αριθμούς (1), (2), (3), (4) και (5) που αντιστοιχούν στα κενά της παραπάνω συνάρτησης και δίπλα σε καθέναν από τους αριθμούς αυτό που πρέπει να συμπληρωθεί, ώστε η συνάρτηση να εκτελεί την αναφερόμενη λειτουργία.

20. Διαγωνισμός μαθηματικών (2024, Γ)

Σε έναν διαγωνισμό μαθηματικών συμμετέχουν μαθητές από όλη τη χώρα. Κάθε διαγωνιζόμενος βαθμολογείται σε δέκα (10) θέματα. Η βαθμολογία κάθε θέματος είναι από 1 έως και 20 μονάδες. Η τελική βαθμολογία κάθε διαγωνιζόμενου προκύπτει από τον μέσο όρο των βαθμολογιών των δέκα (10) θεμάτων. Στην επόμενη φάση του διαγωνισμού προκρίνονται οι διαγωνιζόμενοι που έχουν τελική βαθμολογία μεγαλύτερη από 15 και σε όλα τα θέματα έχουν βαθμό μεγαλύτερο ή ίσο του 12.
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο:
Γ1. Για κάθε διαγωνιζόμενο:
α) Να διαβάζει το ονοματεπώνυμό του.
β) Να διαβάζει τη βαθμολογία για καθένα εκ των δέκα (10) θεμάτων με έλεγχο ορθότητας τιμών
γ) Η εισαγωγή των δεδομένων να τερματίζει, όταν δοθεί ως ονοματεπώνυμο διαγωνιζόμενου η λέξη "ΤΕΛΟΣ"
Θεωρήστε ότι υπάρχουν τουλάχιστον δύο (2) διαγωνιζόμενοι.

Γ2. Να υπολογίζει και να εμφανίζει την τελική βαθμολογία κάθε διαγωνιζόμενου.

Γ3. Να εμφανίζει κατάλληλο μήνυμα, εάν ο διαγωνιζόμενος προκρίνεται στην επόμενη φάση.

Γ4. Να βρίσκει και να εμφανίζει τη μεγαλύτερη τελική βαθμολογία.

Γ5. Να υπολογίζει και να εμφανίζει το ποσοστό των διαγωνιζόμενων που προκρίθηκαν στην επόμενη φάση.

21. Υποκαταστήματα (2024, Δ)

Δίνεται το αρχείο "branch.txt", το οποίο περιέχει ονόματα υποκαταστημάτων μίας εταιρείας. Το αρχείο έχει ενδεικτικά την παρακάτω δομή:


Micro_Vironas
Mega_Kifisia
.
.


Σε κάθε γραμμή του αρχείου "branch.txt" βρίσκεται το όνομα του υποκαταστήματος.
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο:
Δ1. Να διαβάζει το αρχείο "branch.txt" γραμμή προς γραμμή και να καταχωρίζει τα ονόματα των υποκαταστημάτων σε μία λίστα με όνομα ΟΝ. Θεωρήστε ότι στο αρχείο υπάρχουν τουλάχιστον δύο (2) υποκαταστήματα.

Δ2. Για κάθε υποκατάστημα:
α) Να διαβάζει την ημερήσια είσπραξη για κάθε μία από τις τριάντα (30) ημέρες του μήνα Ιουνίου (μον.3).
β) Να υπολογίζει το σύνολο των εισπράξεων του μήνα Ιουνίου και να το καταχωρίζει σε λίστα με όνομα S_POSO (μον.4).

Δ3. α) Να υπολογίζει και να εμφανίζει τον μέσο όρο των εισπράξεων όλων των υποκαταστημάτων για τον μήνα Ιούνιο.
β) Να υπολογίζει και να εμφανίζει το πλήθος των υποκαταστημάτων που έχουν εισπράξεις μεγαλύτερες ή ίσες του μέσου όρου.

Δ4. Να ταξινομεί τη λίστα S_POSO με χρήση του αλγορίθμου ταξινόμησης της ευθείας ανταλλαγής (φυσαλίδα – bubble sort) σε φθίνουσα σειρά, αναδιατάσσοντας συγχρόνως τη
λίστα ΟΝ, έτσι ώστε να διατηρείται η αντιστοιχία ονομάτων υποκαταστημάτων – εισπράξεων. Σε περίπτωση ισότητας εισπράξεων να γίνεται ταξινόμηση με αλφαβητική σειρά ως προς τα ονόματα της λίστας ΟΝ.

22. Μαθητικός διαγωνισμός (Επαναληπτικές 2022, Δ)

Δίνεται το αρχείο "apot.txt", το οποίο περιέχει κωδικούς διαγωνιζομένων και τη βαθμολογία τους σε ένα μαθητικό διαγωνισμό. Το αρχείο έχει ενδεικτικά την παρακάτω δομή:
ΑΘΗ2532
78
ΘΕΣ1984
72
ΘΕΣ4321
92
.
.
.
Συνεπώς οι γραμμές που βρίσκονται σε περιττές θέσεις περιέχουν κωδικούς διαγωνιζομένων και οι γραμμές που βρίσκονται σε άρτιες θέσεις περιέχουν τον βαθμό κάθε διαγωνιζομένου σε ακέραιο αριθμό από 1 έως και 100 μονάδες.
Ο κωδικός κάθε διαγωνιζομένου αποτελείται από τρία (3) γράμματα τα οποία αντιστοιχούν στην πόλη κατοικίας του διαγωνιζομένου και ακολουθείται από τέσσερα (4) ψηφία. Στην
επόμενη φάση του διαγωνισμού προκρίνονται οι διαγωνιζόμενοι με βαθμολογία πάνω από εβδομήντα (70) μονάδες.
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο:
Δ1. Να διαβάζει το αρχείο "apot.txt" γραμμή προς γραμμή και ανάλογα, αν η γραμμή είναι σε περιττή ή άρτια θέση, να καταχωρίζει τους κωδικούς των διαγωνιζομένων σε μία λίστα KOD και τους αντίστοιχους βαθμούς σε μία λίστα BAT.

Δ2. Να υπολογίζει και να εμφανίζει τον μέσο όρο των βαθμολογιών των διαγωνιζομένων της πόλης Θεσσαλονίκης της οποίας ο κωδικός αρχίζει με τα γράμματα "ΘΕΣ". Θεωρήστε ότι υπάρχουν τουλάχιστον δύο (2) διαγωνιζόμενοι από τη Θεσσαλονίκη.

Δ3. Να δημιουργεί τις λίστες KOD_PRO και ΒΑΤ_PRO με τους κωδικούς και τις βαθμολογίες των διαγωνιζομένων που προκρίνονται στην επόμενη φάση. Θεωρήστε ότι θα προκριθούν τουλάχιστον δύο διαγωνιζόμενοι στην επόμενη φάση.

Δ4. Να ταξινομεί τη λίστα ΒΑΤ_PRO με χρήση του αλγορίθμου ταξινόμησης ευθείας ανταλλαγής (φυσαλίδα-bubblesort) σε αύξουσα σειρά ως προς τις βαθμολογίες αναδιατάσσοντας συγχρόνως τη λίστα KOD_PRO και να εμφανίζει την τελική κατάταξη των διαγωνιζομένων από τις λίστες KOD_PRO και ΒΑΤ_PRO.

Διαγώνισμα 1

 

Διαγώνισμα 2