Αντικειμενοστρεφής Προγραμματισμός — Ενδεικτικό τεστ¶
Μεταγραφή των σελίδων 7–9 του exams.pdf (ενδεικτικό τεστ θεωρίας και προγραμματισμού).
exams.pdf (σελ. 7-9)¶
Σημείωση: η φωτογραφία περιέχει χειρόγραφες απαντήσεις φοιτητή.
Οντοκεντρικός Προγραμματισμός Προβολή Άσκησης
ΕΝΔΕΙΚΤΙΚΗ ΕΞΕΤΑΣΗ-ΘΕΩΡΙΑ Υπολειπόμενος χρόνος: 9:54
Αυτό το τεστ περιέχει 4 ενδεικτικές ερωτήσεις θεωρίας, 2 java και 2 cpp. Έχει χρονικό περιορισμό 10 λεπτά.
Ερώτηση 1 / 4 (Πολλαπλής Επιλογής (Μοναδική Απάντηση) — 1 βαθμός)
Στον κύκλο ζωής ενός applet η μέθοδος start() εκτελείται
- [ ] πρώτη
- [ ] μετά την init()
- [ ] πριν την init()
- [ ] μετά την paint()
ΕΝΔΕΙΚΤΙΚΗ ΕΞΕΤΑΣΗ-ΘΕΩΡΙΑ
Αυτό το τεστ περιέχει 4 ενδεικτικές ερωτήσεις θεωρίας, 2 java και 2 cpp. Έχει χρονικό περιορισμό 10 λεπτά.
Ερώτηση 2 / 4 (Πολλαπλής Επιλογής (Μοναδική Απάντηση) — 1 βαθμός)
Ένα νήμα είναι
- [ ] στιγμιότυπο της Runnable
- [ ] στιγμιότυπο της Thread
- [ ] στιγμιότυπο υποκλάσης της Thread
- [ ] στιγμιότυπο υποκλάσης της Runnable
ΕΝΔΕΙΚΤΙΚΗ ΕΞΕΤΑΣΗ-ΘΕΩΡΙΑ
Αυτό το τεστ περιέχει 4 ενδεικτικές ερωτήσεις θεωρίας, 2 java και 2 cpp. Έχει χρονικό περιορισμό 10 λεπτά.
Ερώτηση 3 / 4 (Πολλαπλής Επιλογής (Μοναδική Απάντηση) — 1 βαθμός)
Πότε είναι χρήσιμος ο δείκτης this;
- [ ] Όταν μια τοπική μεταβλητή έχει το ίδιο όνομα με μια μεταβλητή μέλος, μπορούμε να προσπελάσουμε το μέλος χρησιμοποιώντας το this
- [ ] Για να επιστρέψουμε αναφορά στο τρέχον αντικείμενο
- [ ] Για την αλυσιδωτή κλήση συναρτήσεων ενός αντικειμένου
- [ ] Για όλα τα παραπάνω
ΕΝΔΕΙΚΤΙΚΗ ΕΞΕΤΑΣΗ-ΘΕΩΡΙΑ
Αυτό το τεστ περιέχει 4 ενδεικτικές ερωτήσεις θεωρίας, 2 java και 2 cpp. Έχει χρονικό περιορισμό 10 λεπτά.
Ερώτηση 4 / 4 (Πολλαπλής Επιλογής (Μοναδική Απάντηση) — 1 βαθμός)
Τι ισχύει από τα παρακάτω;
- [ ] Ο destructor καλείται αυτόματα όταν ένα αντικείμενο βγει εκτός εμβέλειας
- [ ] Ο destructor καλείται αυτόματα όταν ένα static αντικείμενο βγει εκτός εμβέλειας
- [ ] Ο constructor καλείται αυτόματα όταν ένα αντικείμενο δημιουργείται
- [ ] Ο constructor καλείται όταν ένα αντικείμενο τον καλεί ρητά
Το τεστ αυτό περιέχει 4 ενδεικτικές ερωτήσεις προγραμματισμού, 2 java και 2 cpp. Έχει χρονικό περιορισμό 10 λεπτών.
Ερώτηση 1 / 4 (Πολλαπλής Επιλογής (Μοναδική Απάντηση) — 1 βαθμός)
Δίνεται το παρακάτω πρόγραμμα
class Window{
double size;
boolean dmode = false;
public Window() {
size = 2.0;}}
class EWindow extends Window{
protected boolean dmode = true;
public EWindow (double size){
this.size = size--;}}
public class RunWindow{
public static void main(){
EWindow w1 = new EWindow(3.5);
...System.out.println(w1.dmode);
}}
Τί θα εκτυπωθεί μετά την εκτέλεσή του;
- [ ] true
- [ ] false
- [ ] null
- [ ] τίποτα
Ερώτηση 2 / 4 (Πολλαπλής Επιλογής (Μοναδική Απάντηση) — 1 βαθμός)
Δίνεται η παρακάτω μέθοδος της κλάσης CountChars.
public (1) changeString(String s, char c1, char c2)
{String snew;
snew = (2).replace(c1, c2);
return snew;
}
Πρέπει να συμπληρωθεί ο κώδικας στα σημεία (1) και (2). Ποια από τις παρακάτω δυάδες είναι η σωστή.
- [ ] (1): int, (2): s
- [ ] (1): String, (2): s
- [ ] (1): String, (2): snew
- [ ] (1): char, (2): snew
ΕΝΔΕΙΚΤΙΚΗ ΕΞΕΤΑΣΗ-ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Το τεστ αυτό περιέχει 4 ενδεικτικές ερωτήσεις προγραμματισμού, 2 java και 2 cpp. Έχει χρονικό περιορισμό 10 λεπτών.
Ερώτηση 4 / 4 (Πολλαπλής Επιλογής (Μοναδική Απάντηση) — 1 βαθμός)
Ποια είναι σωστή δήλωση για μια συνάρτηση που δέχεται σαν όρισμα ένα δείκτη float, ένα δείκτη σε δείκτη char και επιστρέφει ένα δείκτη σε δείκτη int;
- [ ] int fun(float, char**)
- [ ] int fun(float, char*)
- [ ] int fun(float, char*)
- [ ] int ***fun(*float, **char)
Λύσεις (⚪ AI, μη επαληθευμένο)
Κατάσταση: ⚪ AI, μη επαληθευμένο Πηγή: λύσεις AI (antigravity-gemini, gemini-3.7-flash, sonnet), ανεξάρτητη επανάληψη και αντιπαραβολή· καμία δεν έχει ελεγχθεί από άνθρωπο
Προσοχή
Λύση από AI — ελέγξτε την· δεν έχει επαληθευτεί από άνθρωπο. Η ένδειξη «δύο λύσεις συμφωνούν» δεν σημαίνει ότι η απάντηση είναι σωστή.
AI λύσεις — 2023-endeiktiki¶
Οι λύσεις γράφτηκαν από μοντέλα AI και δεν έχουν ελεγχθεί από άνθρωπο. Η αρίθμηση ακολουθεί το αρχείο θεμάτων.
Θέμα Θεωρία 1/4 (applet start)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή
Κύκλος ζωής applet: init() → start() → paint(). Μετά την init() (2η επιλογή).
Θέμα Θεωρία 2/4 (νήμα)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: χαμηλή
Ένα νήμα είναι αντικείμενο της κλάσης Thread (ή υποκλάσης της)· το Runnable είναι απλώς η εργασία που εκτελεί. Οι επιλογές 2 και 3 είναι και οι δύο υπερασπίσιμες· η πιο γενική και ακριβής είναι «στιγμιότυπο της Thread». 2η επιλογή.
Θέμα Θεωρία 3/4 (δείκτης this)¶
Αξιοπιστία: ⚠ οι ανεξάρτητες λύσεις διαφωνούν: δες όλες και έλεγξε μόνος σου · εμπιστοσύνη λύτη: χαμηλή
Λύση 1: Και οι τρεις πρώτες χρήσεις είναι σωστές (ξεκαθάρισμα ονομάτων, επιστροφή *this, αλυσιδωτές κλήσεις). Για όλα τα παραπάνω (4η επιλογή).
Λύση 2: - [x] Για όλα τα παραπάνω
Αιτιολόγηση:
Ο δείκτης this (σε C++ και Java) χρησιμοποιείται για τη διάκριση παραμέτρων/τοπικών μεταβλητών από πεδία με το ίδιο όνομα, για την επιστροφή αναφοράς στο τρέχον αντικείμενο (*this στη C++ ή this στη Java), επιτρέποντας έτσι και τη συνένωση/αλυσιδωτή κλήση μεθόδων (method chaining).
Λύση 3 (τρίτη γνώμη): Δεν λύθηκε: η ερώτηση 3/4 του προγραμματισμού λείπει πλήρως από το αρχείο θεμάτων exams.pdf (παρουσιάζονται μόνο οι 1/4, 2/4 και 4/4). Η ερώτηση απουσιάζει τόσο από το αρχείο θεμάτων όσο και από τις λύσεις Α και Β, επομένως δεν είναι δυνατόν να αξιολογηθεί.
Θέμα Θεωρία 4/4 (constructor/destructor)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: χαμηλή
Η 1η ισχύει μόνο για αυτόματα αντικείμενα (όχι δυναμικά)· η 2η είναι λάθος (τα static καταστρέφονται στο τέλος του προγράμματος, όχι στην έξοδο από εμβέλεια)· η 4η είναι λάθος ως γενικός κανόνας· η 3η ισχύει πάντα για κάθε δημιουργία αντικειμένου. Δύο επιλογές (1 και 3) είναι δεκτές, η 3η είναι η απόλυτα γενική. 3η επιλογή (αβέβαιο αν η εξέταση θεωρεί σωστή την 1η).
Θέμα Προγραμματισμός 1/4 (πεδίο dmode)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: μέτρια
Το πεδίο dmode της EWindow κρύβει (field hiding) αυτό της Window. Ο στατικός τύπος του w1 είναι EWindow, άρα w1.dmode είναι το true της υποκλάσης. true (1η επιλογή). (Τα ... και η main() χωρίς ορίσματα στην εκφώνηση θεωρούνται τυπογραφικά.)
Θέμα Προγραμματισμός 2/4 (changeString)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή
Η replace ανήκει στο String και επιστρέφει String: (1) String, (2) s (το snew δεν έχει ακόμα τιμή). (1): String, (2): s (2η επιλογή).
Θέμα Προγραμματισμός 4/4 (δήλωση συνάρτησης με δείκτες)¶
Αξιοπιστία: 2 από 3 ανεξάρτητες λύσεις συμφωνούν (η άλλη διαφωνούσε) · εμπιστοσύνη λύτη: υψηλή
Επιστρέφει int**, παράμετροι float* και char**. int **fun(float*, char**) (3η επιλογή).
Θέμα Προγραμματισμός 3/4¶
Αξιοπιστία: δεν λύθηκε
Δεν λύθηκε: η ερώτηση λείπει από τη μεταγραφή.