Διάλεξη 8: Δομές, Ενώσεις και Απαριθμητοί Τύποι
|
|
- ἐλπίς Αλεξιάδης
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Διάλεξη 8: Δομές, Ενώσεις και Απαριθμητοί Τύποι (Κεφάλαιο 16, KNK-2ED) Δημήτρης Ζεϊναλιπούρ 8-1
2 Περιεχόμενο Διάλεξης 8 Δομές (Structures) Αναπαράσταση στη Μνήμη, Δηλώσεις & Τύποι Δομών, Αρχικοποίηση Εμφωλευμένες Δομές & Πίνακες Δείκτες σε Δομές, Δομές ως ορίσματα συναρτήσεων και τιμές επιστροφής Παραδείγματα: Σύγκριση, samefamily, addtofamily Δομές, sizeof και Θέματα Ευθυγράμμισης Μνήμης Ενώσεις (Unions) Αναπαράσταση στη Μνήμη, Δηλώσεις & Αρχικοποίηση Απαριθμητοί Τύποι Δεδομένων (Enumerations) Αναπαράσταση στη Μνήμη, Δηλώσεις & Αρχικοποίηση 8-2
3 Δομές (Structures) Δομή είναι μια συλλογή από μια ή περισσότερες μεταβλητές, πιθανώς διαφορετικών τύπων που ομαδοποιούνται με ένα όνομα για ευκολότερο χειρισμό. Ορισμός δομών γίνεται με τη σύνταξη: struct name { δηλώσεις πεδίων }; Παράδειγμα: struct Person { char firstname[15]; char lastname[15]; char gender; /* M ή F */ int age; }; 8-3
4 Δομές (Αναπαράσταση στη Μνήμη) Μια δομή αναπαριστάται σε συνεχόμενες διευθύνσεις μνήμης, όπως και οι πίνακες. struct { int number; char name[name_len+1]; int on_hand; } part1, part2; To part1, part2 ορίζει 2 μεταβλητές της εν λόγω δομής. 8-4
5 Δομές (Δήλωση & Τύποι Δομών) Η λέξη struct εισάγει τη δήλωση μιας δομής. Μπορεί να ακολουθείται (προαιρετικά) από κάποιο όνομα, που αποκαλείται ετικέτα δομής και ονοματίζει το είδος της δομής. Π.χ., struct Person { } Οι μεταβλητές που κατονομάζονται μέσα στη δομή ονομάζονται μέλη ή πεδία., π.χ., int age; Μια δήλωση struct ορίζει ένα τύπο. Για να δηλώσουμε μεταβλητές ή πίνακες τύπου δομής γράφουμε: struct Person x; struct Person people[40]; Eναλλακτικά μπορούμε επίσης να παραλείψουμε το όνομα της δομής αλλά να περιγράψουμε τα μέλη της: struct { char firstname[15]; char lastname[15]; char gender; int age; } x, people[40]; 8-5
6 Δομές (Δήλωση & Τύποι Δομών) struct { char firstname[15]; char lastname[15]; char gender; int age; } x, people[40]; Ίδιο με struct person { char firstname[15]; char lastname[15]; char gender; int age; }; struct person x, people[40]; Συνιστώμενος τρόπος Δήλωσης Δομής και Ορισμού Δομής για το ΕΠΛ132 char firstname[15]; char lastname[15]; char gender; int age; } PERSON; PERSON x, people[40]; και typedef struct person PERSON; PERSON x, people[40]; 8-6
7 Δομές (Αρχικοποίηση) Αρχικοποίηση μιας μεταβλητής ή πίνακα τύπου δομής γίνεται αποδίδοντας τιμές στα μέλη ως εξής: PERSON x = {"Aνδρέας", "Ανδρέου", 'M', 43}; PERSON people[] = {"Aνδρέας", "Ανδρέου", 'M', 43, "Μαρία", "Γεωργίου", 'F', 38, "Χρίστος", "Χαραλάμπους", 'Μ', 14 }; ή (καλύτερα) PERSON people[] = {{"Aνδρέας", "Ανδρέου", 'M', 43}, {"Μαρία", "Γεωργίου", 'F', 38}, { "Χρίστος", "Χαραλάμπους", 'Μ', 14}}; Αναφορά σε μέλος μιας δομής γίνεται μέσω της κατασκευής: όνομα_δομής.μέλος π.χ., scanf("%d", &x.age); if (x.age > 40) printf("age: %d \n", x.age); 8-7
8 Εμφωλευμένες Δομές (Nested Structures) Δομές μπορεί να είναι αλληλένδετες, δηλαδή να φωλιάζοντας (εμφωλεύονται) η μια μέσα στην άλλη, δημιουργώντας πιο πολύπλοκες δομές: struct Person { char firstname[15]; int age; }; struct family { struct Person father; struct Person mother; int numofchild; struct Person children[5]; }; int main(void){ struct Person x, y, z; struct family fml; fml.numofchild = 2; strcpy(fml.father.firstname, "Joe"); strcpy(fml.children[0].firstname, "Mary"); ή (καλύτερα) char firstname[15]; int age; } PERSON; PERSON father; PERSON mother; int numofchildren; PERSON children[5]; } FAMILY; int main(void){ PERSON x, y, z; FAMILY fml; fml.numofchildren = 2; strcpy(fml.father.firstname, "Joe"); strcpy(fml.children[0].firstname, "Mary"); 8-8
9 Εμφωλευμένες Δομές (Nested Structures) char firstname[15]; char lastname[15]; char gender; int age; } PERSON; char title[30]; int salary; PERSON employee; } POSITION; int main(void) { POSITION programmer, secretaries[10]; strcpy(programmer.title, "Software Engineer"); programmer.salary = 2500; /*per month */ strcpy(programmer.employee.firstname, "Joe"); strcpy(programmer.employee.lastname, "Hacker");... strcpy(secretaries[0].employee.firstname, "Jane"); } 8-9
10 Δομές και Συναρτήσεις (Structures and Functions) Επιτρεπτές πράξεις σε μια δομή είναι: η αντιγραφή της, η απόδοση τιμής σ αυτήν σαν σύνολο, η εξαγωγή της διεύθυνσής της, και η προσπέλαση των μελών της. Μεταβλητές τύπου δομής μπορούν να περαστούν ως ορίσματα σε συναρτήσεις όπως επίσης και να επιστραφούν ως αποτελέσματα συναρτήσεων Παράδειγμα: PERSON inc_age (PERSON x){ x.age += 1; return x; } PERSON x1, x2; x2 = inc_age(x1); Πέρασμα δια τιμής! (το x αντιγράφεται μέσα στη συνάρτηση) (αργότερα θα δούμε πως περνιούνται δομές δια διεύθυνσης) 8-10
11 Άσκηση 1 Δομές ΔΕΝ μπορούν να συγκριθούν: π.χ. η έκφραση x1 == x2 ΔΕΝ είναι έγκυρη. Άσκηση 1: Να γράψετε συνάρτηση η οποία παίρνει δύο παραμέτρους τύπου struct PERSON και τις συγκρίνει επιστρέφοντας TRUE εάν είναι τα ίδια άτομα. /* Εργασία 1 */ #define NAMESIZE 15 char firstname[namesize]; char lastname[namesize]; char gender; // function prototype int sameperson(person, PERSON); int age; } PERSON; 8-11
12 Άσκηση 1 /* Εργασία 1 */ #define NAMESIZE 15 char firstname[namesize]; char lastname[namesize]; char gender; int age; } PERSON; int sameperson(person, PERSON); // function prototype int sameperson(person x, PERSON y) { return( (strcmp(x.firstname, y.firstname) == 0) && (strcmp(x.lastname, y.lastname) == 0) && (x.gender == y.gender) && (x.age == y.age)); } int main() { PERSON per1 = {"Marios", "Michael", 'M', 24}; PERSON per2 = {"Antonis", "Charalambous", 'M', 22}; if (sameperson(per1,per1)) printf("same Persons"); else printf("different Persons"); return 0; 8-12 }
13 Δείκτες σε Δομές (Pointer to Structures) Μπορούμε επίσης να χρησιμοποιήσουμε δείκτες σε δομές. Δείκτης σε Δομή παράδειγμα δήλωσης: struct Person p, *pp; ή PERSON p, *pp; η μεταβλητή pp είναι δείκτης προς μια δομή τύπου Person. Έτσι μπορούμε να γράψουμε pp = &p; printf("%s", (*pp).firstname); óπου *pp είναι η δομή που δείχνεται από τον δείκτη, ενώ (*pp).firstname είναι το πρώτο πεδίο της δομής. Προσοχή: η προτεραιότητα του τελεστή μέλους δομής, '.', είναι μεγαλύτερη από αυτή του τελεστή έμμεσης αναφοράς, '*'. Επομένως οι παρενθέσεις στο (*pp).firstname είναι απαραίτητες. 8-13
14 Δείκτες σε Δομές & Συναρτήσεις (Pointer to Structures) Δείκτες για δομές χρησιμοποιούνται τόσο συχνά που παρέχεται ο πιο κάτω εναλλακτικός συμβολισμός ως συντομογραφία: (*p).μέλος_δομής = p->μέλος_δομής Πέρασμα Παραμέτρων Δια Αναφοράς: Σε περίπτωση που θέλουμε μία συνάρτηση να αλλάξει τα περιεχόμενα μίας δομής, περνάμε ως παράμετρο στη συνάρτηση το δείκτη της δομής αυτής όπως ακριβώς εργαζόμασταν και σε άλλες δομές δεδομένων, π.χ., : PERSON p;... initperson(&p); /* Κλήση συνάρτησης */... void initperson(person *p){ strcpy( p->firstname, "Aνδρέας"); strcpy( p->lastname, "Ανδρέου"); p->gender = 'M'; p->age = 43; } 8-14
15 Άσκηση 2 Άσκηση 2: Να γράψετε συνάρτηση η οποία παίρνει ως δεδομένο εισόδου μια οικογένεια (τύπου struct Family) και ένα άτομο (τύπου struct Person), και αν το άτομο δεν ανήκει ήδη στα παιδιά της οικογένειας τότε το προσθέτει. #include <stdio.h> #include <stdbool.h> #include <stdlib.h> #include <string.h> #define NAMESIZE 15 #define CHILDSIZE 5 char firstname[namesize]; char lastname[namesize]; char gender; int age; } PERSON; PERSON father; PERSON mother; int addtofamily(family *, PERSON); int numofchildren; PERSON children[childsize]; } FAMILY; 8-15
16 Άσκηση 2 int main() { FAMILY fml; PERSON per1 = {"Marios", "Michael", 'M', 24}; fml.numofchildren = 0; addtofamily(&fml,per1); } int addtofamily(family *fml, PERSON per) { if (fml == NULL) return EXIT_FAILURE; if (fml->numofchildren == CHILDSIZE) { printf("children Array is full!"); return EXIT_FAILURE; } // find if x belongs to family for (int i=0; i<fml->numofchildren; i++) { if ((strcmp(fml->children[i].firstname, per.firstname) == 0) && (strcmp(fml->children[i].lastname, per.lastname) == 0) && (fml->children[i].gender == per.gender) && (fml->children[i].age == per.age) ) { printf("already Family Member!"); return EXIT_FAILURE; } } } strcpy(fml->children[fml->numofchildren].firstname, per.firstname); strcpy(fml->children[fml->numofchildren].lastname, per.lastname); fml->children[fml->numofchildren].gender = per.gender; fml->children[fml->numofchildren].age = per.age; (fml->numofchildren)++; return EXIT_SUCCESS; 8-16
17 Δομές, sizeof και Θέματα Ευθυγράμμισης Μνήμης Το Πρόβλημα int ID; char state[3]; int salary; } EMPLOYEE; // 4Β // 3Β // 4Β sizeof(employee)=12 αντί 11 σε μία 4-byte aligned μνήμη! Αυτό συμβαίνει επειδή τα δεδομένα είναι ευθυγραμμισμένα σε 4B και το state έχει 1 byte padding Γρηγορότερη Πρόσβαση στα δεδομένα (προτιμητέα μέθοδος) αλλά Σπαταλείται Μνήμη 8-17
18 Δομές, sizeof και Θέματα Ευθυγράμμισης Μνήμης Ευθυγράμμιση Μνήμης (Memory Alignment): Ο μεταγλωττιστής προσθέτει padding (κενά bytes) σε δομές για να βρίσκονται σε διευθύνσεις πολλαπλάσιες μιας βασικής μονάδας, π.χ., 2b,4b,8b To padding δεν είναι ορατό σε μεταβλητές, ούτε και μας ενοχλεί αλλά καταλαμβάνει χώρο! Ο λόγος ύπαρξης του είναι ότι επιτρέπει στο Λ.Σ. να ανακτά γρηγορότερα δεδομένα από την μνήμη (π.χ., 4 bytes ανά κύκλο αντί 1 byte ανά κύκλο) Ωστόσο απαιτεί χώρο που μπορεί να ΜΗΝ υπάρχει π.χ., σε περίπτωσης όπου η μνήμη είναι πολύ περιορισμένη (π.χ., σε μικροεπεξεργαστές) ή εάν θέλουμε να χωρέσουμε πολλά δεδομένα στη μνήμη, (π.χ., ένα μεγάλο ευρετήριο) 8-18
19 Δομές, sizeof και Θέματα Παράδειγμα int ID; Ευθυγράμμισης Μνήμης char state[3]; int salery; Όρισμα του GCC μόνο // 4Β // 3Β // 4Β } attribute (( packed )) EMPLOYEE; sizeof(employee) επιστρέφει 11 σε μια 4-byte aligned μνήμη! Αυτό συμβαίνει επειδή τα δεδομένα γίνονται pack (συμπτύσσονται) χωρίς επιπρόσθετο padding Αργότερη Πρόσβαση αλλά Δεν Σπαταλείται Μνήμη (χρησιμοποιείται όταν μας ενδιαφέρει ο χώρος!) Περισσότερα:
20 Ενώσεις (Unions) Μια ένωση (union), αποτελείται από ένα ή περισσότερα πεδία, με ενδεχομένως διαφορετικό τύπο, αλλά καταλαμβάνει χώρο ίσο μόνο με το μεγαλύτερο πεδίο. struct { int i; double d; } s; union { int i; double d; } u; Η βασική διαφορά με τη δομή, είναι ότι ο μεταγλωττιστής δεσμεύει αρκετό χώρο μόνο για το μεγαλύτερο από τα πεδία. Συνεπώς μια ένωση αποθηκεύει ανά πάσα στιγμή ΜΟΝΟ ένα από τα πεδία. Ο προγραμματιστής (μέσω επιπλέον μεταβλητής) πρέπει να θυμάται ποιο EPL232: Εάν ProgrammingTechniques αλλάξει το u.i χάνεται and Tools το - Demetris u.d και Zeinalipour αντίστροφα (University of Cyprus)
21 #define INT_TYPE 1 #define REAL_TYPE 2 struct item { int type; union { int ival; double dval; } info; Ενώσεις (Παράδειγμα) Σημαία (flag) που χρησιμοποιείται για να θυμάται το πρόγραμμα τι έχει αποθηκευτεί μέσα στο union. } struct item x; if (x.type == INT_TYPE) printf("value of info = %d\n, x.info.ival); if (x.type == REAL_TYPE) printf("value of info = %lf\n", x.info.dval); 8-21
22 Ενώσεις (Unions) Εφαρμογές: Για εξοικονόμηση μνήμης αλλά κυρίως για δημιουργία ανάμεικτων δομών δεδομένων Παράδειγμα ενός Page το οποίο κατά την εκτέλεση μπορεί να συμπεριφέρεται ως RootPage, DirectoryPage, IndexPage ή DataPage (ελεγχόμενο από πεδίο typ) short typ; short crc; short pwc; char siz; int ppa; union { RootP rootp; DirP dirp; DataP datap; IdxP idxp; }; } attribute ((packed)) Page ; DataRec records[drec]; } attribute ((packed)) DataP ; long ts; int val1; } attribute ((packed)) DataRec; long lastts; IdxRec records[irec]; } attribute ((packed)) IdxP ; 8-22
23 Απαριθμητοί Τύποι (Enumerations) Απαριθμητός Τύπος (Enumeration): ορίζει μεταβλητές των οποίων η τιμή μπορεί να ορίζεται, μεταξύ άλλων, από ένα προσδιορισμένο σύνολο σταθερών Π.χ., είδος κάρτας που επέλεξε ο χρήστης typedef enum {CLUBS, DIAMONDS, HEARTS, SPADES} CARD; CARD s = CLUBS; /* s είναι τώρα 0 (CLUBS) */ CARD s = 10; /* # OK, αλλά επικίνδυνο */ Παρατηρήσεις Όμοια σύνταξη με struct και union Tο s είναι στην ουσία μεταβλητή ακέραιου τύπου και τα CLUBS, DIAMONDS, HEARTS, και SPADES είναι συμβολικά ονόματα για τις ακέραιες τιμές 0, 1, 2, και
24 #include <stdio.h> typedef enum { CLUBS, DIAMONDS, HEARTS, SPADES } CARD; Απαριθμητοί Τύποι (Παράδειγμα) int main(void) { CARD s; s = CLUBS; /* s = 0 (CLUBS) */ printf("%d\n", s); } Ορισμός "σταθερών" ενός απαριθμητού τύπου Πλεονεκτήματα: a)δε χρειάζεται να δώσουμε 4 ξεχωριστά define b)δηλώνουμε ρητά (στον προγραμματιστή) ότι το CARD θα πρέπει να παίρνει μόνο αυτές τις 4 τιμές (0-3), εάν και δεν αυτό δεν ελέγχεται από τον μεταγλωττιστή. Σύνθεση Enum με struct & union s++; /* s = 1 (DIAMONDS)*/ enum {IKIND, DKIND} kind; printf("%d\n", s); union { s = SPADES; /* s = 3 (SPADES)*/ int i; printf("%d\n", s); double d; return 0; } u; } Number; 8-24
οµές (structures) και Eνώσεις (unions)
οµές (structures) και Eνώσεις (unions) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: οµές, φωλιασµένες δοµές, τρόποι δήλωσης δοµών, δοµές ως παράµετροι σε συναρτήσεις, δείκτες σε δοµές, χρήση
Δηάιεμε 8: Δνκέο, Ελώζεηο θαη Απαξηζκεηνί Τύπνη
Τκήκα Πιεξνθνξηθήο Παλεπηζηήκην Κύπξνπ ΕΠΛ132 Αξρέο Πξνγξακκαηηζκνύ II Δηάιεμε 8: Δνκέο, Ελώζεηο θαη Απαξηζκεηνί Τύπνη (Κεθάιαην 16, KNK-2ED) Δεκήηξεο Ζεϊλαιηπνύξ http://www.cs.ucy.ac.cy/courses/epl132
Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 5: Απαριθμητές (enums) Δομές (structures)και Ενώσεις (unions) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Απαριθμητές - Δομές, φωλιασμένες δομές, τρόποι δήλωσης
Προγραμματισμός Η/Υ. Ενότητα 9: Ειδικά θέματα Δομών Δεδομένων
Προγραμματισμός Η/Υ Ενότητα 9: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση της έννοιας της Δομής
Διάλεξη 6: Δείκτες και Πίνακες
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 6: Δείκτες και Πίνακες (Κεφάλαιο 12, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 6-1 Περιεχόμενο
Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε
ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED)
ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED) Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου http://www.cs.ucy.ac.cy/courses/epl232 Το μάθημα αυτό δομήθηκε βάση
Διαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 13 η Δομές & Ενώσεις Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή
Διάλεξη 5: Δείκτες και Συναρτήσεις
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 5: Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 5-1 Περιεχόμενο
Η γλώσσα C. Νέοι και σύνθετοι τύποι (typedef & structs & unions)
Η γλώσσα C Νέοι και σύνθετοι τύποι (typedef & structs & unions) typedef (I) Η C επιτρέπει να δώσουμε οποιαδήποτε ονομασία μας αρέσει σε έναν υπάρχων τύπο. Π.χ. δεν μου αρέσει το int, char κλπ. Μπορώ να
Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Εγγραφές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η Ανάγκη Ομαδοποίησης Πολλές φορές έχουμε πληροφορίες διαφορετικού τύπου οι οποίες όμως έχουν μεγάλη
Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ορισμός
Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Δομές Δεδομένων
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 4: Δείκτες και Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Πίνακες Δεικτών, Παραδείγματα, Πολυδιάστατοι πίνακες Πέρασμα παραμέτρων σε προγράμματα C Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες:
Δομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Προγραμματισμός Ι. Δομές & Ενώσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών
Δομές & Ενώσεις Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι 1 Δομές (Structures) Δομή (structure) στη C είναι μία συλλογή από μεταβλητές οποιουδήποτε
Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II (Κεφάλαια 25.2, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132
Δομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Προγραμματισμός Δομές Δεδομένων
Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων (Data Structures) Καινούργιοι τύποι δεδομένων που αποτελούνται από την ομαδοποίηση υπαρχόντων τύπων δεδομένων Ομαδοποίηση πληροφορίας που
Προγραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα
Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος
Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,
Δομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Η γλώσσα C. Νέοι και σύνθετοι τύποι (typedef & structs & unions)
Η γλώσσα C Νέοι και σύνθετοι τύποι (typedef & structs & unions) typedef (I) Η C επιτρέπει να δώσουμε οποιαδήποτε ονομασία μας αρέσει σε έναν υπάρχων τύπο. Π.χ. δεν μου αρέσει το int, char κλπ. Μπορώ να
Δομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Προγραμματισμός ΙI (Θ)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017
Η γλώσσα προγραμματισμού C
Η γλώσσα προγραμματισμού C Οι δείκτες στη C Η έννοια του δείκτη Την έννοια του δείκτη τη συναντήσαμε σε προηγούμενα μαθήματα. Η συνάρτηση scanf(), καταχωρίζει τιμές σε μεταβλητές χρησιμοποιώντας τον τελεστή
Προγραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Ανάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις της C Τα Λοιπά Στοίβα και μηχανισμός κλήσης Αναδρομικές συναρτήσεις Στατικές μεταβλητές Άλλα θέματα Μηχανισμός
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 6: Διαχείριση Μνήμης & Δυναμικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυναμικές Δομές Δεδομένων Γενικά Δυναμική Δέσμευση/Αποδέσμευση Μνήμης Δομή τύπου structure
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 10 Ο. Δομές Ενώσεις Απαριθμητοί τύποι δεδομένων ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΣΙΝΑΤΚΑΣ Ι ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 10 Ο Δομές Ενώσεις Απαριθμητοί τύποι δεδομένων Εισαγωγή Οι βασικοί τύποι δεδομένων στην C είναι char, int, float και double Το επόμενο βήμα δεδομένων
ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ
ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 10 Τύποι Δεδομένων και Εγγραφές Θέματα Διάλεξης Στην ενότητα
Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως
Διάλεξη 19η: Δομές δεδομένων
Διάλεξη 19η: Δομές δεδομένων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Δομές CS100, 2016-2017 1 / 13 Δομές Δεδομένων (Data Structures) Καινούργιοι
οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές.
οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές. ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Παράδειγµα Πρόβληµα: Να γράψετε
Προγραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15
Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7
Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ❶ Προετοιµασία για το 1 ο Εργαστήριο
Διαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 14 η Διαχείριση Μνήμης και Δομές Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη
Δομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 7 η Πίνακες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου
Προγραμματισμό για ΗΜΥ
ΕΠΛ 34: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 12 Πίνακες εικτών (Pointers Arrays) Θέματα ιάλεξης Στην ενότητα
Προγραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 13-1 Περιεχόμενο
Προγραμματισμός ΙI (Θ)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017
Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 3 Επανάληψη Γ μέρος 1. Στόχος του εργαστηρίου Στόχος του τρίτου εργαστηρίου είναι
Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις
Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις Ενώσεις δεδομένων (union) τι και γιατί Συσκευές με μικρή μνήμη => ανάγκη εξοικονόμησης πόρων Παρατήρηση: αχρησιμοποίητη μνήμη. Έστω
ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες
Σκοπός της Άσκησης ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση των δεικτών (pointers). Οι δείκτες δίνουν την δυνατότητα σε προγράμματα να προσομοιώνουν τη
Δεδομένα, Τύποι και Τιμές
Προγραμματισμός Η/Υ Ι Δεδομένα, Τύποι και Τιμές ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Οι περισσότερες προγραμματιστικές εργασίες περιλαμβάνουν χειρισμό
ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Εισαγωγή ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ Ένα πρόγραμμα σε C περιλαμβάνει μια ή περισσότερες συναρτήσεις
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 3: Δείκτες και Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αριθμητική Δεικτών Δείκτες και Πίνακες Παραδείγματα Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Μεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 13 Πίνακες & Συναρτήσεις Εισαγωγή Στις προηγούμενες
ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ
ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Βασικοί Τύποι Πίνακες (μέρος 1) Συμβολοσειρές Ο Προεπεξεργαστής Τελευταία ενημέρωση: Σεπτέμβριος 2016 Εισαγωγή - 2 short:
Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή
Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές
Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 3: Δείκτες (pointers) και Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Αριθμητική Δεικτών - Δείκτες και Πίνακες - Παραδείγματα Διδάσκων: Παναγιώτης
Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)
Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513;
Προγραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15
είκτες και Πίνακες (2)
είκτες και Πίνακες (2) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πολυδιάστατοι πίνακες Πέρασµα παραµέτρων σε προγράµµατα C ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1-1 Πίνακες εικτών Πίνακας δεικτών είναι
Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"
Πίνακες: μια σύντομη εισαγωγή Πίνακες χαρακτήρων: τα "Αλφαριθμητικά" Πίνακες(Arrays): έννοιες και ορισμοί Ορισμός: Πίνακας (array) = σύνολο μεταβλητών του ιδίου τύπου (int, float, char,...) με ένα κοινό
int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι
Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι
Ανάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις (Functions) Οι βασικές λειτουργικές ενότητες ενός προγράμματος C Καλούνται με ορίσματα που αντιστοιχούνται σε
Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and
Ανάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Δομές Δεδομένων και Κυρίως Πρόγραμμα Δομές δεδομένων εκτός από πίνακες: Structs Unions Enums Κυρίως πρόγραμμα Παράμετροι που
Γλώσσες Προγραμματισμού
Γλώσσες Προγραμματισμού Διδάσκων: Ανδρέας Παπασαλούρος Ιστοσελίδα: http://www.samos.aegean.gr/math/andpapas/courses/pl/default.htm Πλατφόρμα ηλεκτρονικής μάθησης: http://myria.math.aegean.gr/moodle/ Πλατφόρμα
Μεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 9 Συναρτήσεις Μέρος II Θέματα ιάλεξης Μη- ομημένος
Διάλεξη 11η: Δείκτες, μέρος 1
Διάλεξη 11η: Δείκτες, μέρος 1 Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Pointers I CS100, 2016-2017
Μεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 12 Πολυδιάστατοι Πίνακες Πολυδιάστατοι πίνακες
Διάλεξη 14: Δομές Δεδομένων ΙΙI (Λίστες και Παραδείγματα)
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 14: Δομές Δεδομένων ΙΙI (Λίστες και Παραδείγματα) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 14-1 Περιεχόμενο
Διάλεξη 19: Χαμηλού Επιπέδου Προγραμματισμός I
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 19: Χαμηλού Επιπέδου Προγραμματισμός I (Κεφάλαιo 25.1, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132
Διάλεξη 12η: Δείκτες, μέρος 2
Διάλεξη 12η: Δείκτες, μέρος 2 Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Pointers II CS100, 2016-2017
Διάλεξη 9η: Πίνακες (arrays)
Διάλεξη 9η: Πίνακες (arrays) Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Arrays CS100, 2016-2017 1 / 17
Προγραμματισμό για ΗΜΥ
ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 3 Εισαγωγή στην C Θέματα ιάλεξης Σύνταξη και Σημασιολογία
Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1
Δυναμική δέσμευση και αποδέσμευση μνήμης Προγραμματισμός II 1 lalis@inf.uth.gr Γιατί χρειάζεται η δυναμική μνήμη; Οι απαιτήσεις του προγράμματος σε μνήμη μπορεί να είναι άγνωστες την ώρα της συγγραφής
Προγραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 4: Τύποι Δεδομένων και τελεστές Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Ενδεικτική περιγραφή μαθήματος
ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.
Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C
Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Συναρτήσεις - Εξωτερικές μεταβλητές - Κανόνες εμβέλειας - Διάρκεια
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ενότητα 12 Δομές (Structures) Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αφαιρετικότητα Με τις συναρτήσεις επιτυγχάνουμε αφαιρετικότητα
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών
Διάλεξη 10: Δομές Δεδομένων Ι (Στοίβες & Ουρές)
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 10: Δομές Δεδομένων Ι (Στοίβες & Ουρές) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 10-1 Περιεχόμενο Διάλεξης
Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 7: Διαχείριση Μνήμης,Δυναμικές Δομές Δεδομένων, Αναδρομή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Δυναμικές Δομές Δεδομένων Γενικά - Δυναμική Δέσμευση/Αποδέσμευση
Διαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 8 η Δείκτες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου
Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011
Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include
Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες)
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 15-1 Περιεχόμενο
Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)
Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε
Προγραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 13: Σύνθετοι Τύποι Δεδομένων (Δομές) Σύνθετοι τύποι δεδομένων Συχνά τα δεδομένα ενός προγράμματος δεν είναι απλά κάποιοι μεμονωμένοι αριθμοί ή χαρακτήρες. Χρειάζεται να
6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ
6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ 6.1 Η Έννοια του Πίνακα Συχνά είναι προτιμότερο να αντιμετωπίζουμε ένα σύνολο μεταβλητών σαν ενότητα για να απλοποιούμε το χειρισμό τους. Έτσι οργανώνουμε σύνθετα δεδομένα σε
Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ
Επανάληψη για τις Τελικές εξετάσεις (Διάλεξη 24) Εισαγωγή Το μάθημα EPL032 έχει ως βασικό στόχο την επίλυση προβλημάτων πληροφορικής με την χρήση της γλώσσας προγραμματισμού C. Επομένως πρέπει: Nα κατανοήσετε
ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 6 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών
Διαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ενότητα 14 Δυναμική διαχείριση μνήμης Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Στατική δέσμευση μνήμης Με τη δήλωση απλών μεταβλητών
Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)
Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού
Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΣΥΝΑΡΤΗΣΕΙΣ ΣΤΗ C (1/3) +- Στη C χρησιμοποιούμε συχνα τις συναρτήσεις (functions),
Σε γενικές γραμμές, είναι καλή πρακτική να γράϕουμε προγράμματα C που αποτελούνται από πολλές και μικρές συναρτήσεις, παρά από λίγες και μεγάλες.
58 Δομή ενός προγράμματος C Συναρτήσεις Μία συνάρτηση C είναι ένα αυτόνομο, πακεταρισμένο τμήμα προγράμματος που ϕέρει σε πέρας μία διαδικασία η οποία έχει σαϕείς προδιαγραϕές εισόδου και εξόδου και συγκεκριμένο
Κεφάλαιο 2.1-2.4: Εισαγωγή στην C: (Διαλέξεις 3-4)
Κεφάλαιο 2.1-2.4: Εισαγωγή στην C (Διαλέξεις 3-4) Περιεχόμενα Εισαγωγή στην C: Σύνταξη και Σημασιολογία σχόλια μεταβλητές και σταθερές τύποι δεδομένων Μετά αυτές τις δυο διαλέξεις θα μπορείτε να γράψετε
Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ:
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: AEM: ΜΕΡΟΣ Α: ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΩΝ ΕΠΙΛΟΓΩΝ [15 µονάδες] ΣΗΜΑΝΤΙΚΕΣ ΔΙΕΥΚΡΙΝΙΣΕΙΣ: Επιλέξτε ΜΙΑ σωστή απάντηση για κάθε ερώτηση. Λάθος απαντήσεις βαθµολογούνται αρνητικά Σε ερωτήσεις που
ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης (Κεφάλαιο , KNK-2ED)
ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης (Κεφάλαιο 17.1-17.4, KNK-2ED) Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου http://www.cs.ucy.ac.cy/courses/epl232 Το μάθημα αυτό δομήθηκε
Περιεχόμενα. Πρόλογος... 17
Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για
Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 4: Δείκτες (pointers) και Πίνακες Δεικτών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Πίνακες Δεικτών - Πολυδιάστατοι πίνακες - Πέρασμα παραμέτρων σε προγράμματα
Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης
Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται
Η γλώσσα προγραμματισμού C Δυναμική διαχείριση μνήμης
Η γλώσσα προγραμματισμού C Δυναμική διαχείριση μνήμης Κατηγορίες μνήμης εκτελέσιμου προγράμματος Στις καθολικές και στατικές μεταβλητές οι χώροι μνήμης δεσμεύονται κατά την διάρκεια της μεταγλώττισης.
3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις
3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα