📚 30 Super SOS – Πληροφορική

Γ' Λυκείου · Αναπτυξιακές Ερωτήσεις & Απαντήσεις

Ενότητα 1

Δένδρα & Δένδρα Απόφασης

Τα δένδρα είναι ιεραρχικές δομές δεδομένων που χρησιμοποιούνται παντού: από τους καταλόγους του λειτουργικού συστήματος μέχρι την τεχνητή νοημοσύνη! Σκεφτείτε ένα οικογενειακό δέντρο — έχει ρίζα (αρχηγός οικογένειας), γονείς, παιδιά και φύλλα (τελευταία γενιά).

🌲 Οπτικοποίηση Δένδρου

Ρίζα Β Γ Φύλλο Φύλλο Φύλλο Φύλλο Χωρίς γονέα Γονέας

Β και Γ είναι αδέλφια (ίδιος γονέας = Ρίζα). Οι πράσινοι κόμβοι είναι φύλλα.

#01
Τι είναι «ΔΕΝΔΡΟ» και ποιοι κανόνες πρέπει να εφαρμόζονται;
🔄 Κλικ για απάντηση
✅ Απάντηση
Ένα δένδρο είναι δομή από κόμβους και ακμές με τους εξής κανόνες:
• Υπάρχει ένας κόμβος χωρίς γονέα = ρίζα
• Κάθε κόμβος (εκτός ρίζας) έχει ακριβώς έναν γονέα
• Υπάρχει μοναδική διαδρομή από τη ρίζα σε κάθε κόμβο
#02
Δώστε τους ορισμούς: Ρίζα, Γονέας, Παιδί, Αδέλφια, Φύλλα.
🔄 Κλικ για απάντηση
✅ Απάντηση
Ρίζα: Κόμβος χωρίς γονέα (κορυφή)
Γονέας: Κόμβος από τον οποίο ξεκινά ακμή
Παιδί: Κόμβος στον οποίο καταλήγει ακμή
Αδέλφια: Κόμβοι με ίδιο γονέα
Φύλλα: Κόμβοι χωρίς παιδιά
#03
Ποια δένδρα ονομάζονται «ΔΕΝΔΡΑ ΑΠΟΦΑΣΗΣ»;
🔄 Κλικ για απάντηση
✅ Απάντηση
Δένδρα στα οποία:
• Κάθε κόμβος = χαρακτηριστικό/ιδιότητα
• Κάθε ακμή = απόφαση/κανόνας
• Κάθε φύλλο = αποτέλεσμα

Έχουν πρωτεύοντα ρόλο στους αλγορίθμους μηχανικής μάθησης (machine learning).
Ενότητα 2

Συνδεδεμένες Λίστες

Φανταστείτε μια σκυταλοδρομία: ο κάθε δρομέας κρατά μια σκυτάλη και ξέρει ποιος είναι ο επόμενος. Αυτή είναι η λογική της συνδεδεμένης λίστας! Κάθε κόμβος περιέχει δεδομένα + δείκτη στον επόμενο.

🔗 Απλά Συνδεδεμένη Λίστα

HEAD→
42
ptr
17
ptr
95
ptr
NULL

Κάθε κόμβος έχει δεδομένα + δείκτη. Ο τελευταίος δείχνει NULL.

#04
Τι είναι μια απλά συνδεδεμένη λίστα και τι περιέχει κάθε κόμβος;
🔄 Κλικ για απάντηση
✅ Απάντηση
Σύνολο κόμβων διατεταγμένων γραμμικά. Κάθε κόμβος περιέχει:
Δεδομένα
Δείκτη στον επόμενο κόμβο
Ο τελευταίος έχει δείκτη = NULL. Η αρχή αποθηκεύεται σε μεταβλητή Head (Κεφαλή).
#05
Ποιες είναι οι διαφορές μεταξύ ΠΙΝΑΚΑ και ΛΙΣΤΑΣ;
🔄 Κλικ για απάντηση
✅ Απάντηση
Πίνακας: Τυχαία προσπέλαση, σταθερό μέγεθος, συνεχόμενες θέσεις μνήμης (στατική δομή)

Λίστα: Ακολουθιακή προσπέλαση, δυναμικό μέγεθος, μη συνεχόμενες θέσεις (δυναμική δομή)
#06
Πλεονεκτήματα και μειονεκτήματα λιστών έναντι πινάκων;
🔄 Κλικ για απάντηση
✅ Απάντηση
✅ Πλεονεκτήματα: Δυναμικό μέγεθος, εύκολη εισαγωγή/διαγραφή, χωρίς δήλωση μεγέθους

❌ Μειονεκτήματα: Δεν επιτρέπεται τυχαία πρόσβαση (άρα όχι δυαδική αναζήτηση), μεγαλύτερη επιβάρυνση μνήμης (λόγω δεικτών)
#07
Τι είναι η διπλά συνδεδεμένη λίστα;
🔄 Κλικ για απάντηση
✅ Απάντηση
Λίστα με δύο δείκτες ανά κόμβο: έναν για τον επόμενο και έναν για τον προηγούμενο. Μπορεί να διατρεχθεί και προς τις δύο κατευθύνσεις.
Παράδειγμα: οι σταθμοί του μετρό — μπορείς να πας εμπρός ή πίσω!
#08
Ποιες είναι οι βασικές πράξεις συνδεδεμένων λιστών;
🔄 Κλικ για απάντηση
✅ Απάντηση
Εισαγωγή κόμβου (αρχή, τέλος, ενδιάμεσα)
Διαγραφή κόμβου
Έλεγχος αν η λίστα είναι κενή
Αναζήτηση κόμβου
Διάσχιση (εκτύπωση όλων)
Ενότητα 3

Αντικειμενοστραφής Προγραμματισμός (OOP)

Ο κόσμος γύρω μας αποτελείται από αντικείμενα! Ένα αυτοκίνητο έχει χαρακτηριστικά (χρώμα, ταχύτητα) και συμπεριφορά (κίνηση, φρενάρισμα). Ακριβώς έτσι λειτουργεί και ο αντικειμενοστραφής προγραμματισμός.

🏗️ Κληρονομικότητα Κλάσεων

🚗 Μέσο Μεταφοράς
+ χρώμα
+ ταχύτητα
+ κίνηση()
+ στάση()
is_a (κληρονομεί)
🚙 Αυτοκίνητο
+ αριθμόπινακα
+ κλείδωμα()
🚲 Ποδήλατο
+ γρανάζια
+ πεντάλ()

Τα αντικείμενα κληρονομούν ιδιότητες και μεθόδους από την υπερκλάση τους.

#09
Τι είναι Αντικειμενοστραφής Προγραμματισμός, Αντικείμενα, Ιδιότητες, Μέθοδοι;
🔄 Κλικ για απάντηση
✅ Απάντηση
OOP: Μεθοδολογία με αυτόνομες οντότητες (ταυτότητα + συμπεριφορά)
Αντικείμενα: Οντότητες = δεδομένα + κώδικας
Ιδιότητες: Χαρακτηριστικά/δεδομένα αντικειμένου
Μέθοδοι: Ενέργειες/λειτουργίες αντικειμένου
#10
Τι ονομάζουμε «ΕΝΘΥΛΑΚΩΣΗ»;
🔄 Κλικ για απάντηση
✅ Απάντηση
Η δυνατότητα ενός αντικειμένου να συνδυάζει εσωτερικά τα δεδομένα και τις μεθόδους χειρισμού. Σαν ένα κέλυφος που χωρίζει τον εσωτερικό από τον εξωτερικό κόσμο. Κρύβει τις λεπτομέρειες υλοποίησης!
#11
Τι είναι «ΚΛΑΣΗ» και πότε μια κλάση Α είναι υποκλάση της Β;
🔄 Κλικ για απάντηση
✅ Απάντηση
Κλάση: Ο γενικός τύπος αντικειμένου — αφαιρετικό «καλούπι» που παράγει αντικείμενα.

Α είναι έγκυρη υποκλάση της Β όταν ισχύει: «Α is_a Β»
Π.χ. «Αυτοκίνητο is_a Μέσο Μεταφοράς» ✓
#12
Τι είναι η «ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ» και ο «ΠΟΛΥΜΟΡΦΙΣΜΟΣ»;
🔄 Κλικ για απάντηση
✅ Απάντηση
Κληρονομικότητα: Μια υποκλάση κληρονομεί δεδομένα + μεθόδους της υπερκλάσης.

Πολυμορφισμός: Μια λειτουργία μπορεί να υλοποιηθεί με πολλούς τρόπους.
Π.χ. κλείδωμα αυτοκινήτου: με κλειδί ή με τηλεχειριστήριο — ίδιο αποτέλεσμα, διαφορετικός τρόπος!
Ενότητα 4

Σφάλματα, Εκσφαλμάτωση & Έλεγχος

Ακόμα και οι καλύτεροι προγραμματιστές κάνουν λάθη! Το σημαντικό είναι να ξέρουμε πού να ψάξουμε. Σαν γιατροί που διαγνώσκουν ασθένειες — χρειαζόμαστε συστηματική προσέγγιση.

#13
Ποιες είναι οι κατηγορίες λαθών σε ένα πρόγραμμα;
🔄 Κλικ για απάντηση
✅ Απάντηση
1. Συντακτικά λάθη — κατά την υλοποίηση (λάθος γραφή κώδικα)
2. Λάθη χρόνου εκτέλεσης — κατά την εκτέλεση (π.χ. διαίρεση με 0)
3. Λογικά λάθη — ο κώδικας τρέχει αλλά δίνει λάθος αποτέλεσμα
#14
Τι είναι η «ΕΚΣΦΑΛΜΑΤΩΣΗ» (debugging);
🔄 Κλικ για απάντηση
✅ Απάντηση
Η διαδικασία ελέγχου, εντοπισμού και διόρθωσης σφαλμάτων προγράμματος. Στόχος: ο εντοπισμός των σημείων που προκαλούν προβλήματα στη λειτουργία.
#15
Τι είναι ο έλεγχος «ΜΑΥΡΟΥ ΚΟΥΤΙΟΥ»;
🔄 Κλικ για απάντηση
✅ Απάντηση
Τεχνική ελέγχου όπου τα δεδομένα εισόδου προκύπτουν από τις προδιαγραφές του προγράμματος, αγνοώντας εντελώς τον κώδικα. Το πρόγραμμα μοιάζει σαν να βρίσκεται μέσα σε μαύρο κουτί! Χρησιμοποιούμε αντιπροσωπευτικές τιμές εισόδου.
Ενότητα 5

Δομές Δεδομένων: Στοίβα & Ουρά

Δύο κλασικές δομές με διαφορετική «φιλοσοφία»: η Στοίβα λέει LIFO (τελευταίο μέσα = πρώτο έξω — σαν πιάτα!) και η Ουρά λέει FIFO (πρώτο μέσα = πρώτο έξω — σαν ουρά τράπεζας!).

🍽️ Στοίβα (LIFO)

Α (1ο)
Β (2ο)
Γ (3ο ← TOP)

Push/Pop γίνεται μόνο από την ΚΟΡΥΦΗ

🏦 Ουρά (FIFO)

Α
front
Β
Γ
rear

Εισαγωγή από REAR, Εξαγωγή από FRONT

#16
Τι είναι η «ΣΤΟΙΒΑ» και ποια η βασική αρχή λειτουργίας;
🔄 Κλικ για απάντηση
✅ Απάντηση
Δομή όπου τα στοιχεία στην κορυφή λαμβάνονται πρώτα. Αρχή: LIFO (Last In, First Out). Παράδειγμα: στοίβα πιάτων — παίρνεις αυτό που τοποθέτησες τελευταίο!

Λειτουργίες: Push (ώθηση) + Pop (απώθηση)
#17
Τι είναι overflow και underflow στη Στοίβα;
🔄 Κλικ για απάντηση
✅ Απάντηση
Υπερχείλιση (Overflow): Προσπάθεια εισαγωγής σε γεμάτη στοίβα

Υποχείλιση (Underflow): Προσπάθεια αφαίρεσης από κενή στοίβα

Η μεταβλητή top δείχνει πάντα το τελευταίο στοιχείο.
#18
Τι είναι η «ΟΥΡΑ» και ποιες οι κύριες λειτουργίες της;
🔄 Κλικ για απάντηση
✅ Απάντηση
Δομή με αρχή FIFO (First In, First Out). Παράδειγμα: ουρά τράπεζας!

Λειτουργίες:
Enqueue: εισαγωγή στο ΠΙΣΩ άκρο (rear+1)
Dequeue: εξαγωγή από το ΕΜΠΡΟΣ άκρο (front+1)
#19
Τι είναι Στατική και Δυναμική Δομή Δεδομένων;
🔄 Κλικ για απάντηση
✅ Απάντηση
Στατική: Σταθερό μέγεθος ορισμένο κατά τον προγραμματισμό, αποθηκεύεται σε συνεχόμενες θέσεις μνήμης. Υλοποιείται με πίνακες.

Δυναμική: Μεταβλητό μέγεθος (μεγαλώνει/μικραίνει), χρησιμοποιεί DMA, μη συνεχόμενες θέσεις. Σαν ακορντεόν!
#20
Ποιες είναι οι βασικές λειτουργίες των Δομών Δεδομένων;
🔄 Κλικ για απάντηση
✅ Απάντηση
Προσπέλαση — πρόσβαση σε κόμβο
Εισαγωγή — προσθήκη κόμβου
Διαγραφή — αφαίρεση κόμβου
Αναζήτηση — εύρεση κόμβου
Ταξινόμηση — διάταξη κόμβων
Αντιγραφή, Συγχώνευση, Διαχωρισμός
Ενότητα 6

Ανάπτυξη Προγραμμάτων

Γλώσσες, μεταγλωττιστές, τμηματικός προγραμματισμός και μέθοδοι επίλυσης. Η «συνταγή» για να φτιάχνεις αξιόπιστα προγράμματα!

#21
Τι είναι Τμηματικός Προγραμματισμός, Υποπρόγραμμα και Παράμετροι;
🔄 Κλικ για απάντηση
✅ Απάντηση
Τμηματικός: Σχεδίαση ως σύνολο απλούστερων τμημάτων
Υποπρόγραμμα: Αυτόνομο τμήμα που επιτελεί συγκεκριμένο έργο
Παράμετρος: Μεταβλητή που μεταφέρει τιμή από τμήμα σε τμήμα
#22
Τι είναι Συντάκτης, Μεταγλωττιστής, Διερμηνευτής, Συνδέτης;
🔄 Κλικ για απάντηση
✅ Απάντηση
Συντάκτης: Επεξεργαστής κειμένου για γραφή κώδικα
Μεταγλωττιστής: Μεταφράζει όλο το πρόγραμμα (πηγαίο→αντικείμενο)
Διερμηνευτής: Εκτελεί μία-μία τις εντολές
Συνδέτης: Ενώνει τμήματα → εκτελέσιμο πρόγραμμα
#23
Τι είναι η μέθοδος «Διαίρει και Βασίλευε»;
🔄 Κλικ για απάντηση
✅ Απάντηση
Μέθοδος που υποδιαιρεί πρόβλημα σε μικρότερα υποπροβλήματα ίδιας δομής. Προσέγγιση top-down (από πάνω προς τα κάτω).
Βήματα: Υποδιαίρεση → Ανεξάρτητη λύση → Συνδυασμός λύσεων
#24
Τα 4 στοιχεία που προσδιορίζουν μια γλώσσα (αλφάβητο, λεξιλόγιο, γραμματική, σημασιολογία)
🔄 Κλικ για απάντηση
✅ Απάντηση
Αλφάβητο: Σύνολο βασικών στοιχείων
Λεξιλόγιο: Αποδεκτές ακολουθίες
Γραμματική: Τυπικό (αποδεκτές λέξεις) + Συντακτικό (σωστές προτάσεις)
Σημασιολογία: Νόημα λέξεων/προτάσεων
#25
Πλεονεκτήματα Τμηματικού & Δομημένου Προγραμματισμού
🔄 Κλικ για απάντηση
✅ Απάντηση
• Διευκολύνει ανάπτυξη (επίλυση απλών υποπροβλημάτων)
• Ευκολότερη κατανόηση/διόρθωση από τρίτους
• Λιγότερος κόπος/χρόνος (επαναχρησιμοποίηση)
• Περιορισμός λαθών
• Δημιουργία απλούστερων προγραμμάτων
#26
Κανόνες εμφωλευμένων βρόχων
🔄 Κλικ για απάντηση
✅ Απάντηση
• Ο εσωτερικός βρόχος πρέπει να βρίσκεται ολόκληρος μέσα στον εξωτερικό
• Ο βρόχος που ξεκινάει τελευταίος ολοκληρώνεται πρώτος
• Είσοδος σε βρόχο μόνο από την αρχή
• Δεν χρησιμοποιείται η ίδια μεταβλητή ως μετρητής