Προγραμματισμός Υπολογιστών με C++ Φύλλο Διαγωνίσματος Ακαδημαϊκό εξάμηνο: Χειμερινό

Σχετικά έγγραφα
Προγραμματισμός Υπολογιστών με C++ Φύλλο Διαγωνίσματος Ακαδημαϊκό εξάμηνο: Χειμερινό

Προγραμματισμός Υπολογιστών με C++ Φύλλο Διαγωνίσματος Ακαδημαϊκό εξάμηνο: Χειμερινό

Ενδεικτικές Λύσεις σε Επιλεγμένα Θέματα της C++

Ενδεικτικές Λύσεις σε Επιλεγμένα Θέματα της C++

Ενδεικτικές Λύσεις σε Επιλεγμένα Θέματα της C++

ΚΑΤΑΣΚΕΥΑΣΤΕΣ ΑΝΤΙΓΡΑΦΗΣ

Προγραμματισμός Υπολογιστών με C++

Οντοκεντρικός Προγραμματισμός

Προγραμματισμός Υπολογιστών με C++

Ονοματεπώνυμο και ΑΜ: Είχα παραδώσει εργασίες τα εξής ακαδημαϊκά έτη: Διάρκεια: 2,5 ώρες, κλειστά βιβλία και σημειώσεις ΚΑΛΗ ΕΠΙΤΥΧΙΑ!

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

Ηλεκτρονικοί Υπολογιστές

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Προγραμματισμός Υπολογιστών με C++

Αντικειµενοστρεφής Προγραµµατισµός

Προγραμματισμός Υπολογιστών με C++

Ενδεικτικές λύσεις και στατιστικά

Ονοματεπώνυμο και ΑΜ: Είχα παραδώσει εργασίες τα προηγούμενα ακαδημαϊκά έτη: ΚΑΛΗ ΕΠΙΤΥΧΙΑ!

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

POINTERS, AGGREGATION, COMPOSITION

Προγραμματισμός Υπολογιστών με C++

Οντοκεντρικός Προγραμματισμός

Προγραμματισμός Υπολογιστών με C++

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1

Προγραμματισμός Υπολογιστών με C++

ΠΡΟΤΥΠΑ. ΠΑΡΑ ΕΙΓΜΑ ηµιουργία πρότυπου στοίβας (stack) και στη συνέχεια δηµιουργία µιας στοίβας σηµείων.

Κανονισμός διεξαγωγής εξετάσεων

Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων

Αρχεία & Ρεύματα ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ. Γεώργιος Παπαϊωάννου ( ) gepap@aueb.gr

ΕΠΛ131 Αρχές Προγραμματισμού

Οντοκεντρικός Προγραμματισμός

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Ευάγγελος Γ. Ούτσιος Θεόδωρος Γ. Λάντζος Διάλεξη Νο8

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΚΑΛΟΥΠΩΜΑΤΑ & ΜΕΤΑΤΡΟΠΕΣ

Ερώτημα Α 1. Να γράψετε τις εντολές που πραγματοποιούν τα ακόλουθα:

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Προγραμματισμός Υπολογιστών με C++

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2520

Αρχεία Κεφαλίδων ΑΡΧΕΙΑ ΚΕΦΑΛΙΔΩΝ. Γεώργιος Παπαϊωάννου ( )

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

Αντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT

ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΚΑΙ ΠΟΛΥΜΟΡΦΙΣΜΟΣ

ΚΑΝΟΝΙΣΜΟΣ ΕΞΕΤΑΣΕΩΝ

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΑΤΙΣΜΟΣ Α (C++) ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΤΩΝ Δρ. Νικόλαος Ζ. Ζάχαρης

ιαφάνειες παρουσίασης #6 (β)

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ ΣΧΕ ΙΑΣΗ

υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 είκτες

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( )

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

12. ΑΛΦΑΡΙΘΜΗΤΙΚΑ. υο είδη αλφαριθµητικών Τα αλφαριθµητικά της C πίνακες τύπου char Ta αντικείµενα της κλάσης string

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Α.Π.Θ. ΕΡΓΑΣΤΗΡΙΟ C++ ΕΞΑΜΗΝΟ Γ Ακαδηµαϊκό Έτος

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Αναφορές, είκτες και Αλφαριθμητικά

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Προγραμματισμός Υπολογιστών με C++

Οντοκεντρικός Προγραμματισμός

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΑΣΚΗΣΕΙΣ ΓΙΑ ΤΟ ΕΡΓΑΣΤΗΡΙΟ 2

Κανονισμός Εξετάσεων Τμήματος Οικονομικών Επιστημών

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Οντοκεντρικός Προγραμματισμός

Προγραμματισμός Υπολογιστών με C++

Δομές Δεδομένων Boost C++ Libraries. 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ

Boost - Boost Graph Library C++ library

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

18. ΡΕΥΜΑΤΑ(STREAMS) ΚΑΙ ΑΡΧΕΙΑ (FILES)

ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Constructors, Destructors, Pointers IO Streams, File Streams

Βιβλιοθήκες Αφηρημένοι τύποι δεδομένων. Προγραμματισμός II 1

Δομές Δεδομένων & Αλγόριθμοι

Προχωρημένα Θέματα ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ. Γεώργιος Παπαϊωάννου ( )

Διάλεξη 18η: Διαχείρηση Αρχείων

Συλλογές ΣΥΛΛΟΓΕΣ. Γεώργιος Παπαϊωάννου ( )

Διδάσκων: Παναγιώτης Ανδρέου

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Προγραμματισμός Υπολογιστών με C++

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

ΕΠΛ131 Αρχές Προγραμματισμού

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016

Εισαγωγή στην πληροφορική

Προγραμματισμός Ι (ΗΥ120)

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!!

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΚΑΝΟΝΙΣΜΟΣ ΕΞΕΤΑΣΕΩΝ Εισαγωγή 1. Προπαρασκευή των εξετάσεων Έναρξη των εξετάσεων (i) (ii)

Προγραμματισμός Υπολογιστών με C++

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Προγραμματισμός Ι (HY120)

Κλάσεις και αντικείμενα #include <iostream.h<

Προγραμματισμός Ι (ΗΥ120)

οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές.

Transcript:

Προγραμματισμός Υπολογιστών με C++ Φύλλο Διαγωνίσματος Ακαδημαϊκό εξάμηνο: Χειμερινό 2013-14 Διδάσκων: Γεώργιος Παπαϊωάννου Μονογραφή επιτηρητή: Στοιχεία Φοιτητή (συμπληρώνεται από το φοιτητή) Όνομα: Αίθουσα/αμφιθέατρο: Επίθετο: Όνομα πατέρα: Έτος παράδοσης τελευταίων εργασιών: Αριθμός εργασιών: Αριθμός Μητρώου: Έτος σπουδών: Βαθμολογία (συμπληρώνεται από τον διδάσκοντα) Όλα τα πεδία συμπληρώνονται με κεφαλαία γράμματα Γραπτό Ενότητα 1 Ενότητα 2 Ενότητα3 Σύνολο Εργασίες Εργασία 1 Εργασία 2 Εργασία 3 Εργασία 4 * Σύνολο Αναγωγή στις 30 μονάδες (*) αφορά μόνο παλαιότερους φοιτητές. Οι εργασίες προσμετρώνται μόνο αν παραδόθηκαν στο ακαδ. Έτος 2011-12 και μετά. Παρατηρήσεις Επόπτη Συνολικός Βαθμός: Γενικές Οδηγίες Συμπληρώστε τα στοιχεία που σας ζητούνται στην πρώτη σελίδα πριν ξεκινήσετε να απαντάτε στα ερωτήματα. Όλα τα ερωτήματα πρέπει να απαντηθούν στο χώρο που δίνεται στο ερώτημα και μόνο εκεί. Καμία παραπομπή σε άλλο σημείο δε θα γίνει δεκτή. Πρόχειρες σημειώσεις μπορείτε να κρατήσετε μόνο στο χώρο που σας δίνεται στην τελευταία σελίδα του φύλλου εξέτασης το οποίο αποτελεί μέρος του γραπτού και παραδίδεται μαζί με τις απαντήσεις. Οποιαδήποτε σημείωση σε άλλο σημείο του φύλλου εξέτασης επιφέρει μείωση βαθμού. Η διάρκεια του διαγωνίσματος είναι 3 ώρες και η συνολική βαθμολογία του γραπτού είναι 70 μονάδες ( βαθμός 7). Η εργασία προσμετράται μόνο για γραπτά με βαθμό 3,5. Δεν επιτρέπεται η χρήση σημειώσεων, βιβλίων ή άλλων βοηθημάτων. Σύμφωνα με τον κανονισμό του πανεπιστημίου απαγορεύεται ρητά η χρήση κινητών τηλεφώνων και άλλων ηλεκτρονικών συσκευών κατά τη διάρκεια του διαγωνίσματος. Σε περίπτωση που ο επόπτης διαπιστώσει οποιαδήποτε απόπειρα αντιγραφής, συνεννόησης ή επικοινωνίας των θεμάτων, αφαιρεί επί τόπου το φύλλο εξέτασης, σημειώνει την αιτία και ο φοιτητής αποβάλλεται από την αίθουσα.

Ενότητα 1 (15 μονάδες) Απαντήστε στις ακόλουθες ερωτήσεις, συμπληρώνοντας την απάντησή σας στα κενά που παρέχονται. Όπου απαιτείται δικαιολόγηση, συμπληρώστε τη σύντομα στον αντίστοιχο χώρο. Πώς θα δεσμεύσω 100 στοιχεία τύπου string* και θα αναθέσω το αποτέλεσμα σε μια αντίστοιχη μεταβλητή με όνομα mydata; mydata = char * d = good day ; while (*(++d)!=0) cout << * ; Τι θα τυπωθεί; class A1 }; class A2 : protected : A1 }; Ποια είναι η επίδραση της λέξης protected στο συγκεκριμένο σημείο; Ενότητα 2 (15 μονάδες) Απαντήστε με σαφήνεια στις παρακάτω ερωτήσεις: Εξηγήστε τι κάνει η παρακάτω δήλωση: MyClass * ptr = dynamic_cast<myclass*>(object_ptr);

unsigned char * number_array = 1,1,1}; ofstream fs = ofstream("a.out", ios_base::out ); if (!fs.bad()) unsigned short * s_p = (unsigned short*) number_array; *(++s_p)=2; fs.write(s_p, sizeof(number_array)); } fs.close(); Τι θα γραφτεί στο αρχείο; O παραπάνω κώδικας εγκυμονεί κινδύνους και ποιους; Ενότητα 3 (40 μονάδες) Συμπληρώστε στο χώρο που σας παρέχεται τον κώδικα για τα παρακάτω ερωτήματα. Δίνεται η κλάση: (40 μονάδες) template <typename T> class Container protected: T * storage; size_t num_items; size_t storage_size;

public: virtual void operator += (const T item) } virtual ~Container() } Container() : storage(nullptr), num_items(0), storage_size(0) } T operator [] (size_t index) if (num_items==0) return T(0); return storage[index<num_items?index:num_items]; } inline size_t size() return num_items; } }; Επεκτείνετε κατάλληλα την Container, ώστε ο παρακάτω κώδικας να δουλεύει χωρίς σφάλματα και να παράγει το αποτέλεσμα που φαίνεται: void main(int argc, char* argv[]) Container<long> * store = new ; // Συμπληρώστε την αρχικοποίηση // αντικειμένου της δικής σας κλάσης size_t num_data; cin >> num_data; for (size_t i=0; i<num_data; i++) long item; cin >> item; *store+=item; } for (size_t i=0; i<store->size(); i++) std::cout << (*store)[i] << " "; std::cout << std::endl; } delete store; Γράψτε εδώ τη δήλωση και υλοποίηση της δικής σας κλάσης. Δεν επιτρέπεται να αλλοιώσετε την Container, ούτε να χρησιμοποιήσετε κλάσεις της STL.

Πρόχειρο Χρησιμοποιήστε τον ακόλουθο περιγεγραμμένο χώρο ως πρόχειρο και μόνο αυτόν.

(Πρόχειρο - συνέχεια)