ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης ΜΑΘ106/3122 Γλώσσα Προγραμματισμού Δομές Δεδομένων.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Από τη C στη C++ Hy240b project 2014 Phase 1.
Advertisements

Δομές στην C (επανάληψη)
Το αλφαριθμητικό (string)
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ανασκόπηση σε Δείκτες, Ουρές, Στοίβες, Συνδεδεμένες Λίστες
Πίνακες-Αλφαριθμητικά
Πινακες (Arrays) Σημασια Συνταξη Αρχικοποιηση Προσβαση Παραμετροι
ΜΑΘ3122/106 Γλώσσα Προγραμματισμού
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
Αντικειμενοστραφής Προγραμματισμός
ΜΑΘ 3122 (106) Γλώσσα προγραμματισμού
Μάθημα : Βασικά Στοιχεία της Γλώσσας Java
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΙΑΔΙΚΑΣΤΙΚΟ ΠΡΟΓΡΑΜMΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ – ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΜΑΘ-3122/106 Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Ταξινόμηση και Αναζήτηση.
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων, Σημασιολογικές Ενέργειες.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
ΜΕΤΑΒΛΗΤΕΣ - ΤΥΠΟΙ ΜΑΘΗΜΑ 3.
ΣΥΝΑΡΤΗΣΕΙΣ.
Αντικειμενοστρεφής Προγραμματισμός ΚΛΑΣΕΙΣ ΙΙ. Υπερφόρτωση (Overloading) Όταν το ίδιο όνομα συνάρτησης (μεθόδου) χρησιμοποιείται για περισσότερες από.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων Φροντιστήριο - 30/04/2009.
Δομές Δεδομένων.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Κατασκευαστές κλάσεων (constructors) Κατασκευαστές κλάσεων.
Δείκτες (Pointers) – Δομές (Structs)
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αρχεία.
ΕΠΛ 223 Θεωρία και Πρακτική Μεταγλωττιστών7-1 Πίνακας Συμβόλων Πίνακας συμβόλων: δομή δεδομένων που χρησιμοποιείται για την αποθήκευση διαφόρων πληροφοριών.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
ΗΥ150 – Προγραμματισμός Ξ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Δομές Δεδομένων.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
ΜΑΘ3122/106 – Γλώσσα προγραμματισμούΞενοφών Ζαμπούλης ΜΑΘ3122/106 Γλώσσα προγραμματισμού Συναρτήσεις.
Έλεγχος Ονομάτων (Name Control) Για ένα πρόγραμμα που αποτελείται από πολλά τμήματα κάποια από τα οποία έχουν πιθανώς γραφτεί από άλλους προγραμματιστές.
ΜΑΘ 3122/106 – Γλώσσα Προγραμματισμού Ξενοφών Ζαμπούλης ΜΑΘ-3122/106 Γλώσσα Προγραμματισμού Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Υπερφόρτωση Τελεστών (Συνέχεια) Αντικειμενοστραφής Προγραμματισμός.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Πίνακες.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Αρχεία.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΘΠ06 - Μεταγλωττιστές Ενδιάμεσος Κώδικας – Μεταφραστικά Σχήματα.
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ -150 Προγραμματισμός Δομές Δεδομένων.
ΗΥ150 – ΠρογραμματισμόςΞ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Αρχεία.
Τεχνολογία ΛογισμικούSlide 1 Εξειδίκευση Βασισμένη σε Μοντέλο u Τυπική εξειδίκευση λογισμικού με ανάπτυξη μαθηματικού μοντέλου για το σύστημα.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αλφαριθμητικά (Strings)
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
TEXNΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ – ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ.
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΓΛΩΣΣΑ C
Δομές.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Τύποι Μεταβλητών.
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Πίνακας Συμβόλων Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής.
EPL231 – Data Structures and Algorithms
Εισαγωγή στον Προγ/μό Υπολογιστών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Μεταγράφημα παρουσίασης:

ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης ΜΑΘ106/3122 Γλώσσα Προγραμματισμού Δομές Δεδομένων

ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης 2 Δομές Δεδομένων (Data Structures) Καινούργιοι τύποι δεδομένων που αποτελούνται από την ομαδοποίηση υπαρχόντων τύπων δεδομένων Ομαδοποίηση πληροφορίας που δεν μπορεί να αποθηκευτεί σε μία μόνον μεταβλητή από τους δοσμένους τύπους της C Συλλογή μη διατεταγμένων και ομοιογενών τιμών Πλεονέκτημα: Καλύτερη οργάνωση – διαχείριση πληροφορίας πιο ευέλικτος σχεδιασμός ΌνομαΤίτλος#ΤαυτότηταςΜισθόςΧρόνια ΚώσταςδιευθυντήςΑ ΠΛΥπάλληλοςΒ ΑΛΥπάλληλοςΒ ΒΛΥπάλληλοςΒ

ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης 3 Ορισμός Δομών Ορισμός νέου τύπου δομής struct employee { char name[50]; char title[20]; char id[8]; double salary; int years; }e; Τα name, title, id, salary, years ονομάζονται τα μέλη ή πεδία της δομής To employee ονομάζεται η ετικέτα της δομής nametitle idsalary years e

ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης 4 Αναπαράσταση στη μνήμη nametitleidsalaryyears struct employee

ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης 5 Δήλωση Μεταβλητών Τύπου Δομής struct employee e1, e2; struct employee *pe; struct employee manager = {“AB”, “manager”, “A11111”, 2000, 2}; struct employee e3 = {0}; // μηδενίζει όλα τα στοιχεία

ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης 6 Πρόσβαση στα Περιεχόμενα της Δομής struct point { int x; int y; } p; Με τον τελεστή ‘.’ (τελεία) αποκτούμε πρόσβαση στα μέλη της δομής p.x = p.y = 10;

ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης 7 Εμφωλιασμένες Δομές Δομές ως μέλη άλλων δομών είναι επιτρεπτά: struct point { int x; int y; }; struct rectangle { struct point topleftcorner; struct point bottomrightcorner; } rect1; Πρόσβαση με διαδοχικές τελείες (.) rect1.topleftcorner.x = 10; Παίρνουμε το πεδίο x του πεδίου topleftcorner της μεταβλητής rect1 bottomrightcorner topleftcorner xy xy rect1

ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης 8 Πίνακες από Δομές Όπως και για κάθε άλλο τύπο: struct point { int x; int y; } p; struct point points[100]; points[2].x = 10;

ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης 9 Χρήση Δομών Σαν κανονικές μεταβλητές για την αποθήκευση πληροφορίας Σαν ορίσματα σε Συναρτήσεις: void printEmployee( struct employee e); Σαν επιστρεφόμενες τιμές από συναρτήσεις: struct employee newEmployee(char *name, char *pos, char *id, double sal, int y); Σαν επιστρεφόμενες τιμές από συναρτήσεις ως δείκτες: struct employee *newEmployee(char *name, char *pos, char *id, double sal, int y); Σε ποια περίπτωση θα χρησιμοποιούσατε το κάθε ένα;

ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης 10 struct employee newEmployee (char *name, char *pos, char *id, double sal, int y) { struct employee newE; strcpy(newE.title,name); strcpy(newE.position,pos); strcpy(newE.id,id); newE.salary = sal; newE.years = y; return newE; }

ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης 11 Επιτρεπτές Πράξεις σε Δομές struct point { int x; int y; } p1, p2; Αντιγραφή p1 = p2; Απόδοση τιμής σαν σύνολο με λίστα σταθερών τιμών για τα μέλη: p1 = {5, 6}; Εξαγωγή διεύθυνσης: &p1 Προσπέλαση των μελών: p1.x ΔΕΝ ΕΠΙΤΡΕΠΕΤAI η σύγκριση δομών fread(), fwrite()

ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης 12 typedef Ορισμός νέων ονομάτων για τους τύπους των μεταβλητών typedef τυπος όνομα; – Κάνει συνώνυμο το όνομα με τον τύπο – typedef unsigned long int size_t Το size_t γίνεται συνώνυμο του unsigned long int Αντί unsigned long int var1; – size_t var ;

ΜΑΘ106/3122 – Γλώσσα Προγραμματισμού Ξ. Ζαμπούλης 13 Παραδείγματα typedef typedef struct employee employee; employee e; typedef struct employee { char *name; char title[20]; } Employee; Χωρίς την typedef μπροστά δηλώνει μια μεταβλητή τύπου struct employee. Με την typedef δηλώνει ότι το όνομα Employee είναι συνώνυμο του struct employee.