Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας στο τετράδιό σας, δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση, τη λέξη Σωστό, αν η πρόταση είναι σωστή, ή τη λέξη Λάθος, αν η πρόταση είναι λανθασμένη.
α.Οι τοπικές μεταβλητές ισχύουν για το υποπρόγραμμα στο οποίο δηλώθηκαν.
β.Η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένες συλλογές δεδομένων.
γ.Στην Python η δομή της ουράς μπορεί να υλοποιηθεί με μία λίστα στην οποία οι εισαγωγές και οι εξαγωγές στοιχείων γίνονται μόνο από το ένα άκρο.
δ.Η Λίστα (List) ανήκει στους απλούς τύπους δεδομένων.
ε.Η κλήση μιας συνάρτησης γίνεται με την εντολή call όνομα_συνάρτησης().
Ενδεικτική απάντηση
Πρόταση
Απάντηση
Αιτιολόγηση
α
Σωστό
Η εμβέλεια των τοπικών μεταβλητών περιορίζεται στο υποπρόγραμμα στο οποίο δηλώθηκαν.
β
Σωστό
Ο αλγόριθμος στηρίζεται στη διάταξη των στοιχείων, άρα προϋποθέτει ταξινομημένη συλλογή.
γ
Λάθος
Στην ουρά (FIFO) οι εισαγωγές γίνονται από το ένα άκρο και οι εξαγωγές από το άλλο. Από ένα μόνο άκρο λειτουργεί η στοίβα.
δ
Λάθος
Η λίστα είναι σύνθετος τύπος (δομή δεδομένων) που περιέχει πολλά στοιχεία. Απλοί τύποι είναι π.χ. int, float, bool.
ε
Λάθος
Η κλήση γίνεται γράφοντας απλώς το όνομα της συνάρτησης με τις παραμέτρους της, π.χ. onoma_synartisis(). Δεν υπάρχει εντολή call.
Α2
Μονάδες 10
Να γράψετε στο τετράδιό σας τους αριθμούς 1, 2, 3, 4, 5 από τη στήλη Α και δίπλα σε καθέναν από αυτούς ένα από τα γράμματα α, β, γ, δ, ε, στ της στήλης Β, που δίνει τη σωστή αντιστοίχιση. Σημειώνεται ότι ένα γράμμα της στήλης Β περισσεύει.
ΣΤΗΛΗ Α
ΣΤΗΛΗ Β
1. len("ΠΡΟΤΥΠΟ")
α. 4
2. divmod(19,5)
β. "ΡΟΤ"
3. "ΠΡΟΤΥΠΟ"[1:4]
γ. 14
4. int(3.9)
δ. 3
5. 19%5
ε. 7
στ. (3, 4)
Ενδεικτική απάντηση
ΣΤΗΛΗ Α
→
ΣΤΗΛΗ Β
1. len("ΠΡΟΤΥΠΟ")
ε
Η len() μετρά τους χαρακτήρες της συμβολοσειράς.
2. divmod(19,5)
στ
Η divmod(x,y) επιστρέφει το ζεύγος (πηλίκο, υπόλοιπο).
3. "ΠΡΟΤΥΠΟ"[1:4]
β
Το τμήμα [1:4] παίρνει τους χαρακτήρες των θέσεων 1, 2 και 3.
4. int(3.9)
δ
Η int() αποκόπτει το δεκαδικό μέρος, δεν στρογγυλοποιεί.
5. 19%5
α
Ο τελεστής % δίνει το υπόλοιπο της διαίρεσης.
Περισσεύει το γράμμα γ (14).
ΘΕΜΑ Β
Β1
Μονάδες 10
Η παρακάτω συνάρτηση δέχεται μια λίστα αριθμών (times) και επιστρέφει τον μεγαλύτερο από αυτούς.
def megisto(times):
megalytero = (1)
for i in range(1, (2) ):
if times[i] (3) megalytero:
megalytero = (4)
return (5)
Να γράψετε στο τετράδιό σας τους αριθμούς (1) έως (5) και δίπλα σε καθέναν από αυτούς αυτό που πρέπει να συμπληρωθεί, ώστε το τμήμα προγράμματος να λειτουργεί σωστά.
Ενδεικτική απάντηση
Κενό
Συμπλήρωση
(1)
times[0]
(2)
len(times)
(3)
>
(4)
times[i]
(5)
megalytero
Το συμπληρωμένο τμήμα προγράμματος:
def megisto(times):
megalytero = times[0]
for i in range(1, len(times)):
if times[i] > megalytero:
megalytero = times[i]
return megalytero
Β2
Μονάδες 10
Δίνεται το παρακάτω τμήμα προγράμματος σε γλώσσα προγραμματισμού Python. Να γράψετε στο τετράδιό σας τι ακριβώς θα εμφανιστεί στην οθόνη κατά την εκτέλεσή του.
x = 18
while x > 0:
if x % 2 == 0:
print "artios", x
else:
print "perittos", x
x = x - 4
Ενδεικτική απάντηση
Παρακολούθηση της εκτέλεσης:
Επανάληψη
x
Εμφανίζεται
1
18
artios
2
14
artios
3
10
artios
4
6
artios
5
2
artios
Άρα στην οθόνη εμφανίζεται:
Έξοδος στην οθόνη
artios 18
artios 14
artios 10
artios 6
artios 2
Β3
Μονάδες 5
Να γράψετε στο τετράδιό σας τι θα εμφανίσει η εκτέλεση του παρακάτω τμήματος προγράμματος.
L = [6, 3, 5, 5]
L.append(15)
print L
x = L.pop()
print x, len(L)
Ενδεικτική απάντηση
Έξοδος στην οθόνη
[6, 3, 5, 5, 15]
15 4
Η append() προσθέτει στο τέλος, η pop() αφαιρεί ΚΑΙ επιστρέφει το τελευταίο στοιχείο, οπότε το μήκος της λίστας μειώνεται.
ΘΕΜΑ Γ
Σε ένα θερινό σινεμά καταγράφονται δεκατέσσερις (14) εγγραφές. Για κάθε προβολή καταγράφονται το όνομα της προβολής, το είδος της ταινίας ("ΠΑΙΔΙΚΗ", "ΔΡΑΜΑ", "ΚΩΜΩΔΙΑ") και το πλήθος των θεατών, που πρέπει να είναι από δεκαπέντε (15) έως και ογδόντα (80).
Η χρέωση ανά θεατή εξαρτάται από την κατηγορία: "ΠΑΙΔΙΚΗ" επτά (7) ευρώ, "ΔΡΑΜΑ" δέκα (10) ευρώ, "ΚΩΜΩΔΙΑ" πέντε (5) ευρώ. Επιπλέον, όταν το πλήθος των θεατών ξεπερνά τα σαράντα επτά (47), γίνεται έκπτωση 10% στη συνολική χρέωση.
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο:
Γ1
Μονάδες 8
Για καθεμία από τις δεκατέσσερις (14) εγγραφές να διαβάζει:
α)Το όνομα της προβολής. (μον. 2)
β)Το είδος της ταινίας ("ΠΑΙΔΙΚΗ", "ΔΡΑΜΑ", "ΚΩΜΩΔΙΑ"). (μον. 2)
γ)Το πλήθος των θεατών. Να γίνεται έλεγχος ορθότητας, ώστε η τιμή που καταχωρίζεται να είναι από δεκαπέντε (15) έως και ογδόντα (80). (μον. 4)
Ενδεικτική απάντηση
onomata = []
katigories = []
plithi = []
for i in range(14):
onoma = raw_input("Onoma: ")
katigoria = raw_input("Katigoria (ΠΑΙΔΙΚΗ/ΔΡΑΜΑ/ΚΩΜΩΔΙΑ): ")
plithos = input("Plithos (15-80): ")
while plithos < 15 or plithos > 80:
print "Lathos timi."
plithos = input("Plithos (15-80): ")
onomata.append(onoma)
katigories.append(katigoria)
plithi.append(plithos)
Γ2
Μονάδες 6
Για κάθε προβολή να υπολογίζει και να εμφανίζει τη χρέωση που αντιστοιχεί, με κλήση της συνάρτησης XREOSI(), όπως περιγράφεται στο ερώτημα Γ3.
Να υλοποιεί συνάρτηση με όνομα XREOSI, η οποία δέχεται την κατηγορία και το πλήθος των θεατών, και επιστρέφει τη χρέωση σύμφωνα με τις τιμές κάθε κατηγορίας και την έκπτωση 10% όταν η τιμή ξεπερνά τα σαράντα επτά (47).
Ένα κέντρο ανακύκλωσης καταγράφει στοιχεία για δώδεκα (12) υλικά. Για κάθε υλικό καταχωρίζονται η ονομασία και τα κιλά που συγκεντρώθηκαν.
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο:
Δ1
Μονάδες 7
Να διαβάζει για καθένα από τα δώδεκα (12) υλικά την ονομασία και τα κιλά, και να τα καταχωρίζει στις παράλληλες λίστες ylika και kila.
Ενδεικτική απάντηση
ylika = []
kila = []
for i in range(12):
onoma = raw_input("Onomasia: ")
timi = input("Timi: ")
ylika.append(onoma)
kila.append(timi)
Δ2
Μονάδες 6
Να ταξινομεί τις δύο λίστες κατά αύξουσα αλφαβητική σειρά ως προς τη λίστα ylika, με τον αλγόριθμο ταξινόμησης ευθείας ανταλλαγής, μετακινώντας ταυτόχρονα και τα αντίστοιχα στοιχεία της kila.
Ενδεικτική απάντηση
for i in range(1, 12):
for j in range(12 - 1, i - 1, -1):
if ylika[j] < ylika[j-1]:
ylika[j], ylika[j-1] = ylika[j-1], ylika[j]
kila[j], kila[j-1] = kila[j-1], kila[j]
Δ3
Μονάδες 6
Να διαβάζει μια ονομασία και να την αναζητά στην ταξινομημένη λίστα ylika με τον αλγόριθμο της δυαδικής αναζήτησης. Αν βρεθεί, να εμφανίζει την αντίστοιχη τιμή· αλλιώς κατάλληλο μήνυμα.
Ενδεικτική απάντηση
zitoumeno = raw_input("Onomasia pros anazitisi: ")
left = 0
right = 12 - 1
thesi = -1
while left <= right and thesi == -1:
mesi = (left + right) / 2
if ylika[mesi] == zitoumeno:
thesi = mesi
elif ylika[mesi] < zitoumeno:
left = mesi + 1
else:
right = mesi - 1
if thesi == -1:
print "Den vrethike"
else:
print ylika[thesi], kila[thesi]
Δ4
Μονάδες 6
Να υπολογίζει τον μέσο όρο των τιμών της λίστας kila και να δημιουργεί αρχείο κειμένου «anakiklosi.txt» με τις εγγραφές που έχουν τιμή μεγαλύτερη από τον μέσο όρο.
Ενδεικτική απάντηση
athroisma = 0
for i in range(12):
athroisma = athroisma + kila[i]
mo = athroisma / float(12)
f = open("anakiklosi.txt", "w")
for i in range(12):
if kila[i] > mo:
f.write(ylika[i] + " " + str(kila[i]) + "\n")
f.close()
print "Mesos oros:", mo
Ολοκληρωμένο πρόγραμμα του θέματος:
ylika = []
kila = []
for i in range(12):
onoma = raw_input("Onomasia: ")
timi = input("Timi: ")
ylika.append(onoma)
kila.append(timi)
for i in range(1, 12):
for j in range(12 - 1, i - 1, -1):
if ylika[j] < ylika[j-1]:
ylika[j], ylika[j-1] = ylika[j-1], ylika[j]
kila[j], kila[j-1] = kila[j-1], kila[j]
zitoumeno = raw_input("Onomasia pros anazitisi: ")
left = 0
right = 12 - 1
thesi = -1
while left <= right and thesi == -1:
mesi = (left + right) / 2
if ylika[mesi] == zitoumeno:
thesi = mesi
elif ylika[mesi] < zitoumeno:
left = mesi + 1
else:
right = mesi - 1
if thesi == -1:
print "Den vrethike"
else:
print ylika[thesi], kila[thesi]
athroisma = 0
for i in range(12):
athroisma = athroisma + kila[i]
mo = athroisma / float(12)
f = open("anakiklosi.txt", "w")
for i in range(12):
if kila[i] > mo:
f.write(ylika[i] + " " + str(kila[i]) + "\n")
f.close()
print "Mesos oros:", mo
Τα ΘΕΜΑΤΑ Α και Β προέρχονται από τράπεζα υλικού
βασισμένη στα πραγματικά θέματα των Πανελλαδικών 2017–2026, με υπολογισμένες απαντήσεις.
Τα ΘΕΜΑΤΑ Γ και Δ γράφτηκαν από το μοντέλο
nvidia/nemotron-3-super-120b-a12b. Δεν είναι επίσημο
θέμα του Υπουργείου Παιδείας και μπορεί να περιέχει λάθη — αν βρεις κάποιο, πες μας στο
Forum.