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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

Διάλεξη 17: Επανάληψη για την ενδιάμεση εξέταση. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1

Δομημένος Προγραμματισμός (ΤΛ1006)

Διάλεξη 17: Επανάληψη για την ενδιάμεση εξέταση. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

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

Φροντιστήριο 4 Σκελετοί Λύσεων

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

Διάλεξη 11: Φροντιστήριο για Στοίβες. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Εργαστήριο 8: Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Δομές Δεδομένων

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διάλεξη 9: Δυναμική Δέσμευση Μνήμης

Φροντιστήριο 4 Σκελετοί Λύσεων

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου

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

Δομημένος Προγραμματισμός (ΤΛ1006)

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

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

Sheet2. Σωστή, και µπράβο που µεριµνήσατε για λίστες διαφορετικών µεγεθών.

Στοίβες με Δυναμική Δέσμευση Μνήμης

Εισαγωγή στον Προγραμματισμό (με. τη C)

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Διάλεξη 19η: Δομές δεδομένων

Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης (Κεφάλαιο , KNK-2ED)

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

Προγραμματισμός Η/Υ (ΤΛ2007 )

- Το πρόγραµµα σας δίνει τα αναµενόµενα αποτελέσµατα.

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

Ανάπτυξη και Σχεδίαση Λογισμικού

Εργαστήριο 9: Αρχεία

Διάλεξη 15η: Αναδρομή, μέρος 1ο

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

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

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

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Εργαστήριο 5 Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ με αλφαβητική σειρά

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

Διάλεξη 9: Αφηρημένοι Τύποι Δεδομένων. Διδάσκων: Παναγιώτης Ανδρέου

Προγραμματισμός Η/Υ. Ενότητα 9: Ειδικά θέματα Δομών Δεδομένων

Διάλεξη 22η: Επιπλέον στοιχεία της C

Εισαγωγή στον Προγραμματισμό

Διαδικασιακός Προγραμματισμός

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

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Εργαστήριο 5: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Διπλά Συνδεδεμένη Λίστα

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

υναµικές οµές εδοµένων

Εργαστήριο 2: Πίνακες

Βαθμός Σχόλια. lab8. οριακά PASS 1194 PASS

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

Διαδικασιακός Προγραμματισμός

Διάλεξη 20: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

Ορισμός μεταβλητών δεικτών και αρχικοποίηση

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Δομημένος Προγραμματισμός (ΤΛ1006)

Sheet2 Α.Μ FAIL. οριακό PASS. - Έπρεπε να χρησιµοποιήσετε συναρτήσεις από τη string.h

Η γλώσσα προγραμματισμού C Δυναμική διαχείριση μνήμης

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

Εισαγωγή στον δομημένο προγραμματισμό

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

Sheet1_2 FAIL. - To πρόγραµµα δεν κάνει compile Δεν παρέδωσε FAIL

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο M. Χατζόπουλος. Προθεσμία: 19/01/2015

Ανάπτυξη και Σχεδίαση Λογισμικού

Sheet1_2. - Δεν απελευθερώνεις τη δυναµικά δεσµευµένη µνήµη. - Η έξοδος του προγράµµατός σου δεν είναι ακριβώς όπως ζητούσε η άσκηση.

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

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

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

Εισαγωγή στον δομημένο προγραμματισμό

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

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

to post PASS PASS FAIL

Διάλεξη 11η: Δείκτες, μέρος 1

Προγραμματισμός Ι. Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Η γλώσσα προγραμματισμού C

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες.

Διάλεξη 5: Δείκτες και Συναρτήσεις

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Transcript:

ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 1 Διάλεξη 8: Φροντιστήριο για Δομές, Δυναμική Δέσμευση Μνήμης, Αναδρομή Διδάσκων: Παναγιώτης Ανδρέου

ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 2

penny = one nickel = five dime = ten quarter = twenty-five Ποια από τις ακόλουθες δηλώσεις τύπου enumμπορεί να αναπαραστήσει σωστά το παράδειγμα με τα νομίσματα στα αριστερά; enumcoin {(penny,1), (nickel,5), (dime,10), (quarter,25)}; enumcoin ({penny,1}, {nickel,5}, {dime,10}, {quarter,25}); enumcoin {penny=1,nickel=5,dime=10,quarter=25}; enumcoin (penny=1,nickel=5,dime=10,quarter=25); 5. Επιλογή 5: enumcoin {penny, nickel, dime, quarter} (1, 5, 10, 25); ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 3

ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 4 struct Person{ } struct Person{ char name[30], }Person; struct Person{ }; //A //Β //Γ typedef struct Person{ //Δ } Ποια είναι η σωστή επιλογή για να δηλώσουμε τη δομή Person; Α Β Γ Δ

struct Person{ } Person; int main() { struct Person p1; Ποια είναι η σωστή επιλογή για να δώσουμε τιμή στο id του Person p1; *p1.id = 123456; &p1.id = 123456; }????????? p1.id = 123456; p1->id = 123456; ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 5

typedef struct{ } Person; int main() { Ποια είναι η σωστή επιλογή; Ο κώδικας είναι σωστός. Ο κώδικας δεν κάνει compile. } Person *p1; p1->id = 123456; Ο κώδικας θα δημιουργήσει σφάλμα runtime. Η μεταβλητή p1 έπρεπε να αρχικοποιηθεί με null. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 6

typedef struct { } Person; Ποια είναι η σωστή επιλογή για να αρχικοποιήσουμε το p1; *p1 = malloc(sizeof(person)); int main() { p1 = (Person *) malloc(sizeof(person*)); } Person *p1;????????? *p1 = (Person *) malloc(sizeof(person)); p1 = (Person *) malloc(sizeof(person)); 5. Επιλογή 5: &p1 = (Person *) malloc(sizeof(person)); ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 7

typedef struct { } Person; int main() { } Person * p[5]; Τι κάνει ο κώδικας δίπλα; Αρχικοποιεί ένα πίνακα με 5 στοιχεία τύπου Person Αρχικοποιεί ένα πίνακα με 5 στοιχεία τύπου δείκτης σε δομή τύπου Person Αρχικοποιεί 5 στοιχεία τύπου Person Δεσμεύει μνήμη για 5 στοιχεία τύπου Person ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 8

Ποια από τις ακόλουθες δηλώσεις δεσμεύει αρκετό χώρο για ένα πίνακα με 10 ακέραιους; int*ptr= (int*) malloc(10, sizeof(int)); int*ptr= (int*) calloc(10, sizeof(int)); int*ptr = (int*) malloc(10*sizeof(int)); int*ptr= (int*) alloc(10*sizeof(int)); 5. Επιλογή 5: int*ptr= (int*) calloc(10*sizeof(int)); ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 9

char ptr1[] = "Hello World"; char *ptr2 = malloc( 5 ); ptr2 = ptr1; Τι υπάρχει λάθος με τον κώδικα; (Υποθέτουμε ότι η mallocδεν θα αποτύχει) Θα υπάρχει διαρροή μνήμης. Δεν επιτρέπεται η ανάθεση τύπου πίνακα στον τύπο char *. Θα υπάρξει segmentation fault. Δεν δεσμεύεται αρκετή μνήμη με τη malloc. 5. Επιλογή 5: Δεν κάνει compile ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 10

typedef struct {???? } Employee; Πως μπορούμε να ορίσουμε για κάθε υπάλληλο ότι έχει κάποιο συγκεκριμένο manager; Employee manager; struct Employee manager; struct* Employee manager; Employee* manager; ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 11

typedef struct { union{ char passport[9]; } eid; } Employee[10]; Πως μπορούμε να έχουμε πρόσβαση στην ταυτότητα του υπάλληλου στη θέση 5; *(Employee+5).eid.id (employees+4)->eid.id; Employee[4].id Employee[4].eid.id ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 12

int fibonacci (int n) { return (fibonacci(n - 1) + fibonacci(n - 2)); Τι είναι το πρόβλημα του κώδικα στα αριστερά; Δεν κάνει compile } if(n==0) return 0; if(n==1) return 1; Η μέθοδος δεν θα τερματίσει ποτέ! Η μέθοδος δεν υπολογίζει σωστά τον αριθμό fibonacci Δεν επιτρέπεται η κλήση της fibonacci εσωτερικά από την ίδια μέθοδο ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 13

typedef struct { } Employee; Employee *e = (Employee*) malloc(sizeof(employee )); strcpy(e->name, "Panic"); Πως μπορούμε να επιστρέψουμε τον πρώτο χαρακτήρα του ονόματος του υπάλληλου e; e->name[0] *(e->name) (*e).name[0] *((*e).name) ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 14