Καλησπέρα, μήπως έχει κανείς τα σημερινά θέματα;
			
			
			
				Αγαπητοί συνάδελφοι καλή σχολική χρονιά με υγεία και δημιουργικότητα.
Κάνω ανάρτηση τα θέματα και τις ενδεικτικές΄απαντήσεις.
Οποιαδήποτε σχόλια και παρατηρήσεις είναι ευπρόσδεκτα με χαρά.
ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΩΝ 2025
https://www.minedu.gov.gr/publications/docs2025/panelladikes_2025_septemvrios/%CE%91%CE%9D%CE%91%CE%A0%CE%A4%CE%A5%CE%9E%CE%97_%CE%95%CE%A6%CE%91%CE%A1%CE%9C%CE%9F%CE%93%CE%A9%CE%9D_%CE%95%CE%A0%CE%91%CE%9D%CE%91%CE%9B_2025.pdf
ΕΝΔΕΙΚΤΙΚΕΣ  ΑΠΑΝΤΗΣΕΙΣ
https://drive.google.com/file/d/1bn_KhlrL4hObON4ublta0th0q-Tm6kFw/view?usp=sharing
			
			
			
				Το Β3 στυγνό copy-paste του γνωστού παλιού θέματος.
Το Α5 τουλάχιστον αντιπαιδαγωγικό για να μην πω καμιά άλλη κουβέντα.
Και φυσικά εννοείται ότι:
Η παράλειψη δήλωσης μιας μεταβλητής αποτελεί συντακτικό λάθος. 
Ποιον συντακτικό κανόνα άραγε να παραβιάζει;
			
			
			
				Τι έχει γίνει ρε παιδιά και τα θέματα των επαναληπτικών είναι πιο εύκολα από του Ιουνίου;;;;;;
			
			
			
				Παράθεση από: petrosp13 στις 12 Σεπ 2025, 11:25:26 ΠΜΤι έχει γίνει ρε παιδιά και τα θέματα των επαναληπτικών είναι πιο εύκολα από του Ιουνίου;;;;;;
Δεν συμφωνώ για το γ και το δ. 
			
 
			
			
				Στο Β1 δε διευκρινίζει αν θα εισάγουμε τα ονόματα με τη σειρά που δίνονται (αφού ορίσουμε ως ρίζα το ΕΛΕΝΗ) ή αν πρέπει να τα εισάγουμε έτσι ώστε να είναι ισορροπημένο. Άρα μπορούν να προκύψουν διάφορες σωστές λύσεις με δένδρα που θα έχουν άλλες δομές. 
			
			
			
				Παράθεση από: johnk στις 13 Σεπ 2025, 01:00:29 ΠΜΣτο Β1 δε διευκρινίζει αν θα εισάγουμε τα ονόματα με τη σειρά που δίνονται (αφού ορίσουμε ως ρίζα το ΕΛΕΝΗ) ή αν πρέπει να τα εισάγουμε έτσι ώστε να είναι ισορροπημένο. Άρα μπορούν να προκύψουν διάφορες σωστές λύσεις με δένδρα που θα έχουν άλλες δομές. 
Λογικά δεν υπάρχει άλλος περιορισμός παρά μόνο για τη ρίζα... Εντάξει, να είναι και δυαδικό δέντρο αναζήτησης!
			
 
			
			
				Γ και Δ, χωρίς να τα λύσω, αλλά διαβάζοντας μόνο την εκφώνηση προσεκτικά, μου άρεσαν. Αξιοπρεπή θέματα. Όχι φοβερά δύσκολα, ούτε αυτό το χαλαρό των εξετάσεων Ιουνίου που βλέπουμε τελευταία χρόνια (ειδικά πέρυσι και πρόπερσι και παραπίσω). Όχι ότι ενθουσιάστηκα, αλλά νομίζω είναι καλά.
Β3 όντως αντιγραφή, ούτε μπήκαν στον κόπο να ασχοληθούν.
Β2, δεν μπορώ να τις πάρω σοβαρά αυτές τις ασκήσεις.. αλλά τουλάχιστον μας γλιτώνουν από άλλες πολύ πιο ασαφείς στo OOP κεφάλαιο
Β1 η απλότητα που έλειπε από εκφωνήσεις με παλιότερα δεντράκια... 
Α5 τραγικό, αλλά τουλάχιστον αυτή τη φορά πετύχανε το "ονομαστικά" αντί του "επιγραμματικά"
Α2 ήθελε χωρίς περιορισμούς λογικά, ε; 
Παράθεση από: evry στις 12 Σεπ 2025, 09:49:19 ΠΜΗ παράλειψη δήλωσης μιας μεταβλητής αποτελεί συντακτικό λάθος. 
Ποιον συντακτικό κανόνα άραγε να παραβιάζει;
Σωστό και ξανασυζητημένο εδώ μέσα. Τουλάχιστον πιστεύω δεν θα μπερδεύτηκε κανένας μαθητής στα πλαίσια του μαθήματος.
			
 
			
			
				Τα είδα αναλυτικά, δεν είναι σε καμία περίπτωση ανώτερης δυσκολίας από του Ιουνίου
Ειδικά το θέμα Α και Β αγγίζει τα όρια της γελοιότητας σε επίπεδο δυσκολίας
Είναι πολύ περίεργο, δίνει κίνητρο σε κάποιον να μηχανευτεί τρόπους για να δώσει τον Σεπτέμβρη
			
			
			
				Για τα Α και Β, έχεις δίκιο σίγουρα. 
Για το Γ και Δ, τώρα που τα ξαναπροσέχω: είναι λίγο πιο δύσκολα από τα εύκολα των τελευταίων ετών Ιουνίου. Αλλά δεν φτάνουν σε δυσκολία τα συνηθισμένα θέματα Σεπτεμβρίου. 
Συμφωνώ με τον προβληματισμό σου. 
			
			
			
				Τα φετινά θέματα Γ και Δ του Ιουνίου δεν θεωρώ ότι ήταν εύκολα για τον μέσο μαθητή
Το 2023 πιάσαμε πάτο σε δυσκολία, το 2024 ανέβηκε το επίπεδο και φέτος τα θέματα ήταν αρκετά απαιτητικά για τον μέσο μαθητή
Ας μην θεωρούμε δύσκολα τα θέματα που θα δυσκολέψουν τους άριστους, ας μιλάμε για ένα μαθητή που δεν είναι άριστος, αλλά δεν είναι και αδιάφορος
Το θέμα Γ των επαναληπτικών που έχει έτοιμο κώδικα για κάποιον που διάβασε στοιχειωδώς (μενού σε επανάληψη, ώθηση-απώθηση) είναι σίγουρα το ίδιο απαιτητικό με του Ιουνίου, για μένα λιγότερο
Περίεργα πράγματα
			
			
			
				Παράθεση από: petrosp13 στις 15 Σεπ 2025, 12:43:15 ΠΜΕίναι πολύ περίεργο, δίνει κίνητρο σε κάποιον να μηχανευτεί τρόπους για να δώσει τον Σεπτέμβρη
Νομίζω ότι πλέον αν κάποιος δεν προσέλθει σε κάποιο μάθημα τον Ιούνιο τότε εξετάζεται ξανά σε όλα τον Σεπτέμβριο.
			
 
			
			
				Ακόμα και έτσι, έχει 3 μήνες παραπάνω για διάβασμα
			
			
			
				Παράθεση από: petrosp13 στις 12 Σεπ 2025, 11:25:26 ΠΜΤι έχει γίνει ρε παιδιά και τα θέματα των επαναληπτικών είναι πιο εύκολα από του Ιουνίου;;;;;;
Παιδιά, δεν είναι πιο εύκολα, είναι πιο συνδυαστικά κι άρα πιο απαιτητικά. 
Δείτε το από σκοπιά μαθητή, όχι τη δική μας.
Έπειτα δείτε το Α5 που ανάφερε ο Ευριπίδης. 
Δε τα λες ευκολότερα ( φέτος ) 
Πρόπερσι ήταν για μένα σκάνδαλο οι επαναληπτικές. Αλλά πέρσι και φέτος, δε ξέρω, νομίζω είναι κάπως οκ από θέμα δυσκολίας.
Από θέμα ποιότητας.... τείνω προς Ευριπίδη. 
			
 
			
			
				Ποια είναι η δυσκολία του Α5 ακριβώς πέρα από το ότι είναι ένα εντελώς άκυρο κομμάτι θεωρίας;
Έχουν να γράψουν 5-6 λέξεις και να πάρουν 4 μονάδες, μάλλον δώρο το θεωρώ
Οι 2 από τις λέξεις μάλιστα είναι ίδιες με τις άλλες σκοπιές, οπότε ακόμα και κατά τύχη μπορούν να βρεθούν
Αντίθετα, οι διαφορές λίστας-πίνακα που ζητήθηκαν τον Ιούνιο απαιτούσαν ανάπτυξη 10 σειρών, σκανδαλωδώς μεγάλη ερώτηση θεωρίας
Δεν θυμάμαι πότε ζητήθηκε τελευταία φορά απάντηση που να ξεπερνά τις 3-4 σειρές σε εξετάσεις Ιουνίου
Θα μπορούσαν να ρωτήσουν απλά τι σημαίνει ότι δεν έχουμε τυχαία προσπέλαση σε λίστα, μιας και οι άλλες διαφορές αφορούν γενικά τις στατικές και τις δυναμικές δομές
			
			
			
				Παράθεση από: evry στις 12 Σεπ 2025, 09:49:19 ΠΜΤο Β3 στυγνό copy-paste του γνωστού παλιού θέματος.
Επισυνάπτω ως εικόνες το Θέμα 2α από τις Κανονικές του 2007 και το Β3 από τις Επαναληπτικές του 2025.
Το κύριο πρόγραμμα είναι ολόιδιο. Όχι όμως η συνάρτηση. Στη Συνάρτηση οι τυπικές παράμετροι τροποποιούνται μέσα σε αυτήν. Αν δεν μεριμνήσουμε κατάλληλα αυτό θα προκαλέσει πρόβλημα στη μετατροπή σε Διαδικασία, αφού οι αλλαγές θα περνούν πλέον στο κύριο πρόγραμμα.
Παρόμοιο ζήτημα ήταν το Α4 στις Επαναληπτικές του 2022:
https://drive.google.com/file/d/1AKojPuN-Lh2803BcEFo0-96GMFT78Huh/view
Πιθανώς αυτή την ιδέα σε θέμα να την διατύπωσα για πρώτη φορά εγώ μέσα στο Στέκι το 2009 σε αυτό το post:
https://alkisg.mysch.gr/steki/index.php?topic=1950 . Σε αυτό αναφερόμουν στο  Θέμα 2 του 2007 και πρότεινα ένα τροποποιημένο θέμα που είχε τη συγκεκριμένη ιδέα με τις παραμέτρους! Και είχε αρκετή πλάκα γιατί τότε εκεί "πέσατε να με φάτε" για τις "αιρετικές ιδέες" μου!  ;D Επιτέλους, δικαίωση κύριοι!!!  >:D ;D
			
 
			
			
				Παράθεση από: petrosp13 στις 16 Σεπ 2025, 12:04:11 ΜΜΠοια είναι η δυσκολία του Α5 ακριβώς πέρα από το ότι είναι ένα εντελώς άκυρο κομμάτι θεωρίας;
Έχουν να γράψουν 5-6 λέξεις και να πάρουν 4 μονάδες, μάλλον δώρο το θεωρώ
Οι 2 από τις λέξεις μάλιστα είναι ίδιες με τις άλλες σκοπιές, οπότε ακόμα και κατά τύχη μπορούν να βρεθούν
Δεν είναι θέμα δυσκολίας.
Είναι απαράδεκτο την εποχή της Τεχνητής Νοημοσύνης (και καλά) που ζητάμε κριτική σκέψη από τους μαθητές μας να δεχόμαστε τέτοια απαράδεκτα θέματα.
Δηλαδή συμφωνούμε να παπαγαλίζουν οι μαθητές λέξεις χωρίς να καταλαβαίνουν τι είναι? Αν είναι έτσι τότε δεν χρειάζονται οι δάσκαλοι, τα παιδιά μπορούν μια χαρά να προετοιμαστούν με το ChatGPT.
			
 
			
			
				Εμένα μου αρέσαν όλα!
Νομίζω αυτό το διαγώνισμα θα το κρατήσω αυτούσιο 
-ενώ στα περισσότερα κάνω μικροπαραλλαγές- 
και θα το δίνω όταν θα κάνουμε επανάληψη
			
			
			
				Παράθεση από: evry στις 16 Σεπ 2025, 12:57:58 ΜΜΔεν είναι θέμα δυσκολίας.
Είναι απαράδεκτο την εποχή της Τεχνητής Νοημοσύνης (και καλά) που ζητάμε κριτική σκέψη από τους μαθητές μας να δεχόμαστε τέτοια απαράδεκτα θέματα.
Δηλαδή συμφωνούμε να παπαγαλίζουν οι μαθητές λέξεις χωρίς να καταλαβαίνουν τι είναι? Αν είναι έτσι τότε δεν χρειάζονται οι δάσκαλοι, τα παιδιά μπορούν μια χαρά να προετοιμαστούν με το ChatGPT.
Εγώ δεν έκρινα την παιδαγωγικότητα του θέματος
Είναι μια απαράδεκτη παράγραφος σε ένα απαράδεκτο βιβλίο και εννοείται ότι κακώς τέθηκε ως θέμα
Εγώ έκρινα το επίπεδο δυσκολίας
Υλικού, Γλωσσών Προγραμματισμού, Δομών Δεδομένων, Ανάλυσης Δεδομένων
4 μονάδες δώρο για 7 λέξεις, όταν τον Ιούνιο ζητήθηκε ερώτηση 10 σειρών και μάλιστα υπήρχε και δεύτερη
Θεωρητικά, οι επαναληπτικές πρέπει να έχουν αυξημένο επίπεδο δυσκολίας για να αποφεύγονται οι πονηριές
			
 
			
			
				Γιατί θεωρείτε αντιπαιδαγωγικές τις σκοπιές; Επειδή είναι τελείως άκυρο κομμάτι της θεωρίας; Εγώ πάντως τα τελευταία χρόνια τις έχω δει σε πολλά διαγωνίσματα φροντιστηρίων.
Επίσης το σχολικό βιβλίο δεν αναφέρει ότι η παράλειψη δήλωσης μια μεταβλητής είναι συντακτικό λάθος ή όχι;
			
			
			
				Παράθεση από: Akis73 στις 22 Σεπ 2025, 01:30:57 ΜΜΓιατί θεωρείτε αντιπαιδαγωγικές τις σκοπιές; Επειδή είναι τελείως άκυρο κομμάτι της θεωρίας; Εγώ πάντως τα τελευταία χρόνια τις έχω δει σε πολλά διαγωνίσματα φροντιστηρίων.
Επίσης το σχολικό βιβλίο δεν αναφέρει ότι η παράλειψη δήλωσης μια μεταβλητής είναι συντακτικό λάθος ή όχι;
Πρώτον οι μαθητές διαβάζουν απέξω αυτή τη βλακεία με τις σκοπιές. Καταλαβαίνουν τι είναι? έχουν τις γνώσεις? Το ότι το βάζουν πολλά φροντιστήρια στα διαγωνίσματα δε μου λέει τίποτα. Ο σκοπός τους είναι να πιάσουν τη θεωρία και να γράψουν καλά οι μαθητές και όχι να καταλάβουν.
Άρα τους βάζουμε να αποστηθίσουν κάτι για το οποίο δεν έχουν ούτε τις γνώσεις ούτε την εμπειρία να το καταλάβουν. Τι παιδαγωγικό ή επιστημονικό υπάρχει σε αυτό?
Το σχολικό βιβλίο έχει πολλά λάθη. Δε σημαίνει ότι επειδή το λέει είναι σωστό.
Η ερώτηση που κάνω εγώ είναι: Αφού είναι συντακτικό λάθος άρα παραβιάζει κάποιον κανόνα σύνταξης. Ποιος κανόνας είναι αυτός? 
			
 
			
			
				Ωραία θα ήταν να ήταν οι σκοπιές η μοναδική βλακεία στην θεωρία του μαθήματος, αλλά δυστυχώς υπάρχουν αρκετές ακόμα ερωτήσεις που είναι αδύνατον να τις καταλάβουν οι μαθητές. 
Εσύ δηλαδή πως το εξηγείς στους μαθητές σου το λάθος με την παράλειψη δήλωσης μεταβλητής; Γιατί εγώ είχα μια μαθήτρια φέτος που λογικά έχασε το 20 στις επαναληπτικές από αυτό το ΣΛ. 
Ρωτάω για να τα ξεκαθαρίσω λιγάκι μέσα μου γιατί πολλοί από εμάς έχουμε μπερδευτεί με αρκετά σημεία της ύλης παρόλο που διδάσκουμε χρόνια...
			
			
			
				Δεν παραβιάζει τη σύνταξη άρα δεν είναι συντακτικό λάθος. Δυστυχώς έχει επικρατήσει να λέμε συντακτικά λάθη αυτά που πιάνει ο compiler.
			
			
			
				Καταλαβαίνω τι λες, αλλά τι να λέγαμε σφάλμα μεταγλώττισης;
			
			
			
				Παράθεση από: evry στις 22 Σεπ 2025, 01:54:13 ΜΜΤο ότι το βάζουν πολλά φροντιστήρια στα διαγωνίσματα δε μου λέει τίποτα. Ο σκοπός τους είναι να πιάσουν τη θεωρία και να γράψουν καλά οι μαθητές και όχι να καταλάβουν.
Γενίκευση
			
 
			
			
				Παράθεση από: Akis73 στις 22 Σεπ 2025, 02:12:01 ΜΜΚαταλαβαίνω τι λες, αλλά τι να λέγαμε σφάλμα μεταγλώττισης;
Το πρόβλημα δεν είναι τι λένε αυτοί που διδάσκουν γιατί δεν έχουν άλλη επιλογή. Θα πουν ότι λέει το βιβλίο. 
Το πρόβλημα αυτοί που έβαλαν τα θέματα. Δεν μπορεί να βάζεις θέμα κάτι το οποίο έχει πρόβλημα.
			
 
			
			
				Από περιέργεια και επειδή ήμουν σε φάση χαλάρωσης είπα να ρωτήσω τα Chat-GPT και Gemini. :D
--------------------------------------------------------------------------------------------------------------- 
CHAT-GPT:---------------------------------------------------------------------------------------------------------------
Σε ένα πρόγραμμα που δεν έχει δηλωθεί μια μεταβλητή, το σφάλμα αυτό τι είδους λέμε ότι είναι ?
Αν σε ένα πρόγραμμα γίνει αναφορά σε μια μεταβλητή που 
δεν έχει δηλωθεί/οριστεί, τότε αυτό θεωρείται:
- Συντακτικό σφάλμα (compile-time error) σε γλώσσες με στατική δέσμευση τύπων και υποχρεωτική δήλωση μεταβλητών (π.χ. C, Java). Ο μεταγλωττιστής δεν θα αφήσει το πρόγραμμα να τρέξει γιατί η μεταβλητή δεν είναι γνωστή.
 - Λογικό/εκτελεστικό σφάλμα (runtime error) σε γλώσσες με δυναμική δέσμευση μεταβλητών (π.χ. Python, JavaScript). Εκεί το πρόγραμμα τρέχει μέχρι το σημείο που χρειάζεται τη μη δηλωμένη μεταβλητή και τότε εμφανίζει σφάλμα, π.χ. 
NameError στην Python ή 
ReferenceError στην JavaScript. 
👉 Άρα γενικά το λέμε 
σφάλμα αδήλωτης μεταβλητής και το κατατάσσουμε είτε ως 
συντακτικό είτε ως 
εκτελεστικό, ανάλογα με τη γλώσσα.
Γενικά ποια είναι τα είδη των σφαλμάτων
Γενικά στην επιστήμη των υπολογιστών, τα 
σφάλματα (errors) σε ένα πρόγραμμα χωρίζονται σε βασικές κατηγορίες:
🔹 1. 
Συντακτικά σφάλματα (Syntax errors)- Εντοπίζονται από τον μεταγλωττιστή (compiler) ή διερμηνευτή (interpreter) κατά την μετάφραση.
 - Προκύπτουν όταν παραβιάζεται η "γραμματική" της γλώσσας προγραμματισμού.
 - Παράδειγμα:
int x = ;   // λείπει τιμή
ή σε Python:
if x > 10
    print(x)   # λείπει το ":"
 
🔹 2. 
Σφάλματα εκτέλεσης (Runtime errors)- Συμβαίνουν ενώ το πρόγραμμα τρέχει.
 - Σταματούν την εκτέλεση αν δεν υπάρχει χειρισμός εξαιρέσεων.
 - Παραδείγματα:
- Διαίρεση με το μηδέν.
 - Πρόσβαση σε πίνακα εκτός ορίων.
 - Αναφορά σε μη δηλωμένη μεταβλητή (σε γλώσσες όπως Python).
 
 
🔹 3. 
Λογικά σφάλματα (Logical errors)- Το πρόγραμμα εκτελείται κανονικά, αλλά δίνει λάθος αποτελέσματα.
 - Είναι τα πιο δύσκολα να εντοπιστούν, γιατί δεν παράγεται μήνυμα σφάλματος.
 - Παράδειγμα:
- Θέλουμε να βρούμε το άθροισμα αριθμών αλλά κατά λάθος υπολογίζουμε το γινόμενο.
 
 
🔹 4. 
Σημασιολογικά σφάλματα (Semantic errors)- Παρόμοια με τα λογικά, σχετίζονται με λανθασμένη χρήση εννοιών της γλώσσας.
 - Παράδειγμα: σε C να προσπαθήσουμε να κάνουμε πράξη μεταξύ μεταβλητής χαρακτήρα και δείκτη, ενώ δεν έχει νόημα.
 
📌 Συνοπτικά:
- Συντακτικά → λάθος γραμματικής γλώσσας.
 - Εκτέλεσης → προκύπτουν κατά την εκτέλεση.
 - Λογικά → σωστός κώδικας αλλά λάθος αποτελέσματα.
 - (μερικές φορές ξεχωρίζουμε και τα σημασιολογικά).
 
--------------------------------------------------------------------------------------------------------------- 
GEMINI:---------------------------------------------------------------------------------------------------------------
Σε ένα πρόγραμμα που δεν έχει δηλωθεί μια μεταβλητή, το σφάλμα αυτό τι είδους λέμε ότι είναι ? 
Είναι ένα σφάλμα χρόνου μεταγλώττισης (compile-time error).
Τι είναι το σφάλμα χρόνου μεταγλώττισης;
Αυτό το είδος σφάλματος συμβαίνει όταν ο μεταγλωττιστής (compiler) ελέγχει τον κώδικα και εντοπίζει κάποιο πρόβλημα πριν εκτελεστεί το πρόγραμμα. Η μη δήλωση μιας μεταβλητής είναι ένα τυπικό παράδειγμα, καθώς ο μεταγλωττιστής δεν μπορεί να καταλάβει τι είναι αυτή η "άγνωστη" λέξη που χρησιμοποιεί ο προγραμματιστής. Ο μεταγλωττιστής σταματά τη διαδικασία και εμφανίζει ένα μήνυμα λάθους.
Σε αντίθεση, τα σφάλματα χρόνου εκτέλεσης (run-time errors) συμβαίνουν όταν το πρόγραμμα τρέχει, όπως για παράδειγμα μια διαίρεση με το μηδέν.
Γενικά ποια είναι τα είδη των σφαλμάτων
Γενικά, τα σφάλματα προγραμματισμού χωρίζονται σε τρεις βασικές κατηγορίες:
- Σφάλματα Συντακτικού (Syntax Errors): Αυτά είναι τα λάθη που παραβιάζουν τους κανόνες της γλώσσας προγραμματισμού. Ο μεταγλωττιστής (compiler) ή ο διερμηνέας (interpreter) τα εντοπίζει πριν το πρόγραμμα εκτελεστεί. Ένα κλασικό παράδειγμα είναι η παράλειψη ενός ερωτηματικού (;) στο τέλος μιας γραμμής στην C++ ή η λανθασμένη χρήση μιας λέξης-κλειδιού.
 - Σφάλματα Χρόνου Εκτέλεσης (Runtime Errors): Αυτά τα λάθη εμφανίζονται μόνο όταν το πρόγραμμα εκτελείται. Συχνά προκαλούν την απροσδόκητη διακοπή του προγράμματος. Ένα παράδειγμα είναι η διαίρεση με το μηδέν ή η προσπάθεια πρόσβασης σε μια περιοχή μνήμης που δεν ανήκει στο πρόγραμμα.
 - Λογικά Σφάλματα (Logical Errors): Αυτά είναι τα πιο δύσκολα σφάλματα να εντοπιστούν, καθώς το πρόγραμμα εκτελείται χωρίς να εμφανίζει κάποιο μήνυμα λάθους. Το πρόβλημα έγκειται στο ότι ο κώδικας κάνει κάτι διαφορετικό από αυτό που είχε σκοπό ο προγραμματιστής. Το πρόγραμμα λειτουργεί, αλλά παράγει λάθος αποτέλεσμα. Για παράδειγμα, αν θέλετε να υπολογίσετε το μέσο όρο δύο αριθμών και αντί να τους προσθέσετε και να διαιρέσετε με το 2, τους πολλαπλασιάζετε.
 
Παράδειγμα Λογικού Σφάλματος
Ας υποθέσουμε ότι θέλετε να βρείτε το μέσο όρο δύο αριθμών, α και β. Αντί να γράψετε:
Mεˊσος Όρος=(α+β)/2
γράφετε λανθασμένα:
Mεˊσος Όρος=α∗β/2
Ο κώδικας θα εκτελεστεί κανονικά χωρίς κάποιο μήνυμα λάθους, αλλά το αποτέλεσμα θα είναι τελείως λανθασμένο. Αυτό είναι ένα κλασικό παράδειγμα λογικού σφάλματος.Ναι αλλά το αρχικό σφάλμα που σε ρώτησα δεν το έβαλες σε κάποια από τις 3  τρεις βασικές κατηγορίες
Χρειάζεται διευκρίνιση. Το αρχικό σφάλμα που ανέφερες, η μη δήλωση μιας μεταβλητής, ανήκει στην κατηγορία των σφαλμάτων συντακτικού (syntax errors).
Ας το δούμε πιο αναλυτικά:
Σφάλματα Συντακτικού (Syntax Errors)
Αυτά τα σφάλματα είναι σαν να παραβιάζεις τους γραμματικούς κανόνες μιας γλώσσας. Όπως δεν μπορείς να γράψεις μια πρόταση στα ελληνικά χωρίς ρήμα, έτσι δεν μπορείς να χρησιμοποιήσεις μια μεταβλητή σε ένα πρόγραμμα χωρίς να την έχεις δηλώσει πρώτα. Ο μεταγλωττιστής (compiler) ή ο διερμηνέας (interpreter) το εντοπίζει αμέσως, πριν καν προσπαθήσει να "τρέξει" τον κώδικα.
Είναι ένας υποκατηγορία των compile-time errors, δηλαδή σφαλμάτων που ανιχνεύονται κατά τη φάση της μεταγλώττισης.
Συνοπτικά:
- Σφάλμα Συντακτικού: Η μη δήλωση μιας μεταβλητής.
 - Ανίχνευση: Πριν την εκτέλεση του προγράμματος (κατά τη μεταγλώττιση).
 
Επομένως, το σφάλμα σου ανήκει στη γενική κατηγορία των Σφαλμάτων Συντακτικού, τα οποία είναι μια μορφή Σφαλμάτων Χρόνου Μεταγλώττισης.
			 
			
			
				Πρόσεξε Νίκο, γιατί οι απαντήσεις του 'ΑΙ' ειδικά εφόσον είναι στα ελληνικά μπορεί να είναι επηρεασμένες (το λέω κομψά) από  τις συζητήσεις στο στέκι και ακόμα χειρότερα από τα βιβλία πληροφορικής που διδάσκουμε >:D >:D  >:D
Πάντως, στην περίπτωση που συζητάτε όντως νομίζω ότι πρόκειται για συντακτικό σφάλμα και ο κανόνας που παραβιάζεται είναι ότι κάθε όνομα μεταβλητής (identifier) που χρησιμοποιείται στο πρόγραμμα πρέπει να εμφανίζεται στο τμήμα δηλώσεων
			
			
			
				Παράθεση από: pgrontas στις 22 Σεπ 2025, 09:20:58 ΜΜΠρόσεξε Νίκο, γιατί οι απαντήσεις του 'ΑΙ' ειδικά εφόσον είναι στα ελληνικά μπορεί να είναι επηρεασμένες (το λέω κομψά) από  τις συζητήσεις στο στέκι και ακόμα χειρότερα από τα βιβλία πληροφορικής που διδάσκουμε >:D >:D  >:D
Χα, χα! Αυτό να λέγεται! 
Πάντως δεν νομίζω να παίζει ρόλο η γλώσσα των ερωτήσεων/απαντήσεων, γιατί σε πάρα πολλές περιπτώσεις που το ρωτάω για κανονικά ερωτήματα που έχω σε διάφορες γλώσσες προγραμματισμού, μου απαντάει σχετικά καλά (στα ελληνικά κιόλας) ενώ είμαι σίγουρος ότι αποκλείεται να υπάρχουν αυτά στον ιστό στα ελληνικά. Θεωρώ ότι προσπαθεί να κάνει μετάφραση...
			
 
			
			
				Νίκο εδώ ισχύει το έφτασες στην πηγή και δεν ήπιες νερό.
Στο σημείο που έφτασες έπρεπε να ρωτήσεις ποιο λάθος στην σύνταξη παραβιάζει και να σου διατυπώσει τον κανόνα που παραβιάζεται αυστηρά σε Backus-Naur form, να δούμε τι θα κάνει.
			
			
			
				Παράθεση από: pgrontas στις 22 Σεπ 2025, 09:20:58 ΜΜΠρόσεξε Νίκο, γιατί οι απαντήσεις του 'ΑΙ' ειδικά εφόσον είναι στα ελληνικά μπορεί να είναι επηρεασμένες (το λέω κομψά) από  τις συζητήσεις στο στέκι και ακόμα χειρότερα από τα βιβλία πληροφορικής που διδάσκουμε >:D >:D  >:D
Σαν το ανέκδοτο με τους ινδιάνους και τον καιρό  :D
			
 
			
			
				Γκουγκλάρω για: is symbol table syntactic or semantic
Το Gemini λέει: A symbol table is primarily a semantic data structure, though it's used and built in conjunction with other phases of a compiler. It records information about program symbols (like variables and functions) and is created during the semantic analysis phase because that's when enough meaning and context is known to describe a symbol.
			
			
			
				Εγώ στέκομαι στο εξής σκεπτικό.
Συντακτικό λάθος είναι αυτό που παραβιάζει τη σύνταξη , άρα αυτό που παραβιάζει την γραμματική.
Η απουσία δήλωσης μεταβλητής δεν είναι θέμα της γραμματικής αλλά της σημασιολογίας και ο έλεγχος γίνεται σε επόμενο επίπεδο.
Απλά υπάρχει σύγχυση μεταξύ των όρων syntax error και compile-time error, όχι στα βιβλία μας ή στην Ελλάδα αλλά γενικότερα.
Το παρακάτω είναι μετά από σύντομη συνομιλία με το perplexity το οποίο επίσης μου περιέγραψε αρχικά την απουσία δήλωσης μεταβλητής ως συντακτικό λάθος. Έτσι ξεκίνησε 
και δείχνω παρακάτω πως κατέληξε, όταν κατάλαβε ότι δεν μπορεί να διατυπώσει τον κανόνα σε BNF/EBNF
ΠαράθεσηΟ συντακτικός κανόνας που ελέγχει αν μια μεταβλητή έχει δηλωθεί προηγουμένως δεν είναι απλώς ένας συντακτικός κανόνας (syntax), αλλά σχετίζεται με τον σημασιολογικό έλεγχο (semantic analysis) κατά τη φάση της μεταγλώττισης.
Πιο συγκεκριμένα:
- Κατά τον σημασιολογικό έλεγχο, το compiler ελέγχει τον πίνακα συμβόλων (symbol table) που έχει δημιουργήσει από τις δηλώσεις μεταβλητών.
 - Όταν βρει μια χρήση μεταβλητής, ελέγχει αν αυτή υπάρχει στον πίνακα συμβόλων, δηλαδή αν έχει δηλωθεί ήδη.
 - Αν η μεταβλητή δεν υπάρχει στον πίνακα, τότε παράγεται σφάλμα δήλωσης (undeclared variable error).
 - Αυτός ο έλεγχος είναι απαραίτητος για την αποφυγή χρήσης μη δηλωμένων μεταβλητών, που θεωρείται λάθος στον προγραμματισμό.
 
Το BNF δεν εκφράζει συνήθως αυτόν τον έλεγχο, διότι ο BNF ορίζει μόνο τη σύνταξη (grammar) και όχι τη σημασιολογία (meaning). Ο εν λόγω κανόνας ανήκει στη σημασιολογική ανάλυση, η οποία ελέγχει τη συνέπεια και τη σωστή χρήση των δηλώσεων πέραν της σύνταξης.
Συνοπτικά:
- Ο BNF θα περιέγραφε τη σύνταξη της δήλωσης ή της χρήσης μεταβλητής.
 - Ο σημασιολογικός έλεγχος (που δεν εκφράζεται με BNF) θα έλεγχε αν η μεταβλητή που χρησιμοποιείται έχει δηλωθεί πριν.
 
			 
			
			
				Εγώ θα συμφωνήσω με τον Akis73 παραπάνω:
Παράθεση από: Akis73 στις 22 Σεπ 2025, 02:12:01 ΜΜΚαταλαβαίνω τι λες, αλλά τι να λέγαμε σφάλμα μεταγλώττισης;
Ναι μια χαρά είναι το "σφάλμα μεταγλώττισης", δεν χρειάζεται να ζαλίζουμε τους μαθητές με τις υποκατηγορίες "λεκτικής / συντακτικής / σημασιολογικής ανάλυσης".
Σε μάθημα Πανεπιστημίου για compilers, ΟΚ, έχει νόημα, αλλά στη Β/θμια, όχι...
			
 
			
			
				Ακριβώς, αυτή η διατύπωση αρκεί
			
			
			
				Μόνο που δυστυχώς αυτή η διατύπωση δεν υπάρχει στα βιβλία των μαθητών (το κοντινότερο είναι λάθη κατά την υλοποίηση της 13.1)
Σε κάθε περίπτωση αυτή η συζήτηση ήταν αρκετά διαφωτιστική για μένα. Με μια μικρή αναζήτηση (όχι AI - παλιό καλό cs.stackexchange) βρήκα ότι τελικά ακόμα και τι ονομάζουμε σύνταξη και γραμματική είναι αρκετά συγκεχυμένο -  τις συζητήσεις που κάνουμε εδώ, τις έκαναν τη δεκαετία του 60 κατά τη δημιουργία των γλωσσών προγραμματισμού.
Δημιουργήθηκαν λοιπόν γραμματικές (π.χ.  Van Wijngaarden grammar (https://en.wikipedia.org/wiki/Van_Wijngaarden_grammar) για την ALGOL68) οι οποίες μπορούσαν να εκφράσουν εκτεταμένη πληροφορία που η BNF δεν θα μπορούσε να ελέγξει ως σημασιολογική (μεταξύ των οποίων και η δήλωση μεταβλητής ακόμα και ο έλεγχος τύπων). Αυτές δεν προχώρησαν μάλλον λόγω προβλημάτων απόδοσης (εικάζω). 
Έτσι βγάζω το συμπέρασμα ότι τα όρια της σύνταξης δεν είναι τόσο αυστηρά καθορισμένα (όχι μόνο στην υλοποίηση αλλά και στον ορισμό).
Οπότε τελικά δε θεωρώ και τόσο τραγικό να τα λέμε όλα αυτά συντακτικά λάθη, ειδικά στα πλαίσια του μαθήματος. 
			
			
			
				Παράθεση από: evry στις 23 Σεπ 2025, 09:37:42 ΠΜΝίκο εδώ ισχύει το έφτασες στην πηγή και δεν ήπιες νερό.
Στο σημείο που έφτασες έπρεπε να ρωτήσεις ποιο λάθος στην σύνταξη παραβιάζει και να σου διατυπώσει τον κανόνα που παραβιάζεται αυστηρά σε Backus-Naur form, να δούμε τι θα κάνει.
Συνεχίζοντας την αρχική στιχομυθία με το GEMINI:
To λάθος της μη δήλωσης μιας μεταβλητής ποιον συντακτικό κανόνα παραβιάζει ?
Το λάθος της μη δήλωσης μιας μεταβλητής παραβιάζει τον συντακτικό κανόνα που απαιτεί τη δήλωση μιας μεταβλητής πριν από τη χρήση της.
Αυτός ο κανόνας είναι θεμελιώδης στις περισσότερες γλώσσες προγραμματισμού με στατική τυποποίηση (statically typed languages) όπως η C++, η Java και η C#. Ο σκοπός του είναι να ενημερώσει τον μεταγλωττιστή για:
- Το όνομα της μεταβλητής: Με ποιο αναγνωριστικό θα την αναγνωρίζει ο κώδικας.
 - Τον τύπο δεδομένων της: Τι είδους τιμές θα αποθηκεύει (π.χ., ακέραιος, δεκαδικός, χαρακτήρας), κάτι που καθορίζει και το μέγεθος της μνήμης που θα δεσμευτεί.
 
Όταν παραλείπεται η δήλωση, ο μεταγλωττιστής συναντά ένα άγνωστο όνομα και δεν μπορεί να προχωρήσει, καθώς αγνοεί τον τύπο της μεταβλητής, το μέγεθός της, και τη θέση της στη μνήμη. Αυτή η παράβαση του κανόνα οδηγεί στο γνωστό σφάλμα χρόνου μεταγλώττισης (compile-time error).Μπορούμε να διατυπώσουμε αυτόν τον κανόνα αυστηρά σε Backus-Naur form ?
Η Backus-Naur Form (BNF) είναι μια μετα-γλώσσα που χρησιμοποιείται για την περιγραφή της γραμματικής μιας γλώσσας. Δεν μπορεί να εκφράσει απευθείας σημασιολογικούς κανόνες, όπως το ότι μια μεταβλητή πρέπει να έχει δηλωθεί πριν χρησιμοποιηθεί.
Ο κανόνας της δήλωσης πριν από τη χρήση είναι ένας σημασιολογικός κανόνας, όχι ένας συντακτικός. Η BNF περιγράφει μόνο το "τι φαίνεται σωστό" συντακτικά.
Παράδειγμα
Ας δούμε γιατί αυτό είναι δύσκολο με ένα απλό παράδειγμα.
Αν είχαμε έναν κανόνα BNF για έναν όρο (
<expression>) και μια δήλωση (
<declaration>) που θα ήταν κάπως έτσι:
<program> ::= <statement>+
<statement> ::= <declaration> | <assignment>
<declaration> ::= "int" <identifier> ";"
<assignment> ::= <identifier> "=" <expression> ";"
Σύμφωνα με αυτή τη γραμματική, το παρακάτω κομμάτι κώδικα είναι συντακτικά σωστό:
x = 5;
int x;
Ο μεταγλωττιστής θα το αναγνώριζε ως έγκυρη ακολουθία δηλώσεων και αναθέσεων. Ωστόσο, λογικά (και άρα σημασιολογικά), είναι λάθος, καθώς η μεταβλητή 
x χρησιμοποιείται πριν δηλωθεί.
Η BNF δεν έχει τη δυνατότητα να "θυμάται" ποιες μεταβλητές έχουν δηλωθεί ή να ελέγξει αν μια μεταβλητή που χρησιμοποιείται σε μια ανάθεση (
<assignment>) υπάρχει ήδη σε μια προηγούμενη δήλωση (
<declaration>). Αυτό το επίπεδο ελέγχου γίνεται από τον μεταγλωττιστή στο στάδιο του σημασιολογικού ελέγχου, μετά την ανάλυση της σύνταξης.
			 
			
			
				Παράθεση από: NIKOS_KALYVAS στις 12 Σεπ 2025, 01:47:39 ΠΜΑγαπητοί συνάδελφοι καλή σχολική χρονιά με υγεία και δημιουργικότητα.
Κάνω ανάρτηση τα θέματα και τις ενδεικτικές΄απαντήσεις.
Οποιαδήποτε σχόλια και παρατηρήσεις είναι ευπρόσδεκτα με χαρά.
ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΩΝ 2025
https://www.minedu.gov.gr/publications/docs2025/panelladikes_2025_septemvrios/%CE%91%CE%9D%CE%91%CE%A0%CE%A4%CE%A5%CE%9E%CE%97_%CE%95%CE%A6%CE%91%CE%A1%CE%9C%CE%9F%CE%93%CE%A9%CE%9D_%CE%95%CE%A0%CE%91%CE%9D%CE%91%CE%9B_2025.pdf
ΕΝΔΕΙΚΤΙΚΕΣ  ΑΠΑΝΤΗΣΕΙΣ
https://drive.google.com/file/d/1bn_KhlrL4hObON4ublta0th0q-Tm6kFw/view?usp=sharing
Στις ενδεικτικές απαντήσεις για το Γ θέμα αν έλειπε το παρακάτω κομμάτι θα κόβατε μονάδες;
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
     ΔΙΑΒΑΣΕ ΕΠ ! η επιλογή από το μενού
ΜΕΧΡΙΣ_ΟΤΟΥ ΕΠ>=1 ΚΑΙ ΕΠ<=3Το ερώτημα μου είναι γιατί το θέμα ζητάει να κάνει έλεγχο εγκυρότητας. Οκ, αλλά γιατί να κάνεις επιπλέον επανάληψη για έλεγχο εγκυρότητας, αφού αν ο χρήστης δώσει κάτι διαφορετικό από 1,2,3 υπάρχει ήδη η επανάληψη που δεν θα μπει σε κανένα από τα ΑΝ και θα του ξαναδείξει και το μενού. 
Οπότε κατά τη γνώμη μου το ερώτημα αυτό είναι ήδη λυμένο με τον υπόλοιπο κώδικα όπως έχει γραφτεί. 
Θα ήθελα να ακούσω τις απόψεις σας.
			
 
			
			
				Η διαφορά είναι ότι λογικά δεν θέλουμε να εμφανίζει ξανά το μενού αλλά να ζητάει απλά και πάλι την επιλογή, είναι διαφορετικό
Το μενού υπάρχει ήδη πάνω από τον κέρσορα
Και εφόσον το έλεγε ρητά ότι απαιτείται έλεγχος εγκυρότητας, εγώ θα έκοβα όλες τις μονάδες που αντιστοιχούν στον έλεγχο...
			
			
			
				Εγώ δεν θα έκοβα. 
Αν εξαιρέσεις την εμφάνιση του μενού η εμπειρία του χρήστη είναι ίδια, το ίδιο και η λειτουργία (αν δεν μου ξεφεύγει κάτι με μια γρήγορη ματιά που έριξα).
Όμως πολλές φορές όταν πρέπει να ξαναδώσει τιμή ο χρήσης η εμφάνιση του μενού μπορεί να του υπενθυμίσει τις έγκυρες τιμές.
Συνήθως τέτοιες λύσεις (που διαθέτουν κάποια οικονομία-κομψότητα) στο συγκεκριμένο θέμα, μου τις κάνουν καλοί μαθητές που καταλαβαίνουν ποια θα είναι η ροή του αλγορίθμου και θεωρώ δύσκολο να έχει γίνει κατά τύχη.
			
			
			
				Απλά ο μαθητής αγνόησε εντελώς κάτι που έλεγε ρητά η εκφώνηση και εκεί είναι η ένσταση μου
Νομίζω ότι δεν το πρόσεξε και όχι ότι πήρε την πρωτοβουλία να το αγνοήσει επειδή θα εμφανιστεί και πάλι το μενού
Κι επειδή βαθμολογούνται καλώς ή κακώς με βάση αυτά που ζητάει η εκφώνηση, ο έλεγχος εγκυρότητας δεν έγινε...
			
			
			
				επιτέλους ήρθε ή ώρα να πω τη φράση που με εκνευρίζει απίστευτα:
Κάθε επιστημονικά τεκμηριωμένη λύση είναι αποδεκτή
ότι και να σημαίνει αυτό  :D :D :D :D :D :D :D
			
			
			
				Παράθεση από: petrosp13 στις 25 Σεπ 2025, 03:02:29 ΜΜΑπλά ο μαθητής αγνόησε εντελώς κάτι που έλεγε ρητά η εκφώνηση και εκεί είναι η ένσταση μου
Νομίζω ότι δεν το πρόσεξε και όχι ότι πήρε την πρωτοβουλία να το αγνοήσει επειδή θα εμφανιστεί και πάλι το μενού
Κι επειδή βαθμολογούνται καλώς ή κακώς με βάση αυτά που ζητάει η εκφώνηση, ο έλεγχος εγκυρότητας δεν έγινε...
Από που φαίνεται ότι αγνόησε την εκφώνηση; Η λύση του δεν λειτουργεί σύμφωνα με την εκφώνηση; Επιτρέπονται μη έγκυρες τιμές;
Βαθμολογούμε μόνο αυτά που βλέπουμε στο γραπτό. Δεν γνωρίζουμε και δεν είναι ασφαλές να υποθέσουμε (πόσο μάλλον να βαθμολογήσουμε) το τι είχε ή δεν είχε στο μυαλό του ο μαθητής.
Φυσικά και δεν πρέπει να χάσει κανένα μόριο.