Προγραμματισμός Ι. Δομές & Ενώσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών
|
|
- Ξενοφών Βέργας
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Δομές & Ενώσεις Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι 1
2 Δομές (Structures) Δομή (structure) στη C είναι μία συλλογή από μεταβλητές οποιουδήποτε τύπου, οι οποίες συνήθως χρησιμοποιούνται για την ομαδοποίηση πληροφορίας που περιγράφει μία λογική οντότητα Π.χ. μία δομή μπορεί να περιέχει πληροφορίες για μία εταιρεία, όπως την επωνυμία της, το έτος ίδρυσης, το Α.Φ.Μ, τη διεύθυνσή της, το αντικείμενο εργασιών της, τον αριθμό των υπαλλήλων της, στοιχεία επικοινωνίας, κτλ... 2
3 Πρότυπο Δομής (Ι) Το πρότυπο μίας δομής καθορίζει τον τύπο και το πλήθος των μεταβλητών που περιέχει μία δομή Μία δομή μπορεί να περιέχει μεταβλητές οποιουδήποτε τύπου, συμπεριλαμβανομένων δεικτών, πινάκων, ακόμα και άλλων δομών Η γενική περίπτωση δήλωσης του προτύπου μίας δομής είναι: Παραδείγματα προτύπων δομών: 3
4 Πρότυπο Δομής (ΙΙ) Όπως φαίνεται από τα προηγούμενα παραδείγματα, η χρησιμότητα μίας δομής είναι η ομαδοποίηση διαφορετικού είδους πληροφορίας για την περιγραφή μίας οντότητας Το πόσα και ποια πεδία θα περιέχονται σε μία δομή εξαρτάται από τον προγραμματιστή και τους σκοπούς του προγράμματος Αν, για παράδειγμα, το πρόγραμμα απαιτεί να υπάρχει ένα πεδίο που να δηλώνει το βάρος του ανθρώπου και ένα άλλο πεδίο που να δηλώνει τη διεύθυνση κατοικίας του, τότε η δομή person του προηγούμενου παραδείγματος θα έπρεπε π.χ. να έχει την ακόλουθη μορφή: 4
5 Παρατηρήσεις Το πρότυπο μίας δομής αποτελεί δήλωση ενός τύπου και όχι δήλωση μεταβλητής, δηλαδή, όταν δηλώνεται το πρότυπο μίας δομής, ο μεταγλωττιστής δεν δεσμεύει μνήμη για την αποθήκευσή του Συνήθως, το πρότυπο μίας δομής δηλώνεται με καθολική εμβέλεια πριν από τη συνάρτηση main(), ώστε να είναι ορατό σε όλο το πρόγραμμα Αν το πρότυπο μίας δομής δηλωθεί μέσα στο σώμα μίας συνάρτησης, τότε η εμβέλειά του προφανώς είναι τοπική Σε αυτή την περίπτωση, οι υπόλοιπες συναρτήσεις του προγράμματος αγνοούν την ύπαρξή του και δεν μπορούν να το χρησιμοποιήσουν για να δηλώσουν δομές τέτοιου τύπου 5
6 Δήλωση Δομής Μία μεταβλητή, της οποίας ο τύπος είναι δομή μπορεί να δηλωθεί με έναν από τους παρακάτω δύο τρόπους Α Τρόπος (θεωρώντας ότι έχει δηλωθεί το πρότυπό της) Γενική μορφή δήλωσης: Π.χ. Β Τρόπος (δήλωση ταυτόχρονα με τη δήλωση του προτύπου της) Π.χ. 6
7 Παρατηρήσεις (Ι) Όταν δηλώνεται μία δομή ο μεταγλωττιστής δεσμεύει μνήμη για την αποθήκευσή της Το μέγεθος της μνήμης που δεσμεύεται είναι τουλάχιστον ίσο με το άθροισμα της μνήμης που δεσμεύεται για καθένα από τα πεδία της Συνεπώς, η έξοδος του προγράμματος αναμένεται να είναι και όντως, είναι 12!! 7
8 Παρατηρήσεις (ΙΙ) Συνεπώς, ποια αναμένεται να είναι η έξοδος του παρακάτω προγράμματος??? Απαντήσατε 13 αλλά εμφανίστηκε... 16??? Don t panic... Για την αποφυγή λαθών στον υπολογισμό της μνήμης που καταλαμβάνει μία δομή να χρησιμοποιείτε πάντα τον τελεστή sizeof και να μην μπαίνετε στη διαδικασία να προσθέτετε τη μνήμη που δεσμεύουν ξεχωριστά τα πεδία της 8
9 Παρατηρήσεις (ΙΙΙ) Θυμηθείτε ότι το μέγεθος της μνήμης που δεσμεύεται είναι τουλάχιστον ίσο (και όχι απαραίτητα ακριβώς ίσο) με το άθροισμα της μνήμης που δεσμεύεται για καθένα από τα πεδία της Στην πράξη, το μέγεθος της μνήμης που δεσμεύεται για μία δομή εξαρτάται από τον υπολογιστή που εκτελείται το πρόγραμμα και από τους τύπους των πεδίων δεδομένων Π.χ., μπορεί να απαιτείται κάθε πεδίο της δομής να αποθηκεύεται σε μία θέση μνήμης που η τιμή της να είναι πολλαπλάσια κάποιου αριθμού (συνήθως του 4) ή πολλαπλάσια του αριθμού των οκτάδων που δεσμεύει ο μεγαλύτερος τύπος δεδομένων των πεδίων της δομής 9
10 Παραδείγματα Ποια αναμένεται να είναι η έξοδος των παρακάτω προγραμμάτων??? Έξοδος: Size = 24 Έξοδος: Size = 28 10
11 Δήλωση Δομής με χρήση του προσδιοριστικού typedef Ένα πρότυπο δομής μπορεί να δηλωθεί εναλλακτικά με χρήση του προσδιοριστικού typedef Σε αυτή την περίπτωση το όνομα του προτύπου εισάγεται μετά το δεξί άγκιστρο, π.χ. Αν το πρότυπο μίας δομής έχει δηλωθεί με χρήση της εντολής typedef, τότε δεν προσθέτουμε τη λέξη struct πριν από τη δήλωση μίας δομής Δηλ. αν είχαμε δηλώσει την παραπάνω δομή (book), θα μπορούσαμε να δηλώσουμε τις μεταβλητές book_1 και book_2 ως εξής: 11
12 Παρατηρήσεις Συνήθως, το προσδιοριστικό typedef χρησιμοποιείται για τη δημιουργία συνωνύμων με βασικούς τύπους δεδομένων Π.χ. με τη δήλωση: typedef unsigned int size_t; δημιουργείται ένας νέος τύπος δεδομένων που ονομάζεται size_t και είναι συνώνυμο του τύπου unsigned int Δηλ. οι δηλώσεις: unsigned int i; και size_t i; είναι ισοδύναμες Π.χ. με τη δήλωση: typedef int arr[100]; δημιουργείται ένας νέος τύπος δεδομένων που ονομάζεται arr και είναι ένας πίνακας 100 ακεραίων Δηλ. με τη δήλωση: arr arr1; η μεταβλητή arr1 είναι και αυτή ένας πίνακας 100 ακεραίων 12
13 Αρχικοποίηση πεδίων δομής (Ι) Ο πιο συνηθισμένος τρόπος για να προσπελάσουμε τα πεδία μίας δομής είναι να γράψουμε το όνομα της δομής να προσθέσουμε τον τελεστή τελεία (.) και μετά το όνομα του πεδίου που μας ενδιαφέρει Το επόμενο πρόγραμμα δηλώνει το πρότυπο μίας δομής με όνομα book, αρχικοποιεί τα πεδία της δομής book_1 και τα εμφανίζει στην οθόνη 13
14 Αρχικοποίηση πεδίων δομής (ΙΙ) Εναλλακτικός τρόπος αρχικοποίησης μίας δομής είναι μαζί με τη δήλωσή της (αφού εννοείται έχει δηλωθεί το πρότυπό της) Π.χ. struct book book_1 = {"Literature", 2010, 10.85}; Όπως τα στοιχεία ενός πίνακα, έτσι και τα πεδία μίας δομής που δεν αρχικοποιούνται αποκτούν μηδενικές τιμές Π.χ. book_1.title book_1.year book_1.price book_1.title book_1.year = 0 book_1.price = 0 struct book book_1 = {"Literature"}; Παρόμοια, με τη δήλωση: struct book book_1 = {0} ; οι χαρακτήρες του πεδίου title αρχικοποιούνται με τον τερματικό χαρακτήρα ('\0') και τα πεδία year και price με 0 14
15 Αρχικοποίηση πεδίων δομής (ΙΙΙ) Τέλος, η δήλωση μίας δομής μαζί με τη δήλωση του προτύπου της μπορεί να επεκταθεί για την απόδοση αρχικών τιμών στα πεδία της Π.χ. 15
16 Δείκτης σε πεδίο δομής Όπως χρησιμοποιούμε έναν δείκτη σε μία μεταβλητή, μπορούμε να τον χρησιμοποιήσουμε και σε ένα πεδίο μίας δομής Π.χ. δείτε πώς εμφανίζονται τα πεδία της δομής book_1 με χρήση δεικτών 16
17 Αντιγραφή και Σύγκριση δομών Για την αντιγραφή μιας δομής σε μία άλλη χρησιμοποιείται ο τελεστής = Για να εκτελεστεί η αντιγραφή, οι δομές πρέπει να είναι του ίδιου τύπου. Π.χ. 17
18 Με την εντολή: Παρατηρήσεις (Ι) stud2 = stud1; οι τιμές των πεδίων της δομής stud1 αντιγράφονται στα αντίστοιχα πεδία της δομής stud2 Δηλαδή, η παραπάνω εντολή είναι ισοδύναμη με: stud2.code = stud1.code; stud2.grd = stud1.grd; Αν οι stud1 και stud2 δεν ήταν μεταβλητές του ίδιου προτύπου δομής, η εντολή stud2 = stud1; δεν θα μεταγλωττιζόταν, ακόμα κι αν τα δύο διαφορετικά πρότυπα δομής περιείχαν τα ίδια ακριβώς πεδία και σε αριθμό και σε τύπο δεδομένων 18
19 Παρατηρήσεις (ΙΙ) Εκτός από την ανάθεση καμία άλλη ενέργεια δεν επιτρέπεται μεταξύ δομών Π.χ. οι τελεστές == και!= δεν μπορούν να χρησιμοποιηθούν για τον έλεγχο της ισότητας δύο δομών Δηλαδή, δεν επιτρέπεται να γράψετε: if(stud1 == stud2) ή if(stud1!= stud2) Αν πρέπει να γίνει έλεγχος αν δύο δομές περιέχουν τα ίδια ακριβώς δεδομένα, πρέπει αναγκαστικά να λάβει χώρα σύγκριση όλων των πεδίων των δομών ένα προς ένα και ξεχωριστά Δηλαδή: if((stud1.code == stud2.code) && (stud1.grd == stud2.grd)) 19
20 Παράδειγμα δομής που περιέχει πίνακες Ποια είναι η έξοδος του παρακάτω προγράμματος??? Έξοδος: Values: somebody s s 20
21 Παράδειγμα δομής που περιέχει δείκτες Ποια είναι η έξοδος του παρακάτω προγράμματος??? Έξοδος: ebody
22 Δομή που περιέχει δομή Μία δομή μπορεί να περιέχει μία ή περισσότερες δομές, οι οποίες ονομάζονται ένθετες δομές (nested structures) Το πρότυπο μιας ένθετη δομής πρέπει να δηλώνεται πριν από τη δήλωση της δομής στην οποία περιέχεται, αλλιώς ο μεταγλωττιστής θα εμφανίσει μήνυμα λάθους Για να προσπελάσουμε τα πεδία μίας δομής που περιέχεται μέσα σε μία άλλη δομή χρησιμοποιούμε δύο φορές τον τελεστή τελεία (.) Την πρώτη φορά ανάμεσα στο όνομα της εξωτερικής και της ένθετης δομής και τη δεύτερη φορά ανάμεσα στο όνομα της ένθετης δομής και το όνομα του πεδίου που μας ενδιαφέρει (το οποίο ανήκει στην ένθετη δομή) 22
23 Παράδειγμα δομής που περιέχει δομή (1/2) Ποια είναι η έξοδος του παρακάτω προγράμματος??? 23
24 Παράδειγμα δομής που περιέχει δομή (2/2) Έξοδος: The product s life is 3 years 24
25 Πεδία Δομής με μέγεθος bit (Ι) Ένα πεδίο δομής μπορεί να περιέχει πεδία, των οποίων το μέγεθος να δηλώνεται σαν ένας συγκεκριμένος αριθμός από bits Ένα τέτοιο πεδίο ονομάζεται πεδίο bit και δηλώνεται με τον ακόλουθο τρόπο: τύπος_δεδομένων όνομα_πεδίου_bit : αριθμός_bits; Δηλαδή, η δήλωση ενός πεδίου bit γίνεται με τη χρήση της άνωκάτω τελείας : ανάμεσα στο όνομα του πεδίου και τον αριθμό των bits που θα έχει Η προσπέλαση των πεδίων bit γίνεται με τους ίδιους τρόπους, όπως και με τα απλά πεδία μίας δομής Οι περισσότεροι μεταγλωττιστές εκτός από τον τύπο int υποστηρίζουν και τους τύπους char, short και long ως επιτρεπτούς τύπους δεδομένων ενός πεδίου bit 25
26 Παράδειγμα: Πεδία Δομής με μέγεθος bit (ΙΙ) Μέγεθος bit: 1 Εύρος τιμών: 0 1 struct person { unsigned char sex : 1; unsigned char married : 1; unsigned char children : 4; char name[30]; }; Μέγεθος bit: 4 Εύρος τιμών:
27 Πεδία Δομής με μέγεθος bit (ΙΙΙ) Για την αποθήκευση των τιμών του προηγούμενου παραδείγματος απαιτούνται συνολικά: = 6 bits Αφού ο τύπος δεδομένων των πεδίων είναι unsigned char, τότε ο μεταγλωττιστής δεσμεύει 1 byte μνήμης, από το οποίο τα 2 bits δεν χρησιμοποιούνται Αν ο τύπος δεδομένων των πεδίων είχε δηλωθεί σαν unsigned int αντί για unsigned char, τότε ο μεταγλωττιστής θα δέσμευε 4 bytes μνήμης και δεν θα χρησιμοποιούσε: (4 * 8) - 6 = 26 bits Το μεγάλο πλεονέκτημα της χρήσης των πεδίων bit είναι η εξοικονόμηση μνήμης Στο προηγούμενο παράδειγμα ο μεταγλωττιστής δεσμεύει 1 byte μνήμης αντί για 3 bytes που θα δέσμευε αν δεν χρησιμοποιούσαμε πεδία bit (δηλ. για κάθε αποθήκευση των στοιχείων μίας εγγραφής εξοικονομούμε 2 bytes) Άρα, αν έπρεπε να αποθηκεύσουμε σε ένα αρχείο εγγραφές, θα εξοικονομούσαμε bytes μνήμης, κ.ο.κ. 27
28 Παρατηρήσεις (Ι) Για βέλτιστη εξοικονόμηση μνήμης οι δηλώσεις των πεδίων bit συνίσταται να γίνονται όλες μαζί και να μην παρεμβάλλονται δηλώσεις απλών πεδίων μεταξύ των Κατά τη δήλωση μίας δομής, προτείνεται τα πεδία bit να δηλώνονται στην αρχή της δομής Όταν εκχωρείται μία τιμή σε ένα πεδίο bit, τότε αυτή η τιμή δεν θα πρέπει να κωδικοποιείται σε περισσότερα bits από ότι το μέγεθος του πεδίου, διότι σε μία τέτοια περίπτωση - είναι πολύ πιθανό να εισάγουμε λογικό λάθος (bug) στον κώδικά μας 28
29 Παρατηρήσεις (ΙI) Γιατί είναι λανθασμένη η παραπάνω εκχώρηση??? Η τιμή 2 απαιτεί 2 bits για να κωδικοποιηθεί (10 2 ) και όχι 1, όπως καθορίζεται στο μέγεθος του πεδίου. Τελικά, στο πεδίο married θα αποθηκευτεί το bit που θεωρεί ο μεταγλωττιστής ως «χαμηλότερης σημασίας». Αν π.χ. αποθηκευτεί το δεξιότερο bit, τότε το πρόγραμμα θα εμφανίσει: Married = 0 29
30 Παρατηρήσεις (ΙII) Ο κύριος περιορισμός των πεδίων bit είναι ότι ένας δείκτης δεν μπορεί να δείξει στη διεύθυνση ενός πεδίου bit Δηλαδή, στο παρακάτω πρόγραμμα ο μεταγλωττιστής θα εμφάνιζε μήνυμα λάθους 30
31 Παρατηρήσεις (ΙV) Η τιμή ενός πεδίου bit μπορεί να είναι θετική ή αρνητική, ανάλογα με το αν ο μεταγλωττιστής διαχειρίζεται το bit υψηλότερης σημασίας σαν πρόσημο Για να αποφύγετε την περίπτωση του προσήμου, να δηλώνετε τα πεδία bit με τον τύπο unsigned Αν το μέγεθος ενός πεδίου bit είναι ένα bit, πρέπει υποχρεωτικά να δηλωθεί ως unsigned, γιατί ένα bit δεν μπορεί να έχει πρόσημο 31
32 Δείκτης σε Δομή (Ι) Ένας δείκτης σε μία δομή χρησιμοποιείται με τον ίδιο τρόπο όπως κάθε άλλος δείκτης Π.χ. με τη εντολή: struct student *stud_ptr; η μεταβλητή stud_ptr δηλώνεται ως δείκτης προς κάποια δομή τύπου student Υπενθυμίζεται ότι ένας δείκτης, πριν χρησιμοποιηθεί, πρέπει να έχει σαν τιμή τη διεύθυνση κάποιας μεταβλητής, ή ισοδύναμα να «δείχνει» σε κάποια υπαρκτή μεταβλητή struct student *stud_ptr; struct student stud; stud_ptr = &stud; Με την τελευταία εντολή ο δείκτης stud_ptr δείχνει στη διεύθυνση της μνήμης που έχει αποθηκευτεί η δομή stud και συγκεκριμένα στη διεύθυνση μνήμης του πρώτου πεδίου της δομής stud 32
33 Δείκτης σε Δομή (ΙΙ) Χρησιμοποιώντας τον τελεστή * πριν από το όνομα του δείκτη, αποκτούμε πρόσβαση στο περιεχόμενο της μνήμης που δείχνει ο δείκτης, άρα μπορούμε να προσπελάσουμε τα πεδία μίας δομής Π.χ. Έξοδος: N: somebody G:
34 Δείκτης σε Δομή (ΙΙΙ) Ένας εναλλακτικός τρόπος για να αποκτήσουμε πρόσβαση στα πεδία μίας δομής με χρήση δείκτη είναι χρησιμοποιώντας τον τελεστή -> αντί του τελεστή τελεία (.) Θα δείτε και τότε θα κλάψετε - ότι ο συγκεκριμένος τελεστής (->) συνηθίζεται να χρησιμοποιείται στις δυναμικές δομές δεδομένων Δηλαδή, για τη δομή: struct student { char name[50]; float grade; }; Αν: struct student *stud_ptr; οι παρακάτω εκφράσεις, είναι ισοδύναμες: stud_ptr->name ισοδύναμη με (*stud_ptr).name stud_ptr->grade ισοδύναμη με (*stud_ptr).grade 34
35 Δείκτης σε Δομή (ΙV) Π.χ. το προηγούμενο παράδειγμα θα μπορούσε να γραφεί με χρήση του τελεστή -> αντί του τελεστή τελεία (.) ως εξής: Έξοδος: N: somebody G:
36 Παρατηρήσεις Για να αποκτήσουμε πρόσβαση στα πεδία μίας δομής με χρήση δείκτη προτιμάται η χρήση του τελεστή -> Για έναν δείκτη σε δομή ισχύουν οι ίδιοι κανόνες αριθμητικής που ισχύουν για τους απλούς δείκτες Π.χ. αν αυξηθεί η τιμή του δείκτη κατά ένα, τότε η τιμή του δείκτη θα αυξηθεί κατά το μέγεθος της δομής στην οποία δείχνει Η συνηθέστερη χρήση δεικτών σε δομές είναι κατά τη δημιουργία δυναμικών δομών δεδομένων, όπως λίστες, στοίβες και ουρές 36
37 Πίνακας Δομών Ένας πίνακας δομών είναι ένας πίνακας, του οποίου κάθε στοιχείο είναι μία δομή Π.χ. αν έχουμε δηλώσει τη δομή: τότε η δήλωση: struct student { char name[50]; int code; float grd; }; struct student stud[100]; σημαίνει ότι η μεταβλητή stud είναι ένας πίνακας 100 στοιχείων, και το κάθε στοιχείο του πίνακα είναι μία δομή τύπου student 37
38 Αρχικοποίηση Πίνακα Δομών (Ι) Α Τρόπος (κατά τη δήλωση του πίνακα δομών) Π.χ. για τη δομή: struct student { char name[50]; int code; float grd; }; με την παρακάτω αρχικοποίηση: struct student stud[] = {{"nick stergiou",555,7.3}, {"john nikas",556,5.8}, {"peter karras",557,6.7}}; η τιμή του πεδίου stud[0].name γίνεται "nick stergiou" η τιμή του πεδίου stud[1].code γίνεται 556 η τιμή του πεδίου stud[2].grd γίνεται
39 Αρχικοποίηση Πίνακα Δομών (ΙI) B Τρόπος (απευθείας ενσωμάτωση στη δήλωση του προτύπου της δομής) Π.χ. : struct student { char name[50]; int code; float grd; } stud[] = {{"nick stergiou",555,7.3}, {"john nikas",556,5.8}, {"peter karras",557,6.7}}; Και με τους 2 τρόπους αρχικοποίησης, τα εσωτερικά άγκιστρα μπορούν να παραλειφθούν (προτείνεται όμως να χρησιμοποιούνται, ώστε ο κώδικας να είναι περισσότερο ευανάγνωστος, δηλ. να ξεχωρίζουν μεταξύ τους οι δομές) 39
40 Παρατηρήσεις (Ι) Οι πίνακες δομών χρησιμοποιούνται πολύ συχνά σε προγράμματα που απαιτείται αποθήκευση πληροφορίας που αντιστοιχεί σε διαφορετικές καταχωρήσεις (π.χ. ένα πρόγραμμα για την καταχώρηση των στοιχείων των υπαλλήλων μίας εταιρείας, των στοιχείων των φοιτητών μίας σχολής, της πληροφορίας των προϊόντων μίας αποθήκης, κτλ...) Δηλαδή, οι πίνακες δομών μπορούν να χρησιμοποιηθούν σαν μία βάση δεδομένων Όταν γίνεται η δήλωση του πίνακα δομών μπορούμε να θέσουμε την τιμή 0 σε όλα τα πεδία κάθε δομής Π.χ. αν γράψουμε: struct student stud[100] = {0} τότε όλα τα πεδία κάθε δομής αποκτούν την τιμή 0 40
41 Παρατηρήσεις (ΙΙ) Για τους πίνακες δομών ισχύουν όλοι οι κανόνες που ισχύουν για τους απλούς πίνακες Π.χ. για την προηγούμενη δομή stud (με πρότυπο student) αφού το όνομα ενός πίνακα είναι δείκτης στη διεύθυνση του 1ου στοιχείου του, τότε: το *stud είναι ισοδύναμο με stud[0] το *(stud + 1) είναι ισοδύναμο με stud[1] το *(stud + 2) είναι ισοδύναμο με stud[2] κ.ο.κ. Άρα, αν θέλουμε να προσπελάσουμε το πεδίο grd του τρίτου υπαλλήλου, οι εκφράσεις stud[2].grd και (*(stud + 2)).grd είναι ισοδύναμες (οι παρενθέσεις στη δεύτερη περίπτωση είναι απαραίτητες λόγω των προτεραιοτήτων) Προφανώς, ο χειρισμός ενός πίνακα δομών με χρήση της θέσης του κάθε στοιχείου στον πίνακα, είναι πιο απλός και ευανάγνωστος από τον αντίστοιχο χειρισμό με δείκτη 41
42 Συνάρτηση με παράμετρο Δομή Μία δομή μπορεί να διοχετευθεί σαν παράμετρος σε μία συνάρτηση μεταβιβάζοντας είτε την τιμή της είτε τη διεύθυνσής της Υπενθυμίζεται ότι, όταν μεταβιβάζεται η τιμή μιας παραμέτρου σε συνάρτηση, τότε στη συνάρτηση διοχετεύονται αντίγραφα των παραμέτρων του προγράμματος που την καλεί Επομένως, οποιαδήποτε αλλαγή γίνει στις τιμές των πεδίων της δομής μέσα στη συνάρτηση δεν επηρεάζει τις αντίστοιχες τιμές των πεδίων της δομής που διοχετεύθηκε στη συνάρτηση, γιατί οι τυχόν αλλαγές γίνονται σε αντίγραφό της Αντίθετα, σε περίπτωση που μεταβιβάζεται η διεύθυνση της παραμέτρου σε συνάρτηση, στη συνάρτηση διοχετεύονται οι διευθύνσεις μνήμης των παραμέτρων του προγράμματος που την καλεί και όχι αντίγραφά τους, όπως προηγουμένως Επομένως, αφού η συνάρτηση έχει πρόσβαση στη διεύθυνση της δομής του προγράμματος που την κάλεσε, τότε μπορεί να μεταβάλλει τις τιμές των πεδίων της 42
43 Διοχέτευση τιμής της δομής σε συνάρτηση (Ι) Π.χ. αν θεωρήσουμε ότι έχει δηλωθεί η παρακάτω δομή: struct student { char name[50]; int code; float grd; }; Και έχει δηλωθεί κι η παρακάτω συνάρτηση: Όρισμα συνάρτησης: δομή τύπου student void funct(struct student stud_1); Αφού επίσης δηλωθεί και αρχικοποιηθεί μία μεταβλητή-δομή (π.χ. stud) τύπου student: struct student stud; strcpy(stud.name, "somebody"); stud.code = 555; stud.grd = 7; 43
44 Διοχέτευση τιμής της δομής σε συνάρτηση (ΙΙ) Κατά τη διοχέτευση της τιμής μιας δομής σε συνάρτηση (π.χ. από το κύριο πρόγραμμα, δηλ. μέσα από τη συνάρτηση main()): funct(stud); δημιουργείται προσωρινά στη μνήμη η μεταβλητή stud_1, η οποία αποτελεί αντίγραφο της μεταβλητής stud Αντίγραφο σημαίνει ότι οι αρχικές τιμές των πεδίων της δομής stud_1 θα γίνουν ίσες με τις αντίστοιχες τιμές των πεδίων της δομής stud Η μεταβλητή stud_1 δεν έχει καμία σχέση με τη μεταβλητή stud του κυρίως προγράμματος, αφού βρίσκονται σε διαφορετικές θέσεις μνήμης Επομένως, οποιαδήποτε αλλαγή γίνει στις τιμές των πεδίων της δομής stud_1 δεν επηρεάζει τις αντίστοιχες τιμές των πεδίων της δομής stud 44
45 Διοχέτευση διεύθυνσης της δομής σε συνάρτηση (Ι) Π.χ. αν θεωρήσουμε ότι έχει δηλωθεί η παρακάτω δομή: struct student { char name[50]; int code; float grd; }; Και έχει δηλωθεί κι η παρακάτω συνάρτηση: Όρισμα συνάρτησης: δείκτης σε δομή τύπου student void funct(struct student *stud_ptr); Αφού επίσης δηλωθεί και αρχικοποιηθεί μία μεταβλητή-δομή (π.χ. stud) τύπου student: struct student stud; strcpy(stud.name, "somebody"); stud.code = 555; stud.grd = 7; 45
46 Διοχέτευση διεύθυνσης της δομής σε συνάρτηση (ΙΙ) Κατά τη διοχέτευση της διεύθυνσης μιας δομής σε συνάρτηση (π.χ. από το κύριο πρόγραμμα, δηλ. μέσα από τη συνάρτηση main()): funct(&stud); στη συνάρτηση διοχετεύονται οι διευθύνσεις μνήμης των παραμέτρων του προγράμματος που την καλεί και όχι αντίγραφά τους, όπως προηγουμένως Επομένως, αφού η συνάρτηση έχει πρόσβαση στη διεύθυνση της δομής του προγράμματος που την κάλεσε, τότε μπορεί να μεταβάλλει τις τιμές των πεδίων της 46
47 Παρατηρήσεις Για τη μεταβίβαση μίας δομής σε μία συνάρτηση προτείνεται να γίνεται διοχέτευση της διεύθυνσής της, ακόμα και αν δεν απαιτείται αλλαγή στις τιμές των πεδίων της Ο κύριος λόγος είναι γιατί αποφεύγεται η διαδικασία δημιουργίας αντιγράφου της δομής στη στοίβα, άρα το πρόγραμμα εκτελείται πιο γρήγορα Σε περίπτωση που η συνάρτηση δεν πρέπει να αλλάξει τις τιμές των πεδίων της δομής, τότε ο προγραμματιστής, για να είναι σίγουρος ότι κάτι τέτοιο δεν θα συμβεί στο μέλλον, μπορεί να προσθέσει στη δήλωση της συνάρτησης τη λέξη const πριν από τη λέξη struct, δηλαδή να δηλώσει τον δείκτη stud_ptr ως const Π.χ. void funct(const struct student *stud_ptr); 47
48 Ενώσεις (Unions) Μία ένωση (union) στη C μοιάζει με μία δομή (structure), με τη σημαντική όμως διαφορά, ότι μόνο ένα πεδίο της ένωσης μπορεί να προσπελαύνεται κάθε φορά Αυτό συμβαίνει, γιατί τα πεδία μίας ένωσης δεν καταλαμβάνουν ξεχωριστό χώρο στη μνήμη, αλλά έναν κοινό χώρο μνήμης 48
49 Δήλωση Ένωσης Το πρότυπο μίας ένωσης δηλώνεται με τον ίδιο τρόπο όπως δηλώνεται και το πρότυπο μίας δομής με τη διαφορά ότι αντί της λέξης struct χρησιμοποιείται η λέξη union Όπως και στην περίπτωση των δομών, έτσι και στις ενώσεις, το πρότυπο μίας ένωσης δεν αποτελεί μεταβλητή, δηλαδή, όταν δηλώνεται το πρότυπο μίας ένωσης, δεν δεσμεύεται μνήμη για την αποθήκευσή του Προφανώς, αντίστοιχα με τις δομές, όταν δηλώνεται μία ένωση, ο μεταγλωττιστής δεσμεύει μνήμη για την αποθήκευσή της Το μέγεθος της μνήμης που δεσμεύεται είναι ίσο με τη μνήμη που δεσμεύεται για το μεγαλύτερο πεδίο της ένωσης Δηλαδή, τα πεδία μιας ένωσης αποθηκεύονται σε έναν κοινό χώρο μνήμης και όχι σε ξεχωριστή μνήμη το καθένα (όπως συμβαίνει στις δομές) 49
50 Παράδειγμα Ποια είναι η έξοδος του παρακάτω προγράμματος??? Έξοδος: Size: 8 50
51 Πρόσβαση πεδίων Ένωσης Τα πεδία μίας ένωσης μπορούν να προσπελαστούν με τους ίδιους ακριβώς τρόπους που προσπελαύνονται και τα πεδία μίας δομής Ωστόσο, επειδή όλα τα πεδία αποθηκεύονται σε κοινή μνήμη, μόνο το τελευταίο πεδίο στο οποίο εκχωρήθηκε μία τιμή μπορεί να χρησιμοποιηθεί (όλα τα υπόλοιπα πεδία χάνουν τις προηγούμενες τιμές που πιθανόν τους είχαν ανατεθεί και αποκτούν νέες τυχαίες τιμές) 51
52 Παράδειγμα Ποια είναι η έξοδος του παρακάτω προγράμματος??? Έξοδος: a τυχαία τιμή τυχαία τιμή τυχαία τιμή 64 τυχαία τιμή τυχαία τιμή τυχαία τιμή
Διαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 13 η Δομές & Ενώσεις Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή
Διαβάστε περισσότεραint array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι
Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 7 η Πίνακες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 8 η Δείκτες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου
Διαβάστε περισσότεραΠρογραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών
Χαρακτήρες Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι Χαρακτήρες - Εισαγωγή Έως τώρα έχουμε κατά κύριο λόγο χρησιμοποιήσει τους αριθμητικούς τύπους
Διαβάστε περισσότεραΕισαγωγή στον Προγραµµατισµό «C»
Εισαγωγή Στον Προγραµµατισµό «C» Δείκτες Πανεπιστήµιο Πελοποννήσου Τµήµα Επιστήµης & Τεχνολογίας Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Μνήµη Υπολογιστή Η µνήµη RAM (Random Access Memory) ενός υπολογιστή
Διαβάστε περισσότεραΔομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ορισμός
Διαβάστε περισσότεραC: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο
C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 14 η Διαχείριση Μνήμης και Δομές Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 9 η Χαρακτήρες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 4 η Τελεστές Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 8: Αρχεία και Δομές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΠρογραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Εγγραφές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η Ανάγκη Ομαδοποίησης Πολλές φορές έχουμε πληροφορίες διαφορετικού τύπου οι οποίες όμως έχουν μεγάλη
Διαβάστε περισσότεραΔομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 3 Επανάληψη Γ μέρος 1. Στόχος του εργαστηρίου Στόχος του τρίτου εργαστηρίου είναι
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Διαβάστε περισσότεραΠρογραμματισμός ΙI (Θ)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017
Διαβάστε περισσότεραa = 10; a = k; int a,b,c; a = b = c = 10;
C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 10 Ο. Δομές Ενώσεις Απαριθμητοί τύποι δεδομένων ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΣΙΝΑΤΚΑΣ Ι ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 10 Ο Δομές Ενώσεις Απαριθμητοί τύποι δεδομένων Εισαγωγή Οι βασικοί τύποι δεδομένων στην C είναι char, int, float και double Το επόμενο βήμα δεδομένων
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 2: Μεταβλητές και Σταθερές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης
Διαβάστε περισσότεραΔομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Δομές Δεδομένων
Διαβάστε περισσότερα3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)
Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.
Διαβάστε περισσότεραΠρογραμματισμός Δομές Δεδομένων
Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων (Data Structures) Καινούργιοι τύποι δεδομένων που αποτελούνται από την ομαδοποίηση υπαρχόντων τύπων δεδομένων Ομαδοποίηση πληροφορίας που
Διαβάστε περισσότεραΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ. Διεύθυνση μεταβλητής. Δείκτης
ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ Πρώτα να δούμε τι ακριβώς συμπεριλαμβάνει μια μεταβλητή τύπος Καθορίζει το μέγεθος στην μνήμη σε Bytes τιμή Η αριθμητική τιμή που αποθηκεύεται στην
Διαβάστε περισσότεραΔιάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος
Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,
Διαβάστε περισσότεραΗ πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης
Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15
Διαβάστε περισσότεραΑνάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Δομές Δεδομένων και Κυρίως Πρόγραμμα Δομές δεδομένων εκτός από πίνακες: Structs Unions Enums Κυρίως πρόγραμμα Παράμετροι που
Διαβάστε περισσότεραΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ
ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Βασικοί Τύποι Πίνακες (μέρος 1) Συμβολοσειρές Ο Προεπεξεργαστής Τελευταία ενημέρωση: Σεπτέμβριος 2016 Εισαγωγή - 2 short:
Διαβάστε περισσότεραΠρογραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος
Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 4ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΟΙ ΤΕΛΕΣΤΕΣ ΣΥΓΚΡΙΣΗΣ Με τους τελεστές σύγκρισης, συγκρίνουμε τις
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού C
Η γλώσσα προγραμματισμού C Οι δείκτες στη C Η έννοια του δείκτη Την έννοια του δείκτη τη συναντήσαμε σε προηγούμενα μαθήματα. Η συνάρτηση scanf(), καταχωρίζει τιμές σε μεταβλητές χρησιμοποιώντας τον τελεστή
Διαβάστε περισσότεραif(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο
C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 5 ο Έλεγχος Προγράµµατος Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Η εντολή if (Ι) Η εντολή if είναι µία από τις βασικότερες δοµές ελέγχου ροής στη C, αλλά και στις περισσότερες
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 3 η Είσοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 5 η Έλεγχος Προγράμματος Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή
Διαβάστε περισσότεραΑ' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές
Διαβάστε περισσότεραΑνάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις της C Τα Λοιπά Στοίβα και μηχανισμός κλήσης Αναδρομικές συναρτήσεις Στατικές μεταβλητές Άλλα θέματα Μηχανισμός
Διαβάστε περισσότεραΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων
Σκοπός της Άσκησης ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση µε τη χρήση πινάκων σαν διατάξεις αποθήκευσης δεδοµένων της Γλώσσας Προγραµµατισµού C. H συγκεκριµένη άσκηση
Διαβάστε περισσότεραscanf() scanf() stdin scanf() printf() int float double %lf float
Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση
Διαβάστε περισσότεραΠρογραμματισμός ΙI (Θ)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07
ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1
Διαβάστε περισσότεραοµές (structures) και Eνώσεις (unions)
οµές (structures) και Eνώσεις (unions) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: οµές, φωλιασµένες δοµές, τρόποι δήλωσης δοµών, δοµές ως παράµετροι σε συναρτήσεις, δείκτες σε δοµές, χρήση
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 5: Απαριθμητές (enums) Δομές (structures)και Ενώσεις (unions) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Απαριθμητές - Δομές, φωλιασμένες δομές, τρόποι δήλωσης
Διαβάστε περισσότεραΠρογραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας
Διαβάστε περισσότεραΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες
Σκοπός της Άσκησης ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση των δεικτών (pointers). Οι δείκτες δίνουν την δυνατότητα σε προγράμματα να προσομοιώνουν τη
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 10 η Αλφαριθμητικά Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 11 η Συναρτήσεις Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραfor for for for( . */
Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται
Διαβάστε περισσότεραΛογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ
ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ Λογικός τύπος ( ) Ο τύπος είναι κατάλληλoς για την αναπαράσταση ποσοτήτων που μπορούν να πάρουν δύο μόνο τιμές (π.χ. ναι/όχι, αληθές/ψευδές, ). Τιμές ή Δήλωση Εκχώρηση Ισοδυναμία με ακέραιους
Διαβάστε περισσότεραΕισαγωγή στη γλώσσα προγραμματισμού C++
Εισαγωγή στη γλώσσα προγραμματισμού C++ Περιβάλλον Εργασίας 2 Περιβάλλον Εργασίας 1. Χρήση απλού κειμενογράφου και Μεταγλωττιστή 2. Ολοκληρωμένα Περιβάλλοντα Εργασίας (Integrated Development Environments)
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 6: Πίνακες Κώστας Κουκουλέτσος, Καθηγητής Τμήμα Η.Υ.Σ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΣτοιχειώδης προγραμματισμός σε C++
Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.
Διαβάστε περισσότεραΑνάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο
Διαβάστε περισσότεραΠρογραμματισμός Ι. Συναρτήσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών
Συναρτήσεις Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι Συναρτήσεις - Εισαγωγή Μία συνάρτηση είναι ένα ανεξάρτητο τμήμα κώδικα, που εκτελεί μία
Διαβάστε περισσότεραΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Δείκτες Διδάσκοντες: Αν Καθ Δ Παπαγεωργίου, Αν Καθ Ε Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΚεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)
Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513;
Διαβάστε περισσότεραΠρογραμματισμός ΙI (Θ)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΑναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.
ΤΡΙΤΗ ΔΙΑΛΕΞΗ Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.): Σύνταξη τύπος όνομαα; τύπος όνομαβ{όνομαα}; όνομαβ
Διαβάστε περισσότεραΠεριεχόμενα. Πρόλογος... 21
Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31
Διαβάστε περισσότεραΔεδομένα, τελεστές, είσοδος/έξοδος
2 Δεδομένα, τελεστές, είσοδος/έξοδος Τι θα δούμε σε αυτό το μάθημα 1. βασικοί τύποι δεδομένων 2. ακέραιοι 3. κινητής υποδιαστολής 4. ο τύπος decimal 5. χαρακτήρες 6. bool 7. string 8. χρήση μεταβλητών
Διαβάστε περισσότεραΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ
ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας
Διαβάστε περισσότεραΔιάλεξη 19η: Δομές δεδομένων
Διάλεξη 19η: Δομές δεδομένων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Δομές CS100, 2016-2017 1 / 13 Δομές Δεδομένων (Data Structures) Καινούργιοι
Διαβάστε περισσότεραΕνδεικτική περιγραφή μαθήματος
ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.
Διαβάστε περισσότεραΠρόλογος... 11. 1. Εισαγωγικά Στοιχεία... 13
ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 11 1. Εισαγωγικά Στοιχεία... 13 Το πρώτο πρόγραμμα... 15 Οι βασικοί τύποι δεδομένων και ο χειρισμός τους... 19 Σταθερές και Μεταβλητές... 19 Σταθερές τύπου ακεραίου... 19 Μεταβλητές
Διαβάστε περισσότεραΑνάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Δυναμική Κατανομή Μνήμης Δυναμική εκχώρηση μνήμης Σωρός Συναρτήσεις malloc(), calloc(), realloc(), free() Δυναμικές δομές
Διαβάστε περισσότερα2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ
ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Δεύτερη Διάλεξη Βασικά στοιχεία της γλώσσας προγραμματισμού C Μία γλώσσα προγραμματισμού όπως και μια ανθρώπινη γλώσσα μπορεί να μελετηθεί ως προς το αλφάβητό της,
Διαβάστε περισσότεραΥπολογισμός - Συλλογή Δεδομένων - Πίνακες
Προγραμματισμός Η/Υ Ι Υπολογισμός - - Πίνακες ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συζητήσουμε τη χρήση του πίνακα (array) για τη συλλογή
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 3ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΕΚΤΥΠΩΣΗ ΚΕΙΜΕΝΟΥ Ένα κείμενο μπορεί να εκχωρηθεί ως τιμή μιας μεταβλητής
Διαβάστε περισσότεραΠρογραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΚλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )
ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση
Διαβάστε περισσότεραΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1
Γλώσσα Προγραμματισμού C++ ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1 Τα δεδομένα Οι σταθερές Τα δεδομένα (πληροφορίες-data) είναι απαραίτητα στοιχεία ενός προγράμματος, καθώς οι βασικές λειτουργίες ενός προγράμματος είναι
Διαβάστε περισσότεραΜεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 12 Πολυδιάστατοι Πίνακες Πολυδιάστατοι πίνακες
Διαβάστε περισσότεραΠίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"
Πίνακες: μια σύντομη εισαγωγή Πίνακες χαρακτήρων: τα "Αλφαριθμητικά" Πίνακες(Arrays): έννοιες και ορισμοί Ορισμός: Πίνακας (array) = σύνολο μεταβλητών του ιδίου τύπου (int, float, char,...) με ένα κοινό
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
Διαβάστε περισσότεραΕισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C
Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος
Διαβάστε περισσότεραΓ7.8 Εγγραφές (Structures) Γ Λυκείου Κατεύθυνσης
Γ7.8 Εγγραφές (Structures) Γ Λυκείου Κατεύθυνσης Εισαγωγή Εγγραφές ονομάζουμε συλλογές στοιχείων, οι οποίες μας δίνουν τη δυνατότητα να ομαδοποιήσουμε στοιχεία διαφορετικών τύπων. Για παράδειγμα, θα χρησιμοποιήσουμε
Διαβάστε περισσότερα3 ο Εργαστήριο Μεταβλητές, Τελεστές
3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται
Διαβάστε περισσότεραΠρογραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Ένα Ακόμα Παράδειγμα #include int main(int argc, char* argv[]) { } putchar('h'); putchar('e'); putchar('l');
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL
8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to
Διαβάστε περισσότερα10 η Διάλεξη C++ - Πίνακες. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ
10 η Διάλεξη C++ - Πίνακες Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ Ανακεφαλαίωση Κατά την κλήση μιας συνάρτησης κατ αξία οι τιμές των ορισμάτων αντιγράφονται στις αντίστοιχες τυπικές παραμέτρους
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 4: Τύποι Δεδομένων και τελεστές Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 6: Πίνακες και Δείκτες Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 4: Δομές Ελέγχου Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΕνώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις
Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις Ενώσεις δεδομένων (union) τι και γιατί Συσκευές με μικρή μνήμη => ανάγκη εξοικονόμησης πόρων Παρατήρηση: αχρησιμοποίητη μνήμη. Έστω
Διαβάστε περισσότεραΠρογραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15
Διαβάστε περισσότεραΔεδομένα, Τύποι και Τιμές
Προγραμματισμός Η/Υ Ι Δεδομένα, Τύποι και Τιμές ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Οι περισσότερες προγραμματιστικές εργασίες περιλαμβάνουν χειρισμό
Διαβάστε περισσότερα