Αντικειμενοστραφής Προγραμματισμος [Θέματα Φεβρουαρίου 2011]

Διδάσκοντες: Α. Αραμπατζής, Λέκτορας

Αντικειμενοστραφής Προγραμματισμος [Θέματα Φεβρουαρίου 2011]

Δημοσίευσηαπό kappa » 03 Φεβ 2013, 16:18

Θεματα Φεβρουαρίου 2011 απαντημενα σχεδον ολα.Παρουσιαζουν ομοιοτητες με φετινα θεματα (Φεβρ 2013) (4ο θεμα ιδιο με αλλες μεταβλητες)
Τελευταία επεξεργασία από brera και 03 Φεβ 2013, 16:55, έχει επεξεργασθεί 1 φορά/ες συνολικά
Αιτία: Επεξεργασία τίτλου
kappa
 

Re: θεματα φεβρουαριου 2011

Δημοσίευσηαπό alehunter » 03 Φεβ 2013, 16:43

τελειος φιλε μου!

επειδη τα ειδα τα θεματα αν μπορουσες να τα ειχες αυτα απαντημενα απο την πεμπτη που τα γραψαμε κιολας θα ειχες αποκτησει ΘΕΙΚΕΣ διαστασεις....
παντως ναι πεσαν copy paste τα περισσοτερα
+νμζ οτι με την κινηση σου μολις μας εκαψες τα θεματα .... :-\ :-\ :-\

οπως και να εχει ευχαριστουμε :D :D
Άβαταρ μέλους
alehunter
Hero Member
 
Δημοσιεύσεις: 1527
Εγγραφή: 24 Δεκ 2011, 01:33
Τοποθεσία: ακριβώς εκεί που θες να 'μαι
Φοιτητής ΗΜΜΥ: Ναι

Re: θεματα φεβρουαριου 2011

Δημοσίευσηαπό James » 03 Φεβ 2013, 17:49

Στο Θέμα 3, ε) είναι:
Μπορεί ένας C++ μεταφραστής (compiler) να γραφτεί σε C;

Σαφέστατα.
Υπάρχουν προγράμματα τα οποία μπορούν να γραφτούν σε C++ αλλά όχι σε C;

Η ερώτηση δεν είναι απόλυτα σαφής. Πρόγραμμα θεωρείται κάτι που έχει ήδη γραφτεί οπότε ...
Δεν υπάρχουν, όμως, αλγοριθμικά προβλήματα που να μπορούν να λυθούν με χρήση της C++ και όχι της C.
Υπάρχει όμως περίπτωση να πρέπει να χρησιμοποιηθεί C++ (και όχι C) για την υλοποίηση όταν υπάρχουν περιορισμοί σε κάποιο underlying framework, πχ το API που πρέπει να χρησιμοποιηθεί χρησιμοποιεί class.

Θέμα 1, α)
Προβλέψτε την έξοδο ή το λάθος για τα παρακάτω.

Υπάρχει συντακτικό λάθος στη δεύτερη γραμμή. Δε γίνεται να αυξήσει κανείς την τιμή μιας const μεταβλητής.
Η (*p) είναι const επειδή η δήλωση στην πρώτη γραμμή λέει "δηλώνω δείκτη με όνομα p που δείχνει σε έναν const integer (***), ο οποίος είναι alias του (*p)", άρα είναι παράτυπη η αλλαγή της τιμής του ακεραίου.

Επίσης η δήλωση στην πρώτη γραμμή είναι λάθος επειδή το δεξιά μέρος (δηλαδή το "5") είναι int ενώ ο τύπος στα αριστερά είναι int *. Θα πρέπει να γίνει το κατάλληλο cast, πχ const int * p = (int *)5;

Ακόμη και τώρα όμως το πρόγραμμα εξακολουθεί να έχει λάθος. Ορίζω έναν δείκτη μιας const μεταβλητής και τον αρχικοποιώ με ένα hardcoded αριθμό (τον 5). Το αποτέλεσμα είναι ο δείκτης να μη δείχνει πουθενά ή να δείχνει σε μια περιοχή στην εικονική μνήμη που δεν υπάρχει ή που δεν έχει δικαίωμα η εφαρμογή να προσπελάσει ή χίλια δυο άλλα. Με λίγα λόγια, ακόμη και το πρόγραμμα
Κώδικας: Επιλογή όλων
const int *p = (int *)5;
cout << *p;

δεν πρόκειται ποτέ να τρέξει χωρίς exception/fatal error, αν και κατά πάσα πιθανότατα θα περάσει τον compiler.

Εν ολίγοις υπάρχουν τρία λάθη.


*** Η παραπάνω έκφραση δεν είναι 100% σωστή. Ο ακέραιος στον οποίο δείχνει ο p θεωρείται const μόνον όταν αυτός προσεγγίζεται μέσω του p αλλά αυτό δεν αλλάζει κάτι στην περίπτωσή μας.
(Μόνο) James
Άβαταρ μέλους
James
Διαχειριστής
 
Δημοσιεύσεις: 1740
Εγγραφή: 08 Ιαν 2008, 22:29
Φοιτητής ΗΜΜΥ: Όχι

Re: Αντικειμενοστραφής Προγραμματισμος [Θέματα Φεβρουαρίου 2

Δημοσίευσηαπό avi » 04 Φεβ 2013, 13:13

Δυστυχώς, η απάντηση στο PDF στο Θέμα 4 (τουλάχιστον) είναι λάθος.
avi
Newbie
 
Δημοσιεύσεις: 2
Εγγραφή: 04 Φεβ 2013, 13:09

Re: Αντικειμενοστραφής Προγραμματισμος [Θέματα Φεβρουαρίου 2

Δημοσίευσηαπό alehunter » 04 Φεβ 2013, 15:36

avi έγραψε:Δυστυχώς, η απάντηση στο PDF στο Θέμα 4 (τουλάχιστον) είναι λάθος.

ok αν μπορειτε ανεβαστε την σωστη απαντηση να την εχουμε :)
Τελευταία επεξεργασία από alehunter και 04 Φεβ 2013, 16:28, έχει επεξεργασθεί 1 φορά/ες συνολικά
Άβαταρ μέλους
alehunter
Hero Member
 
Δημοσιεύσεις: 1527
Εγγραφή: 24 Δεκ 2011, 01:33
Τοποθεσία: ακριβώς εκεί που θες να 'μαι
Φοιτητής ΗΜΜΥ: Ναι

Re: Αντικειμενοστραφής Προγραμματισμος [Θέματα Φεβρουαρίου 2

Δημοσίευσηαπό Seitjo90 » 04 Φεβ 2013, 15:55

Θεματα Φεβρουαρίου 2011


Το αρχείο pdf έχει ανέβει στα αρχεία του μαθήματος
Some people want it to happen, some wish it would happen, and others make it happen - Michael Jordan
Άβαταρ μέλους
Seitjo90
Γενικός Συντονιστής
 
Δημοσιεύσεις: 1983
Εγγραφή: 10 Νοέμ 2008, 19:24
Τοποθεσία: Dublin, Ireland
Φοιτητής ΗΜΜΥ: Όχι

Re: Αντικειμενοστραφής Προγραμματισμος [Θέματα Φεβρουαρίου 2

Δημοσίευσηαπό James » 05 Φεβ 2013, 14:22

avi έγραψε:Δυστυχώς, η απάντηση στο PDF στο Θέμα 4 (τουλάχιστον) είναι λάθος.

Και συγκεκριμένα έχει 3 λάθη:
1. Δεν εκτυπώνει αυτό που απαιτείται.
2. Η συνάρτηση printShapePoints κουβαλιέται στο Triangle. Η συνάρτηση έχει ήδη δηλωθεί και υλοποιηθεί στην Shape.
3. Ο πίνακας points επαναρχικοποιείται με new, παρόλο που αυτό έχει ήδη γίνει στον constructor του Shape.
Τα (2) και (3) είναι αρκετά σοβαρά κατά τη γνώμη μου διότι υποδεικνύουν έλλειψη κατανόησης της κληρονομικότητας :-[

Κώδικας: Επιλογή όλων
class Triangle: public Shape {
public:
        Triangle(Point obj1, Point obj2, Point obj3) : Shape(3) {
                points[0] = obj1;
                points[1] = obj2;
                points[2] = obj3;
        }
        void printShapeNameAndPoints() {
                cout << "Triangle with points ";
                printShapePoints();
                cout << endl;
        }
};
(Μόνο) James
Άβαταρ μέλους
James
Διαχειριστής
 
Δημοσιεύσεις: 1740
Εγγραφή: 08 Ιαν 2008, 22:29
Φοιτητής ΗΜΜΥ: Όχι

Re: Αντικειμενοστραφής Προγραμματισμος [Θέματα Φεβρουαρίου 2

Δημοσίευσηαπό avi » 07 Φεβ 2013, 15:15

σωστός
avi
Newbie
 
Δημοσιεύσεις: 2
Εγγραφή: 04 Φεβ 2013, 13:09

Re: Αντικειμενοστραφής Προγραμματισμος [Θέματα Φεβρουαρίου 2

Δημοσίευσηαπό alehunter » 07 Φεβ 2013, 22:38

James θεε εσυ και ο bill gates μονο ;D O0 ;D
thanx για τις λυσεις στα θεματα φιλε:D :D :D
Άβαταρ μέλους
alehunter
Hero Member
 
Δημοσιεύσεις: 1527
Εγγραφή: 24 Δεκ 2011, 01:33
Τοποθεσία: ακριβώς εκεί που θες να 'μαι
Φοιτητής ΗΜΜΥ: Ναι

Re: Αντικειμενοστραφής Προγραμματισμος [Θέματα Φεβρουαρίου 2

Δημοσίευσηαπό Κωνσταντίνα » 25 Σεπ 2013, 20:26

απ ότι θυμάμαι λίγο απ τα θέματα του φλεβάρη 2013 είχε να δηλωθούν τι είναι τα εξής:
1. Myclass x;
2. Myclass x();
3. Myclass x(5);

και 4. kati.method().data

καμια ιδέα για το 2 και 4;
Κωνσταντίνα
Full Member
 
Δημοσιεύσεις: 105
Εγγραφή: 17 Φεβ 2012, 16:31
Φοιτητής ΗΜΜΥ: Ναι

Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση : Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης