H ΓΛΩΣΣΑ C. Μάθηµα 12: υναµική έσµευση Μνήµης. ηµήτρης Ψούνης
|
|
- Εἰρήνη Κουρμούλης
- 7 χρόνια πριν
- Προβολές:
Transcript
1 H ΓΛΩΣΣΑ C Μάθηµα 12: υναµική έσµευση Μνήµης ηµήτρης Ψούνης
2 2 Περιεχόµενα Μαθήµατος 1. Στατική έσµευση Μνήµης 1. Η συνάρτηση malloc 2. Η συνάρτηση free 3. έσµευση Μεταβλητής 4. έσµευση Μονοδιάστατου Πίνακα 5. έσµευση ιδιάστατου Πίνακα Β. Ασκήσεις
3 3 1. Στατική έσµευση Μνήµης Οι τρόποι που έχουµε δει για να δηλώνουµε έναν πίνακα (άρα και µία συµβολοσειρά) είναι να δηλώσουµε εκ των προτέρων το µέγεθος του. Το γεγονός αυτό κάνει το πρόγραµµα µας να µην είναι πολύ ευέλικτο. Είναι συχνό, να καταλαβαίνουµε κατά τον χρόνο εκτέλεσης πόσο θα θέλουµε να είναι το µέγεθος του πίνακα µας. Ο τρόπος δήλωσης ενός πίνακα µε τον τρόπο αυτό, δεσµεύει στατικά τον χώρο µνήµης. Συνεπώς µε τον όρο στατική δέσµευση µνήµης αναφερόµαστε στην δήλωση µιας µεταβλητής µε τον συνηθισµένο τρόπο, π.χ.: int x; ή και στον συνηθισµένο τρόπο για την δήλωση ενός πίνακα, π.χ.: int pinakas[10];
4 4 1. Η συνάρτηση malloc Η συνάρτηση malloc: void *malloc(size_t size) εσµεύει δυναµικά τόσα bytes όσα και το όρισµα που της διοχετεύουµε. Έχει οριστεί στην βιβλιοθήκη συναρτήσεων: stdlib.h Επιστρέφει είτε έναν δείκτη στην αρχή του χώρου µνήµης που δεσµεύθηκε δυναµικά. Είτε την τιµή NULL, αν δεν βρέθηκε κατάλληλος χώρος µνήµης. Θα πρέπει πάντα να ελέγχουµε αν η mallocκατάφερε να δεσµεύσει τον χώρο και δεν επέστρεψε NULL Μέσω της συνάρτησης malloc, µπορούµε κατά τον χρόνο εκτέλεσης (όταν δηλαδή τρέχει το πρόγραµµα) να βρίσκουµε τον χώρο µνήµης που θα χρειαστούν οι µεταβλητές.
5 5 2. Η συνάρτηση free Η συνάρτηση free: void free(void *ptr) Απελευθερώνει τα bytes που είχαµε δεσµεύσει δυναµικά µε την συνάρτηση malloc, στην αρχή των οποίων δείχνει ο δείκτης ptr. Έχει οριστεί στην βιβλιοθήκη συναρτήσεων: stdlib.h Θα πρέπει να γνωρίζουµε ότι ΠΑΝΤΑ θα πρέπει να απελευθερώνουµε όση µνήµη δεσµεύσαµε δυναµικά µε την malloc. Θεωρείται σηµαντικό προγραµµατιστικό λάθος να µην αποδεσµεύουµε τον χώρο που έχουµε δεσµεύσει δυναµικά µε την malloc κάνοντας κατάλληλη χρήση της εντολής free.
6 6 3. έσµευση Μεταβλητής Για να δεσµεύσουµε µνήµη για µια µεταβλητή, δηλώνουµε έναν δείκτη στην µεταβλητή. Έπειτα κάνουµε χρήση της mallocκαι δεσµεύουµε τόσο χώρο όσο πιάνει ο αντίστοιχος τύπος δεδοµένων στην µνήµη. Για να το κάνουµε αυτό χρησιµοποιούµε τον τελεστή sizeof Χρησιµοποιούµε κανονικά την µεταβλητή µας µέσω του δείκτη. εν ξεχνάµε ποτέ να αποδεσµεύσουµε τον χώρο που δεσµεύσαµε µε την free. Ας δούµε ένα παράδειγµα για την χρήση µε µία µεταβλητή: int *p; //Εδώ δηλώνουµε τον δείκτη στην µεταβλητή. p=malloc(sizeof(int)); // εσµεύουµε δυναµικά την µνήµη για τον ακέραιο *p=4; //Εδώ µπορούµε να κάνουµε χρήση του ακεραίου free(p); //αποδεσµεύουµε τον χώρο µνήµης
7 7 3. έσµευση Μεταβλητής Τελείως αντίστοιχα θα δουλεύαµε και για έναν float: float *p; //Εδώ δηλώνουµε τον δείκτη στην µεταβλητή. p=malloc(sizeof(float)); // εσµεύουµε δυναµικά την µνήµη για τον float *p=10.4; //Εδώ µπορούµε να κάνουµε χρήση του float free(p); //αποδεσµεύουµε τον χώρο µνήµης ή για έναν long long *p; //Εδώ δηλώνουµε τον δείκτη στην µεταβλητή. p=malloc(sizeof(long)); // εσµεύουµε δυναµικά την µνήµη για τον long *p=1132; //Εδώ µπορούµε να κάνουµε χρήση του long free(p); //αποδεσµεύουµε τον χώρο µνήµης Και εντελώς όµοια µπορούµε να κάνουµε το ίδιο και για οποιοδήποτε άλλο τύπο δεδοµένων
8 8 3. έσµευση Μεταβλητής Πρέπει πάντα να ελέγχουµε αν η εκτέλεση της mallocπέτυχε (δηλαδή ότι δεσµευτηκεο απαιτούµενος χώρος στη µνήµη) Αυτό γίνεται µε τον έλεγχο της επιστρεφόµενης τιµής: Αν είναι NULL τότε είχαµε αποτυχία στη δέσµευση της µνήµης Αν δεν είναι NULL τότε όλα πήγαν καλά. Θα ακολουθήσουµε και την ακόλουθη µορφή όταν θα δεσµεύουµε τη µνήµη µε την malloc p=malloc(sizeof(int) if (!p) { printf( Apotyxia Desmeysis Mnimis ); exit(0); } Όπου ελέγχουµε επιτόπου αν δεσµεύτηκε χώρος στη µνήµη και σε περίπτωση αποτυχίας προκαλούµε βίαιο τερµατισµό στο πρόγραµµά µας.
9 9 3. έσµευση Μεταβλητής Συνολικά λοιπόν ένα πρόγραµµα που αναδεικνύει την δυναµική δέσµευση µνήµης για µία µεταβλητή είναι το ακόλουθο /*malloc_var.c Deixnei pws desmeuoume xwro gia mia metavliti */ #include <stdio.h> #include <stdlib.h> main() { int *p; p=malloc(sizeof(int)); if (!p) { printf("adynamia desmeusis mnimis"); exit(0); } printf("dwse enan akeraio arithmo: "); scanf("%d",p); printf("pliktrologisate %d",*p); } free(p);
10 10 3. έσµευση Μεταβλητής Ο τρόπος που διαχειριστήκαµε την µεταβλητή (δήλωση δείκτη, δέσµευση χώρου, ανάθεση τιµής) αντιστοιχεί στην εξής εικόνα της µνήµης: είκτης p 5 Ο τρόπος χρήσης είναι ελαφρά ανισόρροπος. Η χρήση της δυναµικής δέσµευσης µνήµης γίνεται συνήθως για τους πίνακες και όχι για µεταβλητές.
11 11 4. έσµευση Μονοδιάστατου Πίνακα Η πραγµατική χρησιµότητα της δυναµικής δέσµευσης µνήµης είναι η δυναµική δέσµευση µνήµης για έναν πίνακα. Κάνουµε χρήση της mallocκαι δεσµεύουµε τόσο χώρο όσο πιάνει ο αντίστοιχος τύπος δεδοµένων (επί) το πλήθος των θέσεων του πίνακα Για να το κάνουµε αυτό χρησιµοποιούµε τον τελεστή sizeof Χρησιµοποιούµε κανονικά τον πίνακά µας όπως έχουµε µάθει. εν ξεχνάµε ποτέ να αποδεσµεύσουµε τον χώρο που δεσµεύσαµε µε την free. Βλέπουµε ένα παράδειγµα µε πίνακα ακεραίων: int *p; //Εδώ δηλώνουµε τον δείκτη σε ακέραια µεταβλητή. p=malloc(sizeof(int)*10); // εσµεύουµε δυναµικά χώρο για πίνακα 10 ακεραίων p[3]=5; //Εδώ κάνουµε χρήση του πίνακα όπως έχουµε µάθει free(p); //αποδεσµεύουµε τον χώρο µνήµης Και αντίστοιχα δουλεύουµε για οποιοδήποτε άλλο τύπο δεδοµένων
12 12 4. έσµευση Μονοδιάστατου Πίνακα Το ακόλουθο πρόγραµµα επιδεικνύει έναν συνήθη κώδικα για την δυναµική δέσµευση ενός µονοδιάστατου πίνακα: /*malloc_1d-array.c Deixnei pws desmeuoume xwro gia enan monodiastato pinaka */ #include <stdio.h> #include <stdlib.h> main() { int *p; //Dilwsi deikti int i,n; /* Diavasma Diastasis Pinaka */ printf("dwse ti diastasi tou pinaka: "); scanf("%d",&n); συνεχίζεται...
13 13 4. έσµευση Μονοδιάστατου Πίνακα /* Dynamiki Desmeysi mnimis */ p=malloc(sizeof(int)*n); if (!p) { printf("adynamia desmeusis mnimis"); exit(0); } /* Kapoios Ypologismos ston pinaka */ for (i=0; i<n; i++) { p[i]=i*i*i; printf("\np[%d]=%d",i,p[i]); } } /* Apodesmeysi Mnimis */ free(p);
14 14 4. έσµευση Μονοδιάστατου Πίνακα Ο τρόπος που διαχειριστήκαµε την δέσµευση του πίνακα αντιστοιχεί στην εξής εικόνα της µνήµης (π.χ. αν ο χρήστης εισήγαγε το Ν=4 και τις τιµές 5,2,3,3) φαίνεται στο σχήµα: Ν είκτης p Και αντιστοιχεί στην κωδικοποίηση του πίνακα Ο τρόπος χρήσης είναι ελαφρά ανισόρροπος. Η χρήση της δυναµικής δέσµευσης µνήµης γίνεται συνήθως για τους πίνακες και όχι για µεταβλητές.
15 15 4. έσµευση Μονοδιάστατου Πίνακα Καταλαβαίνουµε ότι µε τον τρόπο αυτό µπορούµε να δεσµεύσουµε όσο χώρο θέλουµε κατά τον χρόνο εκτέλεσης. Π.χ. Μπορεί ο χρήστης να εισάγει ότι θέλει έναν πίνακα 10 ακεραίων, οπότε εµείς προγραµµατιστικά µπορούµε να δεσµεύσουµε ακριβώς όσα δεδοµένα χρειαζόµαστε. Αυτό ακριβώς είναι η δυναµική δέσµευση µνήµης σε αντίθεση µε την στατική δέσµευση µνήµης που καθορίζουµε κατά το χρόνο µεταγλώττισης ποιο θα είναι το µέγεθος του πίνακα. Αυτό είναι ιδιαίτερα χρήσιµο και µε τις συµβολοσειρές που το µέγεθος τους µπορεί να είναι µεταβλητό και δεν θέλουµε να κάνουµε καταχρήσεις µε την µνήµη µας.
16 5. έσµευση ιδιάστατου Πίνακα 16 Αντίστοιχα µπορούµε να εργαστούµε για έναν διδιάστατο πίνακα. Ένας διδιάστατοςπίνακας µπορεί να ειδωθεί ως ένας πίνακας που περιέχει µονοδιάστατους πίνακες: pin Ν=6 στήλες pin[0] pin[1] pin[0][4] pin[2] M=7 γραµµές pin[3] pin[4] pin[3][3] pin[5] pin[6] pin[6][0]
17 17 5. έσµευση ιδιάστατου Πίνακα Με άλλα λόγια θέλουµε έναν πίνακα (pin) του οποίου κάθε στοιχείο θα είναι δείκτης! Έτσι αντίστοιχα µε το γεγονός ότι για να δεσµεύσουµε δυναµικά έναν πίνακα ακεραίων, δηλώνουµε έναν δείκτη σε ακέραιο και κάνουµε δέσµευση Ν ακεραίων. Έτσι για να δεσµεύσουµε δυναµικά έναν πίνακα δεικτών ακεραίων, θα δηλώσουµε έναν δείκτη σε δείκτη ακεραίων και κάνουµε δέσµευση Μ δεικτών ακεραίων! Ο δείκτης σε δείκτη ακεραίου θα αναφέρεται ως διπλός δείκτης και θα δηλώνεται µε την εντολή: int **p; Η δέσµευση θα γίνεται µε τις ακόλουθες εντολές: p=malloc(sizeof(int*)*m); for (i=0; i<m; i++) p[i]=malloc(sizeof(int)*n); Και η αποδέσµευση θα γίνει µε τις εντολές: for (i=0; i<m; i++) free (p[i]); free(p);
18 18 5. έσµευση ιδιάστατου Πίνακα Το ακόλουθο πρόγραµµα επιδεικνύει έναν συνήθη κώδικα για την δυναµική δέσµευση ενός διδιάστατου πίνακα: *malloc_2d-array.c Deixnei pws desmeuoume xwro gia enan didiastato pinaka */ #include <stdio.h> #include <stdlib.h> main() { int **p; //Dilwsi diplou deikti-pinaka int i,j,m,n; /* Diavasma Diastasewn Pinaka */ printf("dwse to plithos twn grammwn tou pinaka: "); scanf("%d",&m); printf("dwse to plithos twn stilwn tou pinaka: "); scanf("%d",&n); συνεχίζεται...
19 19 5. έσµευση ιδιάστατου Πίνακα /* Dynamiki Desmeysi mnimis */ p=malloc(sizeof(int*)*m); if (!p) { printf("adynamia desmeusis mnimis"); exit(0); } for (i=0; i<m; i++) { p[i]=malloc(sizeof(int)*n); if (!p[i]) { printf("adynamia desmeusis mnimis"); exit(0); } } συνεχίζεται...
20 20 5. έσµευση ιδιάστατου Πίνακα /* Kapoios Ypologismos ston pinaka */ for (i=0; i<m; i++) { for (j=0; j<n; j++) { p[i][j]=1+(i+j)%5; printf("%2d ",p[i][j]); } printf("\n"); } } /* Apodesmeysi Mnimis */ for (i=0; i<m; i++) free (p[i]); free(p);
21 21 Γ. Ασκήσεις 1. Χώρος Αποθήκευσης ιδιάστατου Πίνακα Κατασκευάστε ένα πρόγραµµα C το οποίο να κάνει µια µελέτη του χώρου αποθήκευσης ενός διδιάστατου πίνακα: Να ζητάει από τον χρήστη να εισάγει το πλήθος των γραµµών (Μ) και το πλήθος των στηλών (Ν). Να δεσµεύει δυναµικά τον χώρο αποθήκευσης για έναν πίνακα double ΜxN Να υπολογίζει το µέγεθος σε bytes που απαιτήθηκαν για την αποθήκευση του πίνακα και να τυπώνει το αποτέλεσµα Να αποδεσµεύει τον χώρο µνήµης που δεσµεύθηκε δυναµικά.
22 22 Γ. Ασκήσεις 2. Κάτω Τριγωνικός Πίνακας Στα µαθηµατικά, ένας κάτω τριγωνικός πίνακας, είναι ένας πίνακας διάστασης NxNπου τα στοιχεία κάτω από την κύρια διαγώνιο είναι ίσα µε το 0. Για παράδειγµα ο ακόλουθος πίνακας είναι ένας 4x4 κάτω τριγωνικός πίνακας: Α Να κατασκευαστεί ένα πρόγραµµα το οποίο να διαχειρίζεται κάτω τριγωνικούς πίνακες: Να δεσµεύει στατικά και να δηλώνει έναν κάτω τριγωνικό πίνακα Α διάστασης ΝxN (το Ν να εισάγεται από το χρήστη µε τιµή 5..20). Να αρχικοποιεί τα στοιχεία του πίνακα µε τυχαίους αριθµούς στο εύρος [1..9] Να δεσµεύει δυναµικά έναν κάτω τριγωνικό πίνακα Β διάστασης ΝxN. Προσοχή! Να δεσµευτεί χώρος µόνο για τα στοιχεία του πίνακα και όχι για τα στοιχεία που γνωρίζουµε ότι δεν είναι πάντα µηδενικά!
23 23 Γ. Ασκήσεις 3. Κάτω Τριγωνικός Πίνακας (συνέχεια) Να επεκταθεί το πρόγραµµα της προηγούµενης εφαρµογής έτσι ώστε: 1. Να αντιγράφονται τα στοιχεία του πίνακα Α στον πίνακα Β. 2. Να γίνεται εκτύπωση των στοιχείων των δύο πινάκων.
24 24 Γ. Ασκήσεις 4. Ένας Πίνακας από Λέξεις Να γραφεί πρόγραµµα το οποίο θα διαβάζει ακριβώς 10 λέξεις και θα τις αποθηκεύει σε µία δυναµική δοµή δεδοµένων: 1. Να δηλώνει έναν πίνακα Ν=10 συµβολοσειρών (χωρίς να δεσµεύεται χώρος για κάθε συµβολοσειρά) 2. Να διαβάζονται οι διαδοχικά οι λέξεις µε τον εξής τρόπο: 1. Να αποθηκεύεται σε έναν προσωρινό χώρο µνήµης 2. Να ελέγχεται ότι ο χρήστης έχει εισάγει λέξη. Στην εφαρµογή αυτή ως λέξη εννοούµε µία συµβολοσειρά που αποτελείται από µόνο µικρούς λατινικούς χαρακτήρες (χρησιµοποιείστε την συνάρτηση που κατασκευάσαµε στο «Μάθηµα 10: Χαρακτήρες και Συµβολοσειρές Εφαρµογή 5» ). Σε αντίθετη περίπτωση να τερµατίζει το πρόγραµµα. 3. Να δεσµεύεται χώρος στον πίνακα σύµφωνος µε το µήκος της λέξης (χρησιµοποιείστε τη συνάρτηση που κατασκευάσαµε στο «Μάθηµα 10: Χαρακτήρες και Συµβολοσειρές Εφαρµογή 1»). 4. Να αντιγράφεται η συµβολοσειρά στην αντίστοιχη θέση του πίνακα (χρησιµοποιείστε τη συνάρτηση που κατασκευάσαµε στο «Μάθηµα 10: Χαρακτήρες και Συµβολοσειρές Εφαρµογή 2»). 3. Να γίνεται εκτύπωση των 10 λέξεων που διαβάστηκαν 4. Να αποδεσµεύεται ο χώρος στη µνήµη.
H ΓΛΩΣΣΑ C. Μάθηµα 7: Πίνακες. ηµήτρης Ψούνης
H ΓΛΩΣΣΑ C Μάθηµα 7: Πίνακες ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Πίνακες 1. Μονοδιάστατοι Πίνακες 1. ήλωση Πίνακα 2. Παράδειγµα Χρήσης Πίνακα 3. Αρχικοποίηση πίνακα κατά τη δήλωση 4. Στατική έσµευση
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ενότητα 14 Δυναμική διαχείριση μνήμης Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Στατική δέσμευση μνήμης Με τη δήλωση απλών μεταβλητών
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε
Διαβάστε περισσότεραΔιάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1
Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1 Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μνήμη I CS100,
Διαβάστε περισσότεραH ΓΛΩΣΣΑ C. Μάθηµα 8: είκτες. ηµήτρης Ψούνης
H ΓΛΩΣΣΑ C Μάθηµα 8: είκτες ηµήτρης Ψούνης . Παρατηρήσεις 1. ιοχέτευση πίνακα ως όρισµα σε συνάρτηση 2. Η Σταθερά NULL Ασκήσεις 2 Περιεχόµενα Μαθήµατος Α. είκτες 1. Η µνήµη του υπολογιστή 2. Η έννοια του
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού C Δυναμική διαχείριση μνήμης
Η γλώσσα προγραμματισμού C Δυναμική διαχείριση μνήμης Κατηγορίες μνήμης εκτελέσιμου προγράμματος Στις καθολικές και στατικές μεταβλητές οι χώροι μνήμης δεσμεύονται κατά την διάρκεια της μεταγλώττισης.
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 14 η Διαχείριση Μνήμης και Δομές Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη
Διαβάστε περισσότεραΟι δείκτες στη γλώσσα C
Οι δείκτες στη γλώσσα C Δείκτης είναι µία µεταβλητή η οποία περιέχει σαν τιµή µία διεύθυνση της µνήµης Η τιµή ενός δείκτη δείχνει σε µία άλλη µεταβλητή, η οποία µπορεί να προσεγγισθεί έµµεσα µε τους ειδικούς
Διαβάστε περισσότεραint array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι
Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι
Διαβάστε περισσότεραΚεφάλαιο 8.7. Πολυδιάστατοι Πίνακες ( ιάλεξη 18) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες ( ιάλεξη 18) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Πολυδιάστατοι πίνακες Μέχρι τώρα µιλούσαµε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες,
Διαβάστε περισσότεραΕισαγωγή στον δομημένο προγραμματισμό
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 12 η : Δυναμική Ανάθεση Θέσης Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής
Διαβάστε περισσότεραΑνάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Δυναμική Κατανομή Μνήμης Δυναμική εκχώρηση μνήμης Σωρός Συναρτήσεις malloc(), calloc(), realloc(), free() Δυναμικές δομές
Διαβάστε περισσότεραΑ' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού C
Η γλώσσα προγραμματισμού C Οι δείκτες στη C Η έννοια του δείκτη Την έννοια του δείκτη τη συναντήσαμε σε προηγούμενα μαθήματα. Η συνάρτηση scanf(), καταχωρίζει τιμές σε μεταβλητές χρησιμοποιώντας τον τελεστή
Διαβάστε περισσότεραΚεφάλαιο Πίνακες Ι. ( ιάλεξη 15) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 8.1-8.3 Πίνακες Ι ( ιάλεξη 15) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 15-1 Πίνακες (Arrays) Σε αυτή την ενότητα θα µιλήσουµε για την δοµή δεδοµένων Πίνακας: 1. Εισαγωγή & Σύνταξη 2. ήλωση Πίνακα 3. Αρχικοποίηση
Διαβάστε περισσότεραΠίνακες. 1 Πίνακες. 30 Μαρτίου 2014
Πίνακες 0 Μαρτίου 014 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα του συγκεκριμένου τύπου. Στην περίπτωση που θέλουμε
Διαβάστε περισσότεραΚεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (
Διαβάστε περισσότεραΚεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)
Κεφάλαιο 9.1-9.2 Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) ( ιάλεξη 19) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1) Strings στη C Ένα string είναι µία ακολουθία αλφαριθµητικών χαρακτήρων, σηµείων στίξης κτλ. Π.χ.
Διαβάστε περισσότεραΚεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)
Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513;
Διαβάστε περισσότεραΕΡΓΑΣΤΗΡΙΟ 8: Πολυδιάστατοι Πίνακες και Δυναμική Δέσμευση Μνήμης
ΕΡΓΑΣΤΗΡΙΟ 8: Πολυδιάστατοι Πίνακες και Δυναμική Δέσμευση Μνήμης Στο εργαστήριο αυτό θα μελετήσουμε τον τρόπο με τον οποίο ορίζουμε στην C πολυδιάστατους πίνακες και θα δούμε πώς μπορούμε να δεσμεύουμε
Διαβάστε περισσότεραΔιαδικαστικός Προγραμματισμός
ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Διαδικαστικός Προγραμματισμός Α Εξάμηνο Μάθημα 7 ο : Δείκτες Στόχοι μαθήματος Να κατανοήσετε τη δυνατότητα χρήσης διευθύνσεων ως τιμών δεδομένων. Να μπορείτε να χρησιμοποιείτε
Διαβάστε περισσότεραΔυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1
Δυναμική δέσμευση και αποδέσμευση μνήμης Προγραμματισμός II 1 lalis@inf.uth.gr Γιατί χρειάζεται η δυναμική μνήμη; Οι απαιτήσεις του προγράμματος σε μνήμη μπορεί να είναι άγνωστες την ώρα της συγγραφής
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 7 η Πίνακες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου
Διαβάστε περισσότεραΚεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)
Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε
Διαβάστε περισσότεραυναµικές οµές εδοµένων
υναµικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: υναµικές οµές εδοµένων Γενικά υναµική έσµευση Μνήµης οµή τύπου structure αυτοαναφορικές δοµές Η δήλωση typedef στη C Αναπαράσταση
Διαβάστε περισσότεραΔομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Διαχείριση
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση της C είκτες Πίνακες
Διαβάστε περισσότεραH ΓΛΩΣΣΑ C. Μάθηµα 17: Είσοδος/Έξοδος: Επικοινωνία µε το Λειτουργικό Σύστηµα. ηµήτρης Ψούνης
H ΓΛΩΣΣΑ C Μάθηµα 17: Είσοδος/Έξοδος: Επικοινωνία µε το Λειτουργικό Σύστηµα ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Σύστηµα 1. Γενικά 2. Λειτουργικό Σύστηµα 3. Ορίσµατα Γραµµής Εντολής 1. Ορισµός της main
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων
Διαβάστε περισσότεραΜεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 12 Πολυδιάστατοι Πίνακες Πολυδιάστατοι πίνακες
Διαβάστε περισσότεραΓλώσσα Προγραμματισμού C
Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas
Διαβάστε περισσότεραΜεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 9 Συναρτήσεις Μέρος II Θέματα ιάλεξης Μη- ομημένος
Διαβάστε περισσότεραΟρισμός μεταβλητών δεικτών και αρχικοποίηση
Ορισμός μεταβλητών δεικτών και αρχικοποίηση Η έννοια του δείκτη Κάθε μεταβλητή σχετίζεται με μια θέση στην κύρια μνήμη του Η/Υ η οποία έχει τη δική της ξεχωριστή διεύθυνση Ο δείκτης είναι μια μεταβλητή
Διαβάστε περισσότεραΔιαδικαστικός Προγραμματισμός
Διαδικαστικός Προγραμματισμός Ενότητα 7: Δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραlab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή
ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 00497 -Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. -Σωστά τερµατίζετε
Διαβάστε περισσότεραΚεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 8.7 Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 17-1 Εισαγωγή Στις προηγούµενες διαλέξεις µάθαµε πώς να δηλώνουµε, αρχικοποιούµε και να επεξεργαζόµαστε πίνακες. Σήµερα θα µελετήσουµε
Διαβάστε περισσότεραΔιάλεξη 9: Δυναμική Δέσμευση Μνήμης
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 9: Δυναμική Δέσμευση Μνήμης (Κεφάλαιο 17.1-17.4, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 9-1
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Διαβάστε περισσότεραSheet1_2. - Δεν απελευθερώνεις τη δυναµικά δεσµευµένη µνήµη. - Η έξοδος του προγράµµατός σου δεν είναι ακριβώς όπως ζητούσε η άσκηση.
Sheet1_2 AEM 0001 0002 0003 0004 0006 COMMENTS - Segmentation fault λόγω λάθους στην αναδροµή. Δες τη λύση, αλλά προσπάθησε να το ξανακάνεις και στο σπίτι για εξ - Πρόσεχε λίγο τη στοίχιση - Καλή δουλειά
Διαβάστε περισσότεραH ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης
H ΓΛΩΣΣΑ C Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Θεωρία 1. Κύκλος Ανάπτυξης Προγράµµατος 1. Συγγραφή και Μεταγλώττιση ενός προγράµµατος 2. Εκτέλεση του προγράµµατος
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files)
ΑΡ Χ Ε Ι Α Κ Ε Ι Μ Ε Ν Ο Υ (text files) Αρχείο είναι μια συλλογή δεδομένων του ίδιου τύπου. Ενα αρχείο αποθηκεύεται στην περιφερειακή μνήμη (σκληρό δίσκο, δισκέττα). Τα αρχεία είναι μόνιμα. Τα δεδομένα
Διαβάστε περισσότεραΚεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C
Κεφάλαιο 9.1-9.2 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Ένα string είναι μία ακολουθία αλφαριθμητικών χαρακτήρων, σημείων στίξης κτλ. Π.χ. Hello How are you? 121212 *Apple#123*%
Διαβάστε περισσότεραΤμήμα Εφαρμοσμένης Πληροφορικής
Τμήμα Εφαρμοσμένης Πληροφορικής ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εξάμηνο Α' Φύλλο Ασκήσεων 5 ΠΙΝΑΚΕΣ Διδάσκοντες: Μάγια Σατρατζέμη, Αλέξανδρος Χατζηγεωργίου, Ηλίας Σακελλαρίου, Στέλιος Ξυνόγαλος Παρατηρήσεις:.
Διαβάστε περισσότεραιαφάνειες παρουσίασης #5 (β)
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης
Διαβάστε περισσότεραΕισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα
Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα Τελεστές συντομογραφίας Τελεστές σύντομης ανάθεσης += παράδειγμα: sum+=10; αντί για: sum = sum
Διαβάστε περισσότεραΗ Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 6 Εντολές Επανάληψης Ασκήσεις. Γιώργος Λαμπρινίδης
Η Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 6 Εντολές Επανάληψης Ασκήσεις Γιώργος Λαμπρινίδης lamprinidis@pharm.uoa.gr Ασκήσεις Εμπέδωσης στις εντολές επανάληψης Σε αυτό το εργαστήριο θα δούμε στην πράξη: Πόσο χρήσιμες
Διαβάστε περισσότεραΑ' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 4η σειρά ασκήσεων. Κοζάνη, 1 Νοεμβρίου 2007. Πρόγραμμα p4-1 (μεταγλώττιση και εκτέλεση) Πολύ απλό το πρώτο, για προθέρμανση! Πριν πατήσετε enter
Διαβάστε περισσότεραH ΓΛΩΣΣΑ C. Μάθηµα 15: Είσοδος/Έξοδος: Συναρτήσεις Εισόδου. ηµήτρης Ψούνης
H ΓΛΩΣΣΑ C Μάθηµα 15: Είσοδος/Έξοδος: Συναρτήσεις Εισόδου ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Ροές 1. Γενικά 2. Η ροή προκαθορισµένης εισόδου stdin 3. Η ροή προκαθορισµένης εξόδου stdout 4. Η ροή
Διαβάστε περισσότεραΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες
Σκοπός της Άσκησης ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση των δεικτών (pointers). Οι δείκτες δίνουν την δυνατότητα σε προγράμματα να προσομοιώνουν τη
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 6: Πίνακες Κώστας Κουκουλέτσος, Καθηγητής Τμήμα Η.Υ.Σ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότερα6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ
6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ 6.1 Η Έννοια του Πίνακα Συχνά είναι προτιμότερο να αντιμετωπίζουμε ένα σύνολο μεταβλητών σαν ενότητα για να απλοποιούμε το χειρισμό τους. Έτσι οργανώνουμε σύνθετα δεδομένα σε
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού C
Η γλώσσα προγραμματισμού C Οι δείκτες στη C Η έννοια του δείκτη Την έννοια του δείκτη τη συναντήσαμε σε προηγούμενα μαθήματα: είδαμε ότι συνάρτηση scanf(), καταχωρίζει τιμές σε μεταβλητές χρησιμοποιώντας
Διαβάστε περισσότεραΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων
Σκοπός της Άσκησης ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση µε τη χρήση πινάκων σαν διατάξεις αποθήκευσης δεδοµένων της Γλώσσας Προγραµµατισµού C. H συγκεκριµένη άσκηση
Διαβάστε περισσότεραΠεριεχόμενα. Πρόλογος... 21
Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31
Διαβάστε περισσότεραΗΥ-150. Πίνακες (Arrays)
ΗΥ-150 Προγραµµατισµός Πίνακες (Arrays) Προγραµµατισµός Εισαγωγικά Έστω ότι θέλουµε να αποθηκεύσουµε 100 ονόµατα φοιτητών και τους βαθµούς τους. Πως θα το κάναµε αυτό µε µεταβλητές; Πως θα µπορούσαµε να
Διαβάστε περισσότεραΠρογραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται
Διαβάστε περισσότεραΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 5ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Πίνακες 77 Στατική δομή αποθήκευσης δεδομένων (το μέγεθος ορίζεται εξαρχής και δεν αλλάζει) Αποθήκευση πολλών μεταβλητών
Διαβάστε περισσότεραΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ
ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Διαβάστε περισσότεραΗ γλώσσα C. Δείκτες και Διαχείριση Μνήμης (memory management)
Η γλώσσα C Δείκτες και Διαχείριση Μνήμης (memory management) 1 πείραμα = πολλές μετρήσεις Κατασκευάστε ένα πρόγραμμα το οποίο δέχεται ως είσοδο από το χρήστη τον συνολικό αριθμό μετρήσεων που έγιναν κατά
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 3: Συναρτήσεις printf() και scanf() Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΚεφάλαιο Πίνακες Ι. (Διάλεξη 16)
Κεφάλαιο 8.1-8.3 Πίνακες Ι (Διάλεξη 16) 15-1 Πίνακες (Arrays) Σε αυτή την ενότητα θα μιλήσουμε για την δομή δεδομένων Πίνακας: 1. Εισαγωγή & Σύνταξη 2. Δήλωση Πίνακα 3. Αρχικοποίηση Πίνακα 4. Πρόσβαση
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ενότητα 13 Αρχεία Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αρχεία Συλλογές δεδομένων Αποθηκεύονται στην περιφερειακή μνήμη π.χ. σκληρός
Διαβάστε περισσότεραΗΥ-150. Προγραµµατισµός. Πίνακες (Arrays)
ΗΥ-150 Προγραµµατισµός Πίνακες (Arrays) Προγραµµατισµός Εισαγωγικά Έστω ότι θέλουµε να αποθηκεύσουµε 100 ονόµατα φοιτητών και τους βαθµούς τους. Πως θα το κάναµε αυτό µε µεταβλητές; Πως θα µπορούσαµε να
Διαβάστε περισσότεραint a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009
Προγραµµατισµός Ι (ΗΥ10) ιάλεξη : Πίνακες, Αλφαριθµητικά Πίνακες Ο πίνακας είναι µια ειδική δοµή για την αποθήκευση µιας σειράς από δεδοµένα του ίδιου τύπου. Η δήλωσηενός πίνακα γίνεται όπως για µια κανονική
Διαβάστε περισσότεραΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ
ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τον ορισμό, τη δήλωση και τη χρήση των χαρακτήρων, συνεπώς και των αλφαριθμητικών, της Γλώσσας
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)
Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2) Κατηγορίες μνήμης εκτελέσιμου προγράμματος Στις καθολικές και στατικές μεταβλητές οι χώροι μνήμης δεσμεύονται κατά την διάρκεια της μεταγλώττισης. Οι
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως
Διαβάστε περισσότερα12. Συναρτήσεις (Μέρος ΙI)
Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων 12. Συναρτήσεις (Μέρος ΙI) Ιωάννης Κατάκης Σήμερα o Συναρτήσεις χωρίς παραμέτρους o Συναρτήσεις με παραμέτρους Χωρίς επιστροφή τιμής Με επιστροφή τιμής o Εμβέλεια
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό (με. τη C)
Υποχρεωτικό Μάθημα 3 ου Εξαμήνου Χειμερινό Εξάμηνο Ακ. Έτους 20 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Εισαγωγή στον Προγραμματισμό (με τη C) Διδάσκουσα: Φατούρου Παναγιώτα faturu [at] csd.uoc.gr
Διαβάστε περισσότερα3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις
3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα
Διαβάστε περισσότεραΔομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ορισμός
Διαβάστε περισσότεραΠρογραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 8: Πίνακες, Αλφαριθμητικά Πίνακες Ο πίνακας είναι μια ειδική δομή για την αποθήκευση μιας σειράς από δεδομένα του ίδιου τύπου. Η δήλωση ενός πίνακα γίνεται όπως για μια
Διαβάστε περισσότεραΠρογραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Προγραμματισμός H/Y Ενότητα 4: Δείκτες Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 6: Πίνακες και Δείκτες Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραH ΓΛΩΣΣΑ C. Μάθηµα 4: Τελεστές και η οµή Ελέγχου (if$else) ηµήτρης Ψούνης
H ΓΛΩΣΣΑ C Μάθηµα 4: Τελεστές και η οµή Ελέγχου (if$else) ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Τελεστές 1. Παραστάσεις στην C 1. Απλές Παραστάσεις 2. Σύνθετες Παραστάσεις 2. Ο τελεστής καταχώρησης
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 2:Αλφαριθμητικές Σειρές Χαρακτήρων (Strings)- Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγικές Έννοιες σε Strings(Αρχικοποίηση, Ανάγνωση & Εκτύπωση) Πίνακες από Strings
Διαβάστε περισσότεραΥπολογισμός - Συλλογή Δεδομένων - Πίνακες
Προγραμματισμός Η/Υ Ι Υπολογισμός - - Πίνακες ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συζητήσουμε τη χρήση του πίνακα (array) για τη συλλογή
Διαβάστε περισσότεραΕξοικ Εξ ε οικ ίωση ε με το το πρόγ ραμμα πρόγ DEV C++ Επικοι Επικ νωνία οι Χρήσ Χρήστη τη Υπολ Υπο ογισ λ τή
Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη Υπολογιστή Επικοινωνία με τον υπολογιστή Συναρτήσεις Εισόδου Οι συναρτήσεις εισόδου χρησιμοποιούνται για εισαγωγή γή δεδομένων στο πρόγραμμα. Ο ρόλος
Διαβάστε περισσότεραH ΓΛΩΣΣΑ C. Μάθηµα 16: Είσοδος/Έξοδος: Συναρτήσεις Eξόδου. ηµήτρης Ψούνης
H ΓΛΩΣΣΑ C Μάθηµα 16: Είσοδος/Έξοδος: Συναρτήσεις Eξόδου ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος A. Συναρτήσεις ροής εξόδου stdout 1. Γενικά 2. Η συνάρτηση putchar() 3. Οι συναρτήσεις putc() και fputc()
Διαβάστε περισσότεραΗ Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 4η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού C
Η γλώσσα προγραμματισμού C Πίνακες 2 διαστάσεων Δήλωση δισδιάστατου πινακα Οι δισδιάστατοι πίνακες χαρακτηρίζονται από τις γραμμές και τις στήλες (οι διαστάσεις) τους. Πίνακας 2 διαστάσεων: 3 γραμών και
Διαβάστε περισσότεραΔομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 3 Επανάληψη Γ μέρος 1. Στόχος του εργαστηρίου Στόχος του τρίτου εργαστηρίου είναι
Διαβάστε περισσότεραΑνάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού C
Η γλώσσα προγραμματισμού C Πίνακες 2 διαστάσεων Δήλωση δισδιάστατου πινακα Οι δισδιάστατοι πίνακες χαρακτηρίζονται από τις γραμμές και τις στήλες (οι διαστάσεις) τους. Πίνακας 2 διαστάσεων: 3 γραμμών και
Διαβάστε περισσότερα5ο σετ σημειώσεων - Δείκτες
5ο σετ σημειώσεων - Δείκτες 11 Ιουνίου 01 1 Γενικά Σύμφωνα με το γενικό μοντέλο υπολογιστή, ένας υπολογιστής είναι μία μηχανή που διαθέτει μία κεντρική μονάδα επεξεργασίας η οποία μπορεί μεταξύ άλλων να
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού C
Η γλώσσα προγραμματισμού C Πίνακες 2 διαστάσεων Δήλωση δισδιάστατου πινακα Οι δισδιάστατοι πίνακες χαρακτηρίζονται από τις γραμμές και τις στήλες (οι διαστάσεις) τους. Πίνακας 2 διαστάσεων: 3 γραμμών και
Διαβάστε περισσότεραΑ. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών
Διαβάστε περισσότεραΤεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C
Τεχνολογία και Προγραμματισμός Υπολογιστών Η γλώσσα προγραμματισμού C Με μια ματιά Τύπος Πίνακα Μεταβλητές με ενδείκτη Αλφαριθμητικά - Πίνακες Δισδιάστατος Πολυδιάστατος Πίνακας 2 2 Τύπος Πίνακα Σύνθετος
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΕπεξεργασία Αρχείων Κειµένου
Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά
Διαβάστε περισσότεραΔιάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Εισαγωγικές Έννοιες σε Strings - Πίνακες από Strings - Συναρτήσεις
Διαβάστε περισσότεραΠρογραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 14: Δυναμική Μνήμη Δυναμική μνήμη προγράμματος Πολλές φορές, δεν γνωρίζουμε εκ των προτέρων πόση μνήμη θα χρειαστεί το πρόγραμμα μας. Αν δεσμεύσουμε περισσότερη μνήμη
Διαβάστε περισσότεραΜεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 11 Πίνακες Ι Πίνακες (Arrays) Σε αυτή την ενότητα
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 4: Τύποι Δεδομένων και τελεστές Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ
Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία
Διαβάστε περισσότερα