Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας στο τετράδιό σας, δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση, τη λέξη Σωστό, αν η πρόταση είναι σωστή, ή τη λέξη Λάθος, αν η πρόταση είναι λανθασμένη.
α.Η εντολή number=random.randrange(1,10) επιστρέφει έναν τυχαίο αριθμό στο [1,9].
β.Η σύνταξη για την κλήση μίας μεθόδου είναι διαφορετική από τη σύνταξη για την κλήση μίας συνάρτησης.
γ.Στη γλώσσα προγραμματισμού Python χρησιμοποιούμε την εντολή for για να εκτελεστεί ένα τμήμα του κώδικα για έναν καθορισμένο αριθμό επαναλήψεων.
δ.Η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένες συλλογές δεδομένων.
ε.Η έκφραση '1000' < '2' επιστρέφει τιμή False.
Ενδεικτική απάντηση
Πρόταση
Απάντηση
Αιτιολόγηση
α
Σωστό
Η randrange(1,10) επιστρέφει τυχαίο ακέραιο από το 1 έως και το 9 (το άνω άκρο δεν συμπεριλαμβάνεται).
β
Σωστό
Η μέθοδος καλείται μέσω του αντικειμένου (antikeimeno.methodos()), ενώ η συνάρτηση απλώς με το όνομά της.
γ
Σωστό
Η for διατρέχει μια ακολουθία τιμών, άρα εκτελεί προκαθορισμένο αριθμό επαναλήψεων.
δ
Σωστό
Ο αλγόριθμος στηρίζεται στη διάταξη των στοιχείων, άρα προϋποθέτει ταξινομημένη συλλογή.
ε
Λάθος
Η σύγκριση συμβολοσειρών γίνεται χαρακτήρα-χαρακτήρα: '1' < '2', άρα η έκφραση επιστρέφει True.
Α2
Μονάδες 10
Να γράψετε στο τετράδιό σας τους αριθμούς 1, 2, 3, 4, 5 από τη στήλη Α και δίπλα σε καθέναν από αυτούς ένα από τα γράμματα α, β, γ, δ, ε, στ της στήλης Β, που δίνει τη σωστή αντιστοίχιση. Σημειώνεται ότι ένα γράμμα της στήλης Β περισσεύει.
ΣΤΗΛΗ Α
ΣΤΗΛΗ Β
1. "ΠΡΟΤΥΠΟ"[1:4]
α. 6
2. max([46, 6, 6])
β. "ΡΟΤ"
3. len("ΠΡΟΤΥΠΟ")
γ. 46
4. divmod(46,6)
δ. (7, 4)
5. len(range(6,12))
ε. 40
στ. 7
Ενδεικτική απάντηση
ΣΤΗΛΗ Α
→
ΣΤΗΛΗ Β
1. "ΠΡΟΤΥΠΟ"[1:4]
β
Το τμήμα [1:4] παίρνει τους χαρακτήρες των θέσεων 1, 2 και 3.
2. max([46, 6, 6])
γ
Η max() επιστρέφει το μεγαλύτερο στοιχείο της λίστας.
3. len("ΠΡΟΤΥΠΟ")
στ
Η len() μετρά τους χαρακτήρες της συμβολοσειράς.
4. divmod(46,6)
δ
Η divmod(x,y) επιστρέφει το ζεύγος (πηλίκο, υπόλοιπο).
5. len(range(6,12))
α
Η range(a,b) παράγει τους αριθμούς από a έως b-1.
Περισσεύει το γράμμα ε (40).
ΘΕΜΑ Β
Β1
Μονάδες 10
Δίνεται η παρακάτω κλάση, όπου onoma είναι το όνομα του μαθητή και vathmoi μια λίστα με τους βαθμούς του.
class Mathitis:
def __init__(self, onoma, vathmoi):
self.onoma = (1)
self.vathmoi = (2)
def mesos_oros(self):
athroisma = 0
for v in (3) :
athroisma = athroisma + v
return athroisma / (4) (len(self.vathmoi))
m1 = Mathitis("Anna", [15, 18, 20])
print m1. (5) ()
Να γράψετε στο τετράδιό σας τους αριθμούς (1) έως (5) και δίπλα σε καθέναν από αυτούς αυτό που πρέπει να συμπληρωθεί, ώστε το τμήμα προγράμματος να λειτουργεί σωστά.
Ενδεικτική απάντηση
Κενό
Συμπλήρωση
(1)
onoma
(2)
vathmoi
(3)
self.vathmoi
(4)
float
(5)
mesos_oros
Το συμπληρωμένο τμήμα προγράμματος:
class Mathitis:
def __init__(self, onoma, vathmoi):
self.onoma = onoma
self.vathmoi = vathmoi
def mesos_oros(self):
athroisma = 0
for v in self.vathmoi:
athroisma = athroisma + v
return athroisma / float(len(self.vathmoi))
m1 = Mathitis("Anna", [15, 18, 20])
print m1.mesos_oros()
Β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 18
2
14
artios 14
3
10
artios 10
4
6
artios 6
5
2
artios 2
Άρα στην οθόνη εμφανίζεται:
Έξοδος στην οθόνη
artios 18
artios 14
artios 10
artios 6
artios 2
Β3
Μονάδες 5
Να γράψετε στο τετράδιό σας τι θα εμφανίσει η εκτέλεση του παρακάτω τμήματος προγράμματος.
L = [2, 6, 1, 9]
L.append(12)
print L
x = L.pop()
print x, len(L)
Ενδεικτική απάντηση
Έξοδος στην οθόνη
[2, 6, 1, 9, 12]
12 4
Η append() προσθέτει στο τέλος, η pop() αφαιρεί ΚΑΙ επιστρέφει το τελευταίο στοιχείο, οπότε το μήκος της λίστας μειώνεται.
ΘΕΜΑ Γ
Σε ένα οινοποιείο καταγράφεται ο αριθμός των φιαλών για επτά (7) παρτίδες. Για κάθε παρτίδα κρατούνται τρεις (3) ημερήσιες μετρήσεις, και κάθε τιμή πρέπει να είναι από είκοσι (20) έως και εκατό (100).
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο:
Γ1
Μονάδες 8
Για καθεμία από τις επτά (7) παρτίδες να διαβάζει:
α)Το όνομα της παρτίδας. (μον. 3)
β)Τις τρεις (3) ημερήσιες μετρήσεις, τις οποίες να αποθηκεύει σε λίστα. Να γίνεται έλεγχος ορθότητας, ώστε κάθε τιμή να είναι από είκοσι (20) έως και εκατό (100). (μον. 5)
Ενδεικτική απάντηση
onomata = []
metriseis = []
for i in range(7):
onoma = raw_input("Onoma: ")
times = []
for j in range(3):
t = input("Timi (20-100): ")
while t < 20 or t > 100:
print "Lathos timi."
t = input("Timi (20-100): ")
times.append(t)
onomata.append(onoma)
metriseis.append(times)
Γ2
Μονάδες 6
Για κάθε παρτίδα να υπολογίζει και να εμφανίζει τον μέσο όρο των μετρήσεων που καταγράφηκαν, με κλήση της συνάρτησης MESOS_OROS() του ερωτήματος Γ3.
Ενδεικτική απάντηση
Μέσα στην επανάληψη του Γ1, μετά την ανάγνωση των τιμών:
mo = MESOS_OROS(times)
print "Mesos oros gia", onoma, ":", mo
Γ3
Μονάδες 5
Να υλοποιεί συνάρτηση με όνομα MESOS_OROS, η οποία δέχεται μια λίστα αριθμών και επιστρέφει τον μέσο όρο τους.
Ενδεικτική απάντηση
def MESOS_OROS(lista):
athroisma = 0
for t in lista:
athroisma = athroisma + t
return athroisma / float(len(lista))
Το float() είναι απαραίτητο: χωρίς αυτό η διαίρεση ακεραίων θα έκοβε το δεκαδικό μέρος.
Γ4
Μονάδες 6
Να υπολογίζει και να εμφανίζει:
α)Το όνομα της παρτίδας με τον μεγαλύτερο μέσο όρο. (μον. 3)
β)Το πλήθος των παρτίδων με μέσο όρο μεγαλύτερο από εξήντα (60). (μον. 3)
Ενδεικτική απάντηση
megisto = MESOS_OROS(metriseis[0])
thesi = 0
plithos = 0
for i in range(7):
mo = MESOS_OROS(metriseis[i])
if mo > megisto:
megisto = mo
thesi = i
if mo > 60:
plithos = plithos + 1
print "Megalyteros mesos oros:", onomata[thesi], megisto
print "Plithos pano apo to orio:", plithos
Ολοκληρωμένο πρόγραμμα του θέματος:
def MESOS_OROS(lista):
athroisma = 0
for t in lista:
athroisma = athroisma + t
return athroisma / float(len(lista))
onomata = []
metriseis = []
for i in range(7):
onoma = raw_input("Onoma: ")
times = []
for j in range(3):
t = input("Timi (20-100): ")
while t < 20 or t > 100:
print "Lathos timi."
t = input("Timi (20-100): ")
times.append(t)
onomata.append(onoma)
metriseis.append(times)
mo = MESOS_OROS(times)
print "Mesos oros gia", onoma, ":", mo
megisto = MESOS_OROS(metriseis[0])
thesi = 0
plithos = 0
for i in range(7):
mo = MESOS_OROS(metriseis[i])
if mo > megisto:
megisto = mo
thesi = i
if mo > 60:
plithos = plithos + 1
print "Megalyteros mesos oros:", onomata[thesi], megisto
print "Plithos pano apo to orio:", plithos
ΘΕΜΑ Δ
Σε έναν διαγωνισμό συμμετέχουν δώδεκα (12) υποψήφιοι. Κάθε υποψήφιος απαντά σε δέκα (10) ερωτήσεις πολλαπλής επιλογής, με πιθανές απαντήσεις "a", "b", "c" και "d". Οι σωστές απαντήσεις είναι καταχωρισμένες σε λίστα με όνομα ANS.
Κάθε σωστή απάντηση βαθμολογείται με 1 μονάδα και κάθε λανθασμένη με 0. Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο:
Δ1
Μονάδες 7
Για κάθε υποψήφιο:
α)Να διαβάζει τον κωδικό του και να τον καταχωρίζει στη λίστα KOD. (μον. 2)
β)Να διαβάζει διαδοχικά τις δέκα (10) απαντήσεις του και να υπολογίζει τη βαθμολογία του, με βάση τη λίστα ANS. (μον. 4)
γ)Να καταχωρίζει τη βαθμολογία του στη λίστα SB. (μον. 1)
Ενδεικτική απάντηση
ANS = ["a", "c", "b", "d", "a", "b", "c", "a", "d", "b"]
KOD = []
SB = []
for i in range(12):
kodikos = raw_input("Kodikos: ")
vathmos = 0
for j in range(10):
apantisi = raw_input("Apantisi: ")
if apantisi == ANS[j]:
vathmos = vathmos + 1
KOD.append(kodikos)
SB.append(vathmos)
Δ2
Μονάδες 6
Να υπολογίζει και να εμφανίζει τον μέσο όρο των βαθμολογιών, καθώς και το πλήθος των υποψηφίων με βαθμολογία μεγαλύτερη από αυτόν.
Ενδεικτική απάντηση
athroisma = 0
for i in range(12):
athroisma = athroisma + SB[i]
mo = athroisma / float(12)
plithos = 0
for i in range(12):
if SB[i] > mo:
plithos = plithos + 1
print "Mesos oros:", mo
print "Pano apo ton meso oro:", plithos
Δ3
Μονάδες 6
Να βρίσκει τη μεγαλύτερη βαθμολογία και να εμφανίζει τους κωδικούς όλων των υποψηφίων που την πέτυχαν.
Ενδεικτική απάντηση
megisto = SB[0]
for i in range(1, 12):
if SB[i] > megisto:
megisto = SB[i]
print "Megisti vathmologia:", megisto
for i in range(12):
if SB[i] == megisto:
print KOD[i]
Δ4
Μονάδες 6
Να δημιουργεί αρχείο κειμένου με όνομα «epityxontes.txt», στο οποίο να γράφει, ένα ανά γραμμή, τον κωδικό και τη βαθμολογία των υποψηφίων με βαθμολογία τουλάχιστον πέντε (5).
Ενδεικτική απάντηση
f = open("epityxontes.txt", "w")
for i in range(12):
if SB[i] >= 5:
f.write(KOD[i] + " " + str(SB[i]) + "\n")
f.close()
Ολοκληρωμένο πρόγραμμα του θέματος:
ANS = ["a", "c", "b", "d", "a", "b", "c", "a", "d", "b"]
KOD = []
SB = []
for i in range(12):
kodikos = raw_input("Kodikos: ")
vathmos = 0
for j in range(10):
apantisi = raw_input("Apantisi: ")
if apantisi == ANS[j]:
vathmos = vathmos + 1
KOD.append(kodikos)
SB.append(vathmos)
athroisma = 0
for i in range(12):
athroisma = athroisma + SB[i]
mo = athroisma / float(12)
plithos = 0
for i in range(12):
if SB[i] > mo:
plithos = plithos + 1
print "Mesos oros:", mo
print "Pano apo ton meso oro:", plithos
megisto = SB[0]
for i in range(1, 12):
if SB[i] > megisto:
megisto = SB[i]
print "Megisti vathmologia:", megisto
for i in range(12):
if SB[i] == megisto:
print KOD[i]
f = open("epityxontes.txt", "w")
for i in range(12):
if SB[i] >= 5:
f.write(KOD[i] + " " + str(SB[i]) + "\n")
f.close()
Τα ΘΕΜΑΤΑ Α και Β προέρχονται από τράπεζα υλικού
βασισμένη στα πραγματικά θέματα των Πανελλαδικών 2017–2026, με υπολογισμένες απαντήσεις.
Τα ΘΕΜΑΤΑ Γ και Δ γράφτηκαν από το μοντέλο
deepseek-ai/deepseek-v4-pro. Δεν είναι επίσημο
θέμα του Υπουργείου Παιδείας και μπορεί να περιέχει λάθη — αν βρεις κάποιο, πες μας στο
Forum.