Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας στο τετράδιό σας, δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση, τη λέξη Σωστό, αν η πρόταση είναι σωστή, ή τη λέξη Λάθος, αν η πρόταση είναι λανθασμένη.
α.Στη γλώσσα προγραμματισμού Python χρησιμοποιούμε την εντολή for για να εκτελεστεί ένα τμήμα του κώδικα για έναν καθορισμένο αριθμό επαναλήψεων.
β.Οι μεταβλητές που μπορούν να χρησιμοποιηθούν σε οποιοδήποτε τμήμα ενός προγράμματος, ανεξάρτητα από το πού δηλώθηκαν, χαρακτηρίζονται ως καθολικές.
γ.Στον αντικειμενοστραφή προγραμματισμό τα χαρακτηριστικά (attributes) ενός αντικειμένου ονομάζονται και μέθοδοι.
δ.Στην Python δεν μπορούμε να εκχωρήσουμε διαφορετικούς τύπους τιμών σε μία μεταβλητή κατά τη διάρκεια ενός προγράμματος.
ε.Η λειτουργία της στοίβας είναι γνωστή στη βιβλιογραφία ως FIFO (First In First Out).
Ενδεικτική απάντηση
Πρόταση
Απάντηση
Αιτιολόγηση
α
Σωστό
Η for διατρέχει μια ακολουθία τιμών, άρα εκτελεί προκαθορισμένο αριθμό επαναλήψεων.
β
Σωστό
Αυτός ακριβώς είναι ο ορισμός των καθολικών (global) μεταβλητών.
γ
Λάθος
Τα χαρακτηριστικά (attributes) είναι οι ιδιότητες του αντικειμένου. Οι μέθοδοι είναι οι λειτουργίες/συναρτήσεις του.
δ
Λάθος
Η Python είναι γλώσσα δυναμικών τύπων: η ίδια μεταβλητή μπορεί να πάρει τιμές διαφορετικού τύπου.
ε
Λάθος
Η στοίβα λειτουργεί ως LIFO (Last In First Out). Η ουρά είναι αυτή που λειτουργεί ως FIFO.
Α2
Μονάδες 10
Να γράψετε στο τετράδιό σας τους αριθμούς 1, 2, 3, 4, 5 από τη στήλη Α και δίπλα σε καθέναν από αυτούς ένα από τα γράμματα α, β, γ, δ, ε, στ της στήλης Β, που δίνει τη σωστή αντιστοίχιση. Σημειώνεται ότι ένα γράμμα της στήλης Β περισσεύει.
ΣΤΗΛΗ Α
ΣΤΗΛΗ Β
1. len("ΕΠΑΛ")
α. (3, 0)
2. 21%7
β. "ΠΑΛ"
3. pow(4,4)
γ. 256
4. "ΕΠΑΛ"[1:4]
δ. 4
5. abs(7-21)
ε. 14
στ. 0
Ενδεικτική απάντηση
ΣΤΗΛΗ Α
→
ΣΤΗΛΗ Β
1. len("ΕΠΑΛ")
δ
Η len() μετρά τους χαρακτήρες της συμβολοσειράς.
2. 21%7
στ
Ο τελεστής % δίνει το υπόλοιπο της διαίρεσης.
3. pow(4,4)
γ
Η pow(x,y) υψώνει το x στη δύναμη y.
4. "ΕΠΑΛ"[1:4]
β
Το τμήμα [1:4] παίρνει τους χαρακτήρες των θέσεων 1, 2 και 3.
5. abs(7-21)
ε
Η abs() επιστρέφει την απόλυτη τιμή.
Περισσεύει το γράμμα α ((3, 0)).
ΘΕΜΑ Β
Β1
Μονάδες 10
Η παρακάτω συνάρτηση δέχεται μια λίστα με λέξεις (listaA) και επιστρέφει μια συμβολοσειρά με τα αρχικά γράμματα των λέξεων.
def arxika(listaA):
lexi = (1)
for (2) in listaA:
lexi = lexi + (3) [ (4) ]
return (5)
Να γράψετε στο τετράδιό σας τους αριθμούς (1) έως (5) και δίπλα σε καθέναν από αυτούς αυτό που πρέπει να συμπληρωθεί, ώστε το τμήμα προγράμματος να λειτουργεί σωστά.
Ενδεικτική απάντηση
Κενό
Συμπλήρωση
(1)
""
(2)
onoma
(3)
onoma
(4)
0
(5)
lexi
Το συμπληρωμένο τμήμα προγράμματος:
def arxika(listaA):
lexi = ""
for onoma in listaA:
lexi = lexi + onoma[0]
return lexi
Β2
Μονάδες 10
Δίνεται το παρακάτω τμήμα προγράμματος σε γλώσσα προγραμματισμού Python. Να γράψετε στο τετράδιό σας τι ακριβώς θα εμφανιστεί στην οθόνη κατά την εκτέλεσή του.
lista = [16, 10, 26, 23, 6]
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
16
ναι
16
1
10
όχι
16
2
26
ναι
42
3
23
ναι
65
4
6
όχι
65
Άρα στην οθόνη εμφανίζεται:
Έξοδος στην οθόνη
16 16
26 42
23 65
Sinolo: 65
Β3
Μονάδες 5
Να γράψετε στο τετράδιό σας τι θα εμφανίσει η εκτέλεση του παρακάτω τμήματος προγράμματος.
Το τμήμα word[a:b] περιλαμβάνει τους χαρακτήρες των θέσεων a έως b-1· η αρίθμηση ξεκινά από το 0.
ΘΕΜΑ Γ
Σε ένα θερινό σινεμά καταγράφεται το πλήθος των θεατών για επτά (7) προβολές. Για κάθε προβολή κρατούνται τρεις (3) ημερήσιες μετρήσεις, και κάθε τιμή πρέπει να είναι από δεκαπέντε (15) έως και ογδόντα (80).
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο:
Γ1
Μονάδες 8
Για καθεμία από τις επτά (7) προβολές να διαβάζει:
α)Το όνομα της προβολής. (μον. 3)
β)Τις τρεις (3) ημερήσιες μετρήσεις, τις οποίες να αποθηκεύει σε λίστα. Να γίνεται έλεγχος ορθότητας, ώστε κάθε τιμή να είναι από δεκαπέντε (15) έως και ογδόντα (80). (μον. 5)
Ενδεικτική απάντηση
onomata = []
metriseis = []
for i in range(7):
onoma = raw_input("Onoma: ")
times = []
for j in range(3):
t = input("Timi (15-80): ")
while t < 15 or t > 80:
print "Lathos timi."
t = input("Timi (15-80): ")
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)
β)Το πλήθος των εγγραφών με μέσο όρο μεγαλύτερο από πενήντα (50). (μον. 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 > 50:
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 (15-80): ")
while t < 15 or t > 80:
print "Lathos timi."
t = input("Timi (15-80): ")
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 > 50:
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, με υπολογισμένες απαντήσεις.
Τα ΘΕΜΑΤΑ Γ και Δ γράφτηκαν από το μοντέλο
nvidia/nemotron-3-super-120b-a12b. Δεν είναι επίσημο
θέμα του Υπουργείου Παιδείας και μπορεί να περιέχει λάθη — αν βρεις κάποιο, πες μας στο
Forum.