Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας στο τετράδιό σας, δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση, τη λέξη Σωστό, αν η πρόταση είναι σωστή, ή τη λέξη Λάθος, αν η πρόταση είναι λανθασμένη.
α.Η έκφραση word[a:b] μας επιστρέφει το τμήμα της συμβολοσειράς ή της λίστας από το στοιχείο word[a] μέχρι και το στοιχείο word[b].
β.Η δυαδική αναζήτηση βρίσκει το ζητούμενο πολύ πιο γρήγορα από ό,τι η σειριακή αναζήτηση.
γ.Οι τοπικές μεταβλητές που ορίζονται σε μία συνάρτηση χάνονται, όταν τελειώσει η εκτέλεση της συνάρτησης.
δ.Η συνάρτηση pow(4,2) επιστρέφει την τιμή 8.
ε.Η κλήση μιας συνάρτησης γίνεται με την εντολή call όνομα_συνάρτησης().
Ενδεικτική απάντηση
Πρόταση
Απάντηση
Αιτιολόγηση
α
Λάθος
Η word[a:b] επιστρέφει τα στοιχεία από τη θέση a έως και τη θέση b-1. Το στοιχείο word[b] ΔΕΝ συμπεριλαμβάνεται.
β
Σωστό
Η δυαδική αναζήτηση υποδιπλασιάζει το διάστημα σε κάθε βήμα, ενώ η σειριακή ελέγχει ένα προς ένα τα στοιχεία.
γ
Σωστό
Οι τοπικές μεταβλητές δεσμεύονται με την κλήση και αποδεσμεύονται με τον τερματισμό της συνάρτησης.
δ
Λάθος
Η pow(4,2) υπολογίζει το 4 υψωμένο στη δύναμη 2, δηλαδή 16.
ε
Λάθος
Η κλήση γίνεται γράφοντας απλώς το όνομα της συνάρτησης με τις παραμέτρους της, π.χ. onoma_synartisis(). Δεν υπάρχει εντολή call.
Α2
Μονάδες 10
Να γράψετε στο τετράδιό σας τους αριθμούς 1, 2, 3, 4, 5 από τη στήλη Α και δίπλα σε καθέναν από αυτούς ένα από τα γράμματα α, β, γ, δ, ε, στ της στήλης Β, που δίνει τη σωστή αντιστοίχιση. Σημειώνεται ότι ένα γράμμα της στήλης Β περισσεύει.
ΣΤΗΛΗ Α
ΣΤΗΛΗ Β
1. min([40, 9, 2])
α. 40
2. 40%9
β. "22"
3. "ΕΠΑΛ"[1:4]
γ. 4
4. str(2)*2
δ. 4.4444
5. 40/9.0
ε. "ΠΑΛ"
στ. 2
Ενδεικτική απάντηση
ΣΤΗΛΗ Α
→
ΣΤΗΛΗ Β
1. min([40, 9, 2])
στ
Η min() επιστρέφει το μικρότερο στοιχείο της λίστας.
2. 40%9
γ
Ο τελεστής % δίνει το υπόλοιπο της διαίρεσης.
3. "ΕΠΑΛ"[1:4]
ε
Το τμήμα [1:4] παίρνει τους χαρακτήρες των θέσεων 1, 2 και 3.
4. str(2)*2
β
Ο τελεστής * σε συμβολοσειρά την επαναλαμβάνει.
5. 40/9.0
δ
Με δεκαδικό διαιρέτη η διαίρεση δίνει δεκαδικό αποτέλεσμα.
Περισσεύει το γράμμα α (40).
ΘΕΜΑ Β
Β1
Μονάδες 10
Η παρακάτω συνάρτηση δέχεται μια λίστα ακεραίων (lista) και επιστρέφει το πλήθος των στοιχείων της που είναι μεγαλύτερα από 10.
def plithos_pano(lista):
metritis = (1)
for i in range( (2) ):
if lista[i] (3) 10:
metritis = metritis + (4)
return (5)
Να γράψετε στο τετράδιό σας τους αριθμούς (1) έως (5) και δίπλα σε καθέναν από αυτούς αυτό που πρέπει να συμπληρωθεί, ώστε το τμήμα προγράμματος να λειτουργεί σωστά.
Ενδεικτική απάντηση
Κενό
Συμπλήρωση
(1)
0
(2)
len(lista)
(3)
>
(4)
1
(5)
metritis
Το συμπληρωμένο τμήμα προγράμματος:
def plithos_pano(lista):
metritis = 0
for i in range(len(lista)):
if lista[i] > 10:
metritis = metritis + 1
return metritis
Β2
Μονάδες 10
Δίνεται το παρακάτω τμήμα προγράμματος σε γλώσσα προγραμματισμού Python. Να γράψετε στο τετράδιό σας τι ακριβώς θα εμφανιστεί στην οθόνη κατά την εκτέλεσή του.
lista = [4, 14, 30, 11, 11]
athroisma = 0
for i in range(len(lista)):
if lista[i] > 10:
athroisma = athroisma + lista[i]
print lista[i], athroisma
print "Sinolo:", athroisma
Ενδεικτική απάντηση
Παρακολούθηση της εκτέλεσης:
i
lista[i]
> 10;
athroisma
0
4
όχι
0
1
14
ναι
14
2
30
ναι
44
3
11
ναι
55
4
11
ναι
66
Άρα στην οθόνη εμφανίζεται:
Έξοδος στην οθόνη
14 14
30 44
11 55
11 66
Sinolo: 66
Β3
Μονάδες 5
Να γράψετε στο τετράδιό σας τι θα εμφανίσει η εκτέλεση του παρακάτω τμήματος προγράμματος.
Το τμήμα word[a:b] περιλαμβάνει τους χαρακτήρες των θέσεων a έως b-1· η αρίθμηση ξεκινά από το 0.
ΘΕΜΑ Γ
Σε ένα γυμναστήριο καταγράφονται δεκαοκτώ (18) εγγραφές. Για κάθε τμήμα καταγράφονται το όνομα του τμήματος, το είδος του τμήματος ("ΓΙΟΓΚΑ", "ΒΑΡΗ", "ΧΟΡΟΣ") και το πλήθος των αθλουμένων, που πρέπει να είναι από πέντε (5) έως και είκοσι πέντε (25).
Η χρέωση ανά αθλούμενο εξαρτάται από την κατηγορία: "ΓΙΟΓΚΑ" έξι (6) ευρώ, "ΒΑΡΗ" εννέα (9) ευρώ, "ΧΟΡΟΣ" τέσσερα (4) ευρώ. Επιπλέον, όταν το πλήθος των αθλουμένων ξεπερνά τα δεκαπέντε (15), γίνεται έκπτωση 10% στη συνολική χρέωση.
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο:
Γ1
Μονάδες 8
Για καθένα από τα δεκαοκτώ (18) εγγραφές να διαβάζει:
α)Το όνομα του τμήματος. (μον. 2)
β)Το είδος του τμήματος ("ΓΙΟΓΚΑ", "ΒΑΡΗ", "ΧΟΡΟΣ"). (μον. 2)
γ)Το πλήθος των αθλουμένων. Να γίνεται έλεγχος ορθότητας, ώστε η τιμή που καταχωρίζεται να είναι από πέντε (5) έως και είκοσι πέντε (25). (μον. 4)
Ενδεικτική απάντηση
onomata = []
katigories = []
plithi = []
for i in range(18):
onoma = raw_input("Onoma: ")
katigoria = raw_input("Katigoria (ΓΙΟΓΚΑ/ΒΑΡΗ/ΧΟΡΟΣ): ")
plithos = input("Plithos (5-25): ")
while plithos < 5 or plithos > 25:
print "Lathos timi."
plithos = input("Plithos (5-25): ")
onomata.append(onoma)
katigories.append(katigoria)
plithi.append(plithos)
Γ2
Μονάδες 6
Για κάθε τμήμα να υπολογίζει και να εμφανίζει τη χρέωσή της, με κλήση της συνάρτησης XREOSI(), όπως περιγράφεται στο ερώτημα Γ3.
Να υλοποιεί συνάρτηση με όνομα XREOSI, η οποία δέχεται την κατηγορία και το πλήθος των αθλουμένων, και επιστρέφει τη χρέωση σύμφωνα με τις τιμές κάθε κατηγορίας και την έκπτωση 10% όταν η τιμή ξεπερνά τα δεκαπέντε (15).
Ένα κέντρο ανακύκλωσης καταγράφει στοιχεία για δώδεκα (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.