Το παρόν υλικό αποτελεί συγκεντρωτική επανάληψη Χριστουγέννων για το μάθημα Πληροφορική – Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον (ΑΕΠΠ) και απευθύνεται σε μαθητές της Γ΄ Λυκείου, με στόχο την ουσιαστική προετοιμασία τους για τις Πανελλαδικές Εξετάσεις.
Οι ασκήσεις και τα ερωτήματα που περιλαμβάνονται καλύπτουν σχεδόν το σύνολο της βασικής και κρίσιμης εξεταζόμενης ύλης, όπως αυτή ορίζεται από το σχολικό βιβλίο και τα θέματα των προηγούμενων ετών, με έμφαση όχι στην αποστήθιση αλλά στην κατανόηση της αλγοριθμικής λογικής.
🔹 Θεματικές ενότητες που καλύπτονται
Το υλικό περιλαμβάνει ερωτήματα και ασκήσεις που αφορούν:
- Βασικές έννοιες αλγορίθμων
- Κριτήρια αλγορίθμου (καθοριστικότητα, περατότητα, αποτελεσματικότητα)
- Ροή εκτέλεσης και σημασία της δομής ακολουθίας
- Τύπους δεδομένων και μεταβλητές
- Ακέραιες, πραγματικές, λογικές μεταβλητές
- Εκχώρηση τιμών και εκφράσεις
- Ιεραρχία αριθμητικών, συγκριτικών και λογικών τελεστών
- Δομές επιλογής
- ΑΝ...ΤΟΤΕ, ΑΝ...ΑΛΛΙΩΣ, ΑΝ...ΑΛΛΙΩΣ_ΑΝ
- Σύνθετες λογικές συνθήκες
- Δομή ΕΠΙΛΕΞΕ
- Δομές επανάληψης
- ΓΙΑ, ΟΣΟ...ΕΠΑΝΑΛΑΒΕ, ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ...ΜΕΧΡΙΣ_ΟΤΟΥ
- Μετατροπές μεταξύ δομών
- Εμφωλευμένοι βρόχοι
- Έλεγχος συνθηκών τερματισμού
- Στατικές δομές δεδομένων – Πίνακες
- Μονοδιάστατοι και δισδιάστατοι πίνακες
- Προσπέλαση, αναζήτηση, επεξεργασία στοιχείων
- Κύρια και δευτερεύουσα διαγώνιος
- Μεταφορά δεδομένων και αναδιάταξη στοιχείων
- Αναζήτηση και ταξινόμηση
- Σειριακή και δυαδική αναζήτηση
- Αλγόριθμοι ταξινόμησης (επιλογής, φυσαλίδας)
- Σκοπός και χρησιμότητα της ταξινόμησης
- Ασκήσεις συμπλήρωσης κώδικα
- Τύπου Θέματος Α και Β Πανελλαδικών
- Έλεγχος κατανόησης λογικής και όχι μηχανικής απομνημόνευσης
🎯 Διδακτικός στόχος του υλικού
Το υλικό έχει σχεδιαστεί ώστε:
- να καλλιεργεί αλγοριθμική σκέψη,
- να βοηθά τον μαθητή να αναγνωρίζει το κατάλληλο εργαλείο (δομή / πίνακα / βρόχο),
- να προετοιμάζει ουσιαστικά για ερωτήματα αυξημένης δυσκολίας,
- να λειτουργεί τόσο ως εργαλείο επανάληψης όσο και ως διαγνωστικό τεστ κατανόησης.
Η δομή και το ύφος των θεμάτων ακολουθούν τη φιλοσοφία των Πανελλαδικών Εξετάσεων, με σαφή διατύπωση, κλιμακούμενη δυσκολία και έμφαση στη σωστή αλγοριθμική προσέγγιση.
Πάρα πολύ καλή δουλειά! Σε ευχαριστούμε πολύ!
Μάλλον και στον ύπνο σου θα βλέπεις όνειρα με τα θέματα των Πανελλαδικών,
διότι είσαι "εντελώς", μα εντελώς μέσα στο πνεύμα των θεματοδοτών! :)
Θεωρώ ότι οι μαθητές σου είναι πολύ τυχεροί που έχουν τέτοιον δάσκαλο!
ΥΓ:στην 11, μήπως υπάρχει τυπογραφικό λάθος; Δεν μου βγαίνει.
Μπράβο Νίκο πολύ καλή δουλειά
Νίκο , καλή χρονιά.
#11
Δ[4] <- - Δ[ ___ ] - Δ[ ___ ] + 1
το βρίσκω εξαιρετικό!
Δημήτρη ναι έχεις δίκαιο. Αντρέα ευχαριστώ πολύ για τη διόρθωση.
#11
1. k ← __
2. Δ[__] ← k + __
3. Δ[k + __] ← __ * Δ[__]
4. Δ[__] ← __ * Δ[__]
5. Δ[4] ← Δ[__] + Δ[__] - 1
6. Δ[5] ← Δ[__] – Δ[__]
Αν βρείτε κάτι άλλο μου λέτε. Επίσης ανεβάζω σύνδεσμο στο drive μου όπου και οι διορθώσεις θα γίνονται πάνω στο ίδιο το αρχείο, ανεβάζοντας κάθε φορά νεα έκδοση διορθωμένη.
Εδώ ο σύνδεσμος (https://drive.google.com/file/d/1vA18EHw1RyIyPSIdh_eHhnek2H-L0oyH/view?usp=sharing)
#11
4. .... Χρειάζεται ;
Παράθεση από: andreas_p στις 06 Ιαν 2026, 08:09:27 ΠΜ#11
4. .... Χρειάζεται ;
Μια σκέψη μου ήταν 4. Δ[κ+2] <- -2 * Δ[κ + 1] , ενώ έχω καταγράψει κάνα δυο ακόμα λύσεις.
Φυσικά οι προηγούμενες πρέπει να συ.λληρωσουν τα προηγούμενα στοιχεία του πίνακα.
Έχω το θέμα 66.
Θα ήθελα να δω αν έχω σωστά τη λύση. Ή υπάρχουν διορθώσεις/βελτιώσεις.
Με ενδιαφέρει κυρίως το Γ6, που είναι και το πιο δύσκολο.
ΠΡΟΓΡΑΜΜΑ ASK
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: k, πλ1, πλ2, πλ3, ΑΡΙΘ, max, t1, t2, t3, max2
ΧΑΡΑΚΤΗΡΕΣ: t1_κατ, t2_κατ, t3_κατ, κατηγ, ΤΙΤΛΟΣ, max_τιτ, max2_k
ΑΡΧΗ
t1 <- 0
t2 <- 0
t3 <- 0
t1_κατ <- ' '
t2_κατ <- ' '
t3_κατ <- ' '
k <- 0
πλ1 <- 0
πλ2 <- 0
πλ3 <- 0
max <- -1
ΔΙΑΒΑΣΕ ΤΙΤΛΟΣ
ΟΣΟ ΤΙΤΛΟΣ <> 'ΤΕΛΟΣ' ΕΠΑΝΑΛΑΒΕ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ ΑΡΙΘ
ΜΕΧΡΙΣ_ΟΤΟΥ ΑΡΙΘ >= 0
ΑΝ ΑΡΙΘ > max ΤΟΤΕ
max <- ΑΡΙΘ
max_τιτ <- ΤΙΤΛΟΣ
ΤΕΛΟΣ_ΑΝ
ΑΝ ΑΡΙΘ >= 1 ΚΑΙ ΑΡΙΘ <= 180 ΤΟΤΕ
πλ1 <- πλ1 + 1
κατηγ <- 'ΧΑΜΗΛΗ'
ΑΛΛΙΩΣ_ΑΝ ΑΡΙΘ > 180 ΚΑΙ ΑΡΙΘ <= 1400 ΤΟΤΕ
πλ2 <- πλ2 + 1
κατηγ <- 'ΜΕΣΑΙΑ'
ΑΛΛΙΩΣ
πλ3 <- πλ3 + 1
κατηγ <- 'ΥΨΗΛΗ'
ΤΕΛΟΣ_ΑΝ
ΑΝ ΑΡΙΘ > t3 ΤΟΤΕ
t1 <- t2
t2 <- t3
t3 <- ΑΡΙΘ
t1_κατ <- t2_κατ
t2_κατ <- t3_κατ
t3_κατ <- κατηγ
ΑΝ t1 <> 0 ΚΑΙ t2 <> 0 ΚΑΙ t3 <> 0 ΤΟΤΕ
ΑΝ t1_κατ = 'ΧΑΜΗΛΗ' ΚΑΙ t2_κατ = 'ΜΕΣΑΙΑ' ΚΑΙ t3_κατ = 'ΥΨΗΛΗ' ΤΟΤΕ
k <- k + 1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ
t1 <- 0
t2 <- 0
t3 <- ΑΡΙΘ
t1_κατ <- ' '
t2_κατ <- ' '
t3_κατ <- κατηγ
ΤΕΛΟΣ_ΑΝ
ΔΙΑΒΑΣΕ ΤΙΤΛΟΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
max2_k <- 'ΧΑΜΗΛΗ'
max2 <- πλ1
ΑΝ πλ2 > max ΤΟΤΕ
max2 <- πλ2
max2_k <- 'ΜΕΣΑΙΑ'
ΤΕΛΟΣ_ΑΝ
ΑΝ πλ3 > max ΤΟΤΕ
max2 <- πλ3
max2_k <- 'ΥΨΗΛΗ'
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ max2_k
ΑΝ k >= 2 ΤΟΤΕ
ΓΡΑΨΕ 'ΙΣΧΥΟΥΝ ΟΙ ΠΡΟΫΠΟΘΕΣΕΙΣ'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Επίσης αν χρειάζονταν το Γ6 να ελέγχει όχι για 3άδες αλλά Ν-άδες. Πως θα ήταν μια λύση; Δε μπορώ να σκεφτώ κάτι.
παλιό <-- θεάσεις !κρατάμε μόνο την προηγούμενη τιμή
ΔΙΑΒΑΣΕ θεάσεις
!.........
Κ <- 0 ! για να έχει τιμή αν δεν μπει πουθενά
ΑΝ θεάσεις >= 1 ΚΑΙ θεάσεις <= 180 ΤΟΤΕ
Κ <- 1 !δηλ. 2^0
ΑΛΛΙΩΣ_ΑΝ θεάσεις >= 181 ΚΑΙ θεάσεις <= 1400 ΤΟΤΕ
Κ <- 2 !δηλ. 2^1
ΑΛΛΙΩΣ_AN θεάσεις > 1400 ΤΟΤΕ
Κ <- 4 !δηλ. 2^2
ΤΕΛΟΣ_ΑΝ
ΑΝ παλιό < θεάσεις ΚΑΙ πλ < 3 ΤΟΤΕ
πλ <- πλ + 1
Σ <- Σ + Κ
ΑΛΛΙΩΣ
! reset
πλ <- 0
Σ <- 0
ΤΕΛΟΣ_ΑΝ
ΑΝ πλ = 3 ΚΑΙ Σ = 7 ΤΟΤΕ ! αν 3 συνεχόμενα αυξάνωνται και είναι όλα σε διαφορετικές κατηγορίες
! (γιατί μόνο τότε το Σ = 7)
σετ_συνεχόμενο <- σετ_συνεχόμενο + 1
ΤΕΛΟΣ_ΑΝ
!κατόπιν κάτω από την επανάληψη κοιτάμε αν το σετ_συνεχόμενο >= 2
! αν όπου 3 βάλουμε οποιοδήποτε αριθμό δουλεύει επίσης
! βέβαια για το ΑΝ ΑΛΛΙΩΣ_ΑΝ που ορίζει έναν αριθμό ανάλογα την κατηγορία
! θα χρειαζόταν πίνακας με τις κατηγορίες και αναζήτηση, όπου το βρει καταχωρεί 2^(θέση-1)
! και το άθροισμα θα έπρεπε να ισούται με 2^Μ - 1, όπου Μ το πλήθος των διαφορετικών κατηγοριών
Παράθεση από: bagelis στις 12 Ιαν 2026, 11:23:18 ΠΜ παλιό <-- θεάσεις !κρατάμε μόνο την προηγούμενη τιμή
ΔΙΑΒΑΣΕ θεάσεις
!.........
Κ <- 0 ! για να έχει τιμή αν δεν μπει πουθενά
ΑΝ θεάσεις >= 1 ΚΑΙ θεάσεις <= 180 ΤΟΤΕ
Κ <- 1 !δηλ. 2^0
ΑΛΛΙΩΣ_ΑΝ θεάσεις >= 181 ΚΑΙ θεάσεις <= 1400 ΤΟΤΕ
Κ <- 2 !δηλ. 2^1
ΑΛΛΙΩΣ_AN θεάσεις > 1400 ΤΟΤΕ
Κ <- 4 !δηλ. 2^2
ΤΕΛΟΣ_ΑΝ
ΑΝ παλιό < θεάσεις ΚΑΙ πλ < 3 ΤΟΤΕ
πλ <- πλ + 1
Σ <- Σ + Κ
ΑΛΛΙΩΣ
! reset
πλ <- 0
Σ <- 0
ΤΕΛΟΣ_ΑΝ
ΑΝ πλ = 3 ΚΑΙ Σ = 7 ΤΟΤΕ ! αν 3 συνεχόμενα αυξάνωνται και είναι όλα σε διαφορετικές κατηγορίες
! (γιατί μόνο τότε το Σ = 7)
σετ_συνεχόμενο <- σετ_συνεχόμενο + 1
ΤΕΛΟΣ_ΑΝ
!κατόπιν κάτω από την επανάληψη κοιτάμε αν το σετ_συνεχόμενο >= 2
! αν όπου 3 βάλουμε οποιοδήποτε αριθμό δουλεύει επίσης
! βέβαια για το ΑΝ ΑΛΛΙΩΣ_ΑΝ που ορίζει έναν αριθμό ανάλογα την κατηγορία
! θα χρειαζόταν πίνακας με τις κατηγορίες και αναζήτηση, όπου το βρει καταχωρεί 2^(θέση-1)
! και το άθροισμα θα έπρεπε να ισούται με 2^Μ - 1, όπου Μ το πλήθος των διαφορετικών κατηγοριών
Εξαιρετική απάντηση Βαγγέλη . (https://alkisg.mysch.gr/steki/Smileys/webby/shocked.gif)
Συγχαρητήρια και ευχαριστώ πολύ. Αυτό με τις δυνάμεις του 2 είναι πολύ έξυπνο. Το 2 το διάλεξες τυχαία, η κρύβεται κάτι άλλο που βοηθά στη γενίκευση;Βασικά για περισσότερα από 3 ήθελα να βάλω επανάληψη αλλά δεν ήξερα πως. Για να αποφύγω τα πολλαπλά αν ή καμία επιλεξε.Ισως κατηγορίες σε 1δ πίνακα και δίπλα παράλληλο πίνακα με αντίστοιχες δυνάμεις του 2 όπως είπες .
βάζω κι εγώ μια ιδέα που προϋποθέτει ότι κανένα εκπαιδευτικό podcast δεν έχει πάνω από 1000000 ακροάσεις...
Ν ← 1000000
για χ από 1 μέχρι 6
α[χ] ← 0
τέλος_επανάληψης
true_story ← ''
διάβασε τιτ
οσο τιτ <> 'ΛΗΞΗ' επανάλαβε
αρχή_επανάληψης
διάβασε ακρ
μέχρις_ότου ακρ >= 0
για χ από 1 μέχρι 5
α[χ] ← α[χ+1]
τέλος_επανάληψης
α[6] ← (ακρ+Ν) div (Ν+1400) + (ακρ+Ν) div (Ν+180) + (ακρ+Ν) div (Ν+1)
αν α[1] = 1 και α[2] = 2 και α[3] = 3 και α[4] = 1 και α[5] = 2 και α[6] = 3 τότε
true_story ← 'υπάρχουν...'
τέλος_αν
διάβασε τιτ
τέλος_επανάληψης
γράψε true_story
γενίκευση για Ν-άδες και κομψή λύση δε νομίζω ότι μπορεί κανείς να πετύχει...
ίσως κρύβοντας την περισσότερη φασαρία σε υποπρόγραμμα...
ίσως με βολικότερα νούμερα από το 180 και το 1400...
νομίζω έτσι μ' αρέσει περισσότερο:
συνάρτηση map(χ):ακέραια
σταθερες
Ν = 1000000
μεταβλητές
ακέραιες:χ
αρχή
map ← 0
αν χ > 0 και χ < 181 τότε
map ← 1
αλλιώς_αν χ > 180 και χ < 1400 τότε
map ← 2
αλλιώς
map ← 3
τέλος_αν
! map ← (x+N) div (Ν+1) + (χ+Ν) div (Ν+180) + (χ+Ν) div (Ν+1400)
τέλος_συνάρτησης...
α ← 0
true_story ← ''
διάβασε τιτ
οσο τιτ <> 'ΛΗΞΗ' επανάλαβε
αρχή_επανάληψης
διάβασε ακρ
μέχρις_ότου ακρ >= 0
α ← (α*10 + map(ακρ)) mod 1000000
αν α = 123123 τότε
true_story ← 'υπάρχουν...'
τέλος_αν
διάβασε τιτ
τέλος_επανάληψης
γράψε true_story
ψέματα... τελικά έτσι μ' αρέσει:
συνάρτηση gtz(x,y):ακέραια
μεταβλητές
ακέραιες: x,y
αρχή
αν x > y τότε
gtz ← 1
αλλιώς
gtz ← 0
τέλος_αν
τέλος_συνάρτησης
συνάρτηση map(x):ακέραια
μεταβλητές
ακέραιες:x
αρχή
map ← gtz(x,0) + gtz(x,180) + gtz(x,1400)
τέλος_συνάρτησης
α ← 0
true_story ← ''
διάβασε τιτ
οσο τιτ <> 'ΛΗΞΗ' επανάλαβε
αρχή_επανάληψης
διάβασε ακρ
μέχρις_ότου ακρ >= 0
α ← (α*10 + map(ακρ)) mod 1000000
αν α = 123123 τότε
true_story ← 'υπάρχουν...'
τέλος_αν
διάβασε τιτ
τέλος_επανάληψης
γράψε true_story
Άσκηση 99 - ερώτημα Δ4 το
2. το πλήθος των λέξεων που ξεκινούν και τελειώνουν με το ίδιο γράμμα
έχω φάει κόλλημα με το συγκεκριμένο.
Μια βοήθεια όποιος μπορεί...
Παράθεση από: ikariofil στις 13 Ιαν 2026, 01:28:05 ΜΜΆσκηση 99 - ερώτημα Δ4 το
2. το πλήθος των λέξεων που ξεκινούν και τελειώνουν με το ίδιο γράμμα
έχω φάει κόλλημα με το συγκεκριμένο.
Μια βοήθεια όποιος μπορεί...
κάτι τέτοιο;
...
! ΘΤΓΚ = θέση τελευταίου γράμματος κειμένου
λεξ ← 0
Για χ από 1 μέχρι ΘΤΓΚ
αν MSG[χ] = ' ' τότε
λεξ ← λεξ+1
θεση_τελ_γραμμ[λεξ] ← χ-1
τέλος_αν
τέλος_επανάληψης
λεξ ← λεξ + 1
θεση_τελ_γραμμ[λεξ] ← ΘΤΓΚ
ΖΠ ← 0 ! ζητούμενο πλήθος
θεση_αρχ_γραμμ ← 1
για λ από 1 μέχρι λεξ
αν MSG[θέση_αρχ_γραμμ] = MSG[θεση_τελ_γραμμ[λεξ] ] τότε
ΖΠ ← ΖΠ + 1
τέλος_αν
θεση_αρχ_γραμμ ← θεση_τελ_γραμμ[λεξ]+2
τέλος_επανάληψης
γράψε ΖΠ
ωραίος ο προλαλήσαντας
ακόμα μία λύση:
! ....προηγούμενα ερωτήματα
!έχει ήδη βρεθεί το πλήθος των χαρακτήρων του κειμένου
!στη μεταβλητή μήκος
!Αποθηκεύουμε σε ένα πίνακα ακεραίων τις θέσεις των κενών
Κ <- 1
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ μήκος
ΑΝ MSG[Ι] = ' ' ΤΟΤΕ
Κ <- Κ + 1
ΘΕΣΗ[Κ] <- Ι
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!πριν τη θέση του κενού και μετά τη θέση του κενού
!είναι το πρώτο και το τελευταίο γράμμα κάθε ΄λεξης
!εξαίρεση είναι η πρώτη ΚΑΙ Η τελευταία λέξη
πλήθος <- 0
!πρώτη λέξη
!Αν ο πρώτος ΧΑΡΑΚΤΗΡΑΣ είναι ίσος με τον χαρακτήρα που υπάρχει
!στην προηγούμενη θέση από το πρώτο κενό
ΑΝ MSG[1]=MSG[θέση[1]-1] ΤΟΤΕ
πλήθος <- πλήθος + 1
ΤΕΛΟΣ_ΑΝ
! ΑΠΟ το δεύτερο μέχρι ΚΑΙ το τελευταίο κενό
! κοιτάμε το γράμμα που βρίσκεται στην επόμενη θέση
! από το προηγούμενο κενό ΚΑΙ το γράμμα που βρίσκεται
! στην προηγούμενη θέση από το κενό που βρισκόμαστε
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ Κ
ΑΝ MSG[θέση[Ι-1]+1] = MSG[θέση[Ι]-1] ΤΟΤΕ
πλήθος <- πλήθος + 1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! Η τελευταία λέξη είναι το επόμενο γράμμα
! μετά το τελευταίο κενό μέχρι το τελευταίο γράμμα του MSG[]
ΑΝ MSG[θέση[Κ]+1]=MSG[χαρ] ΤΟΤΕ
πλήθος <- πλήθος + 1
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ 'Οι λέξεις που έχουν ίδιο πρώτο και τελευταίο γράμμα είναι ', πλήθος
Προσθέτω και σύνδεσμο με το αρχεία λύσεων , αρχικά για τα Θέματα Α και Β.
Λύσεις Θέματα Α και Β με χέρι! (https://drive.google.com/file/d/1zkshxH_Fx9AnPCJ8HziHp8cyArS4rnHq/view?usp=drive_link) (Χειρόγραφες)
Λύσεις Θέματα Α και Β (https://drive.google.com/file/d/1PyUSDkZuruXnVPzcMGkjTw1nSrCmcCeM/view?usp=drive_link) (Πέρασαν από AI γιατί δεν υπήρχε χρόνος να πληκτρολογηθούν)