Περιεχόμενα. Κεφάλαιο 1: Εισαγωγή Κεφάλαιο 2: Μια πρώτη ματιά στη C

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Περιεχόμενα. Κεφάλαιο 1: Εισαγωγή Κεφάλαιο 2: Μια πρώτη ματιά στη C"

Transcript

1 Περιεχόμενα Κεφάλαιο 1: Εισαγωγή...17 O στόχος του βιβλίου και σε ποιους απευθύνεται...19 Πως να διαβάσετε αυτό το βιβλίο...20 Η γλώσσα C++ Ιστορική αναδρομή...21 Τα χαρακτηριστικά της C Βασικές έννοιες του προγραμματισμού...26 Μεταβλητές...26 Σταθερές...28 Εντολές...28 Αναγνωριστικά...29 Φιλοσοφίες και τεχνικές προγραμματισμού...29 Αντικειμενοστρεφής προγραμματισμός...32 Κλάσεις και αντικείμενα (classes and objects)...33 Ενθυλάκωση (Encapsulation)...36 Κληρονομικότητα (Inheritance)...37 Πολυμορφισμός (Polymorphism)...38 Σχεδιασμός και ανάπτυξη προγραμμάτων...40 Λογικό διάγραμμα...40 Ανικειμενοστρεφής σχεδιασμός - UML...43 Κεφάλαιο 2: Μια πρώτη ματιά στη C Το πρώτο σας πρόγραμμα στη C Η δομή ενός προγράμματος στη C Ο προ-μεταγλωττιστής της C Η οδηγία #include...69 Η οδηγία #define...69

2 H γλώσσα C++ σε βάθος Κεφάλαιο 3: Προετοιμασία για αργότερα...77 Η C++ και η μνήμη...78 Δύο αντικείμενα, μια συνάρτηση και μια εντολή...80 Ολίγη if παρακαλώ...87 Κεφάλαιο 4: Οι βασικοί τύποι δεδομένων της C Ο τύπος δεδομένων int...96 Σταθερές τύπου int...96 Μεταβλητές τύπου int...96 Δυαδικοί αριθμοί Προτεραιότητα τελεστών Ο τύπος δεδομένων float Σταθερές τύπου float Μεταβλητές τύπου float Χρήση δεδομένων τύπου κινητής υποδιαστολής Ο τύπος δεδομένων char Σταθερές τύπου char Μεταβλητές τύπου char Πίνακας ASCII Ο τύπος wchar_t Ο τύπος δεδομένων bool Σταθερές τύπου bool Μεταβλητές τύπου bool Σταθερές και αυτόματη μετατροπή τύπου Απόλυτος προσδιορισμός τύπου σταθερών Κεφάλαιο 5: Εντολές συνθήκης Η εντολή if Η εντολή switch - case Ο τελεστής?

3 Περιεχόμενα Κεφάλαιο 6: Εντολές αλλαγής ροής και επανάληψης Η "επικίνδυνη" εντολή goto Ο βρόχος while O βρόχος do-while Ο βρόχος for Ο τελεστής "κόμμα" (,) Η εντολή break Η εντολή continue Κεφάλαιο 7: Συναρτήσεις Oρισμός μιας συνάρτησης Συναρτήσεις που επιστρέφουν τιμή Συναρτήσεις που δεν επιστρέφουν τιμή Παράμετροι συνάρτησης Χρήση συναρτήσεων βιβλιοθήκης Μετατροπή τύπου (type casting) Υπερφόρτωση συναρτήσεων Παράμετροι συνάρτησης με προκαθορισμένες τιμές Υπερφόρτωση συναρτήσεων και ασάφεια Κεφάλαιο 8: Εμβέλεια μεταβλητών Τοπικές μεταβλητές (local variables) Καθολικές μεταβλητές (global variables) Δήλωση τοπικών μεταβλητών σε σύνθετη πρόταση Δήλωση τοπικής μεταβλητής σε βρόχο for Στατικές τοπικές μεταβλητές (static local variables) Κεφάλαιο 9: Δείκτες Μεταβλητές δείκτη (pointer variables) Δήλωση μιας μεταβλητής δείκτη Οι τελεστές & και *

4 H γλώσσα C++ σε βάθος Μέχρι τώρα μάθαμε ότι Η αριθμητική των δεικτών Δείκτες τύπου Void Δείκτης NULL Κεφάλαιο 10: Προχωρημένα θέματα συναρτήσεων Κλήση συνάρτησης με τιμή, με δείκτες και με αναφορά Συναρτήσεις που επιστρέφουν ως τιμή ένα δείκτη Συναρτήσεις που επιστρέφουν ως τιμή μια αναφορά Δείκτες σε συναρτήσεις!!! Εμβόλιμες συναρτήσεις (inline functions) Κεφάλαιο 11: Πίνακες Πίνακες μιας διάστασης Οι πίνακες μιας διάστασης και οι δείκτες Προσοχή Προσοχή!!! Μεταβίβαση ενός πίνακα ως παραμέτρου μιας συνάρτησης Πίνακες χαρακτήρων Συναρτήσεις και πίνακες χαρακτήρων Συναρτήσεις βιβλιοθήκης που εφαρμόζονται σε συμβολοσειρές Αρχική τιμή ενός πίνακα μίας διάστασης Χειρισμός πινάκων μίας διάστασης Πίνακες πολλών διαστάσεων Πίνακες δύο διαστάσεων Πίνακες δύο διαστάσεων και δείκτες Πίνακες δύο διαστάσεων για αποθήκευση σειρών χαρακτήρων Μέγεθος πίνακα Πίνακες δεικτών σε συναρτήσεις

5 Περιεχόμενα Κεφάλαιο 12: Τύποι δεδομένων οριζόμενοι από το χρήστη Δομές (structures) Μεταβίβαση των μελών μιας δομής σε μια συνάρτηση Μεταβίβαση ολόκληρης της δομής σε συνάρτηση Δείκτες σε δομές Δομές μέσα σε δομές Μέλη εύρους ενός, ή περισσοτέρων, bit (bit fields) Ενώσεις (unions) Απαριθμήσεις (Enumerations) Η χρήση της typedef Κεφάλαιο 13: Κλάσεις και αντικείμενα Τι είναι μια κλάση (class) Τι είναι ένα αντικείμενο (object) Ορισμός μιας κλάσης Ορισμός και χρήση αντικειμένων Δημόσια και ιδιωτικά μέλη μιας κλάσης Συναρτήσεις δόμησης και αποδόμησης Υπερφόρτωση συναρτήσεων-μελών Ανάθεση τιμών σε αντικείμενα Πίνακες από αντικείμενα Κεφάλαιο 14: Προχωρημένα θέματα κλάσεων και αντικειμένων Αντικείμενα ως παράμετροι σε συναρτήσεις Συναρτήσεις που επιστρέφουν αντικείμενα Φίλιες συναρτήσεις μιας κλάσης Δείκτες σε αντικείμενα Στατικά μέλη μιας κλάσης Κεφάλαιο 15: Υπερφόρτωση τελεστών Υπερφόρτωση τελεστών με τη χρήση συναρτήσεων-μελών Υπερφόρτωση τελεστών με τη χρήση συναρτήσεων που δεν είναι μέλη της κλάσης

6 H γλώσσα C++ σε βάθος Κεφάλαιο 16: Κληρονομικότητα Δημιουργία μιας παράγωγης κλάσης Δημόσια (public) πρόσβαση βασικής κλάσης Ιδιωτική (private) πρόσβαση βασικής κλάσης Προστατευμένη (protected) πρόσβαση βασικής κλάσης Συνοψίζοντας Αλλαγή προσδιορισμού πρόσβασης για συγκεκριμένα μέλη Πολλαπλά επίπεδα κληρονομικότητας Κληρονομικότητα και συναρτήσεις δόμησης και αποδόμησης Κεφάλαιο 17: Προχωρημένα θέματα κληρονομικότητας Δείκτες σε παράγωγες κλάσεις Εικονικές συναρτήσεις (virtual functions) Γνήσιες εικονικές συναρτήσεις (pure virtual functions) Κληρονομικότητα πολλών επιπέδων Πολλαπλή κληρονομικότητα (multiple inheritance) Κεφάλαιο 18: Ρεύματα εισόδου & εξόδου της C Προκαθορισμένα αντικείμενα ρευμάτων Οι τελεστές εισαγωγής << και εξαγωγής >> Μορφοποιημένη είσοδος/έξοδος (formatted Ι/Ο) Σημαίες μορφοποίησης (format flags) Χειριστές (manipulators) Μορφοποίηση με συναρτήσεις-μέλη Χειρισμός αρχείων Μορφοποιημένη είσοδος/έξοδος σε αρχεία κειμένου Μη μορφοποιημένη είσοδος/έξοδος σε δυαδικά αρχεία Αρχεία και αντικείμενα Τυχαία προσπέλαση αρχείων Παράμετροι γραμμής εντολής

7 Περιεχόμενα Κεφάλαιο 19: Αναδρομή Κεφάλαιο 20: Αναζήτηση και ταξινόμηση Σειριακή αναζήτηση Δυαδική αναζήτηση (binary search) Ταξινόμηση φυσαλίδας (bubble sort) Ταξινόμηση quick sort Αντικειμενοστρεφής προσέγγιση Ταξινόμηση πίνακα αντικειμένων Κεφάλαιο 21: Δυναμική διαχείριση μνήμης Δυναμική κατανομή μνήμης Αλλαγή στο μέγεθος ενός πίνακα Συναρτήσεις δόμησης και αποδόμησης στις περιπτώσεις δυναμικής κατανομής μνήμης Συναρτήσεις δόμησης αντιγράφου (copy constructors) Ο παλαιός μηχανισμός δυναμικής κατανομής μνήμης Κεφάλαιο 22: Δυναμικές δομές δεδομένων Συνδεδεμένες λίστες Απλά συνδεδεμένη λίστα (simple linked list) Κυκλικά συνδεδεμένη λίστα (circularly linked list) Διπλά συνδεδεμένη λίστα (double linked list) Κυκλικά διπλά συνδεδεμένη λίστα Προσθήκη νέου κόμβου σε μια λίστα Υλοποίηση συνδεδεμένης λίστας στη C Δυαδικά δένδρα Χειρισμός ενός δυαδικού δένδρου Προσθήκη νέου κόμβου Αναζήτηση κόμβου Επίσκεψη ενός δυαδικού δέντρου Διαγραφή κόμβου από το δυαδικό δέντρο Υλοποίηση της δομής δυαδικού δένδρου

8 H γλώσσα C++ σε βάθος Κεφάλαιο 23: Πρότυπα, εξαιρέσεις και χώροι ονομάτων Πρότυπα συναρτήσεων και κλάσεων Πρότυπα συναρτήσεων (function templates) Πρότυπα κλάσεων (class templates) Εξαιρέσεις Γενικά Ο χειρισμός εξαιρέσεων της C Συνοψίζοντας Χώροι ονομάτων Κεφάλαιο 24: Μια ματιά στη καθιερωμένη βιβλιοθήκη προτύπων Τι είναι η καθιερωμένη βιβλιοθήκη προτύπων STL; Η κλάση string Διαχείριση αντικειμένων της κλάσης string Strings ως ρεύματα εισόδου/εξόδου Αποδέκτες, αλγόριθμοι και επαναλήπτες Αποδέκτες Επαναλήπτες (iterators) Αλγόριθμοι Αλγόριθμοι και αντικείμενα συναρτήσεων Διανύσματα (vectors) Λίστες (lists) Χάρτες (maps) Συμβατότητα αλγορίθμων, επαναληπτών και αποδεκτών Για κάτι περισσότερο Παράρτημα Α: Επιλεγμένες συναρτήσεις βιβλιοθήκης της C Αρχείο κεφαλίδας <cctype> Αρχείο κεφαλίδας <cstdlib> Αρχείο κεφαλίδας <cstring> Αρχείο κεφαλίδας <cmath>

9 Περιεχόμενα Παράρτημα Β: Το ολοκληρωμένο περιβάλλον του DEV C Εγκατάσταση του DEV C Οι βασικές λειτουργίες του DEV C Βιβλιογραφία Βιβλιογραφικές πηγές Αναφορές στο διαδίκτυο Ευρετήριο

10 H γλώσσα C++ σε βάθος Αντικειμενοστρεφής προγραμματισμός Μια από τις καθημερινές μου συνήθειες είναι να φτιάχνω τον πρωινό μου καφέ. Ας προσπαθήσουμε να αναλύσουμε λίγο αυτή τη διαδικασία. Η πρώτη ύλη που διαθέτουμε (τα δεδομένα μας) είναι ο καφές, η ζάχαρη, το νερό και το γάλα, αποθηκευμένα στα ντουλάπια και στο ψυγείο της κουζίνας μας. Εμείς παίρνουμε τα υλικά που χρειαζόμαστε με απευθείας πρόσβαση στους αποθηκευτικούς μας χώρους και κάνουμε την απαραίτητη επεξεργασία για να φτιάξουμε τον καφέ μας. Ο συγκάτοικός μας έχει και αυτός πρόσβαση στα ίδια υλικά και φτιάχνει και αυτός τον καφέ του ακολουθώντας την ίδια ή διαφορετική διαδικασία. Παρατηρούμε ότι με την παραπάνω διαδικασία... Τα υλικά μας (δεδομένα) είναι εκτεθειμένα στον οποιονδήποτε έχει πρόσβαση στους αποθηκευτικούς μας χώρους (ντουλάπια, ψυγείο). Με αυτόν τον τρόπο μπορεί να γίνει αλόγιστη χρήση των υλικών ακόμη και για διαφορετικό σκοπό (π.χ. να ξοδέψουμε ζάχαρη και γάλα για την κατασκευή ενός κέϊκ). Η επεξεργασία των υλικών για την κατασκευή του καφέ δεν είναι αυτοματοποιημένη και ο καθένας μπορεί να ακολουθεί μια εντελώς διαφορετική διαδικασία. Αν αλλάξει ο χώρος που αποθηκεύουμε τα υλικά (π.χ. τα βάλουμε σε άλλο ντουλάπι), πρέπει να αλλάξουμε και τη διαδικασία επεξεργασίας ώστε να τα παίρνουμε από το νέο αποθηκευτικό χώρο. Στην περίπτωση που θέλουμε να φτιάχνουμε διαφορετικά είδη καφέ (π.χ. καπουτσίνο, φραπέ, εσπρέσο), θα πρέπει κάθε φορά να χρησιμοποιούμε διαφορετική διαδικασία επεξεργασίας. Αν θελήσουμε να φτιάξουμε καφέ όχι στο σπίτι μας αλλά σε έναν άλλο χώρο, θα πρέπει αρχικά να μάθουμε πού είναι τα υλικά μας (τα δεδομένα μας), ενώ ίσως χρειαστεί να τροποποιήσουμε τη διαδικασία κατασκευής του καφέ ανάλογα με τις δυνατότητες του χώρου στον οποίο βρισκόμαστε. Για παράδειγμα, διαφορετική διαδικασία θα ακολουθήσουμε για να ζεστάνουμε το νερό ανάλογα με το αν ο χώρος διαθέτει υγραέριο, ηλεκτρική κουζίνα, ή φούρνο μικροκυμάτων. 32

11 Κεφάλαιο 1: Εισαγωγή Μετά από αρκετό καιρό υπομονής, η κατάσταση δεν πήγαινε άλλο. Πότε ανακάλυπτα την τελευταία στιγμή ότι τελείωσε ο καφές γιατί τον είχε χρησιμοποιήσει ο συγκάτοικος μου, πότε η ζάχαρη γιατί έκανε γλυκό η φίλη μου, πότε δεν έβρισκα καθόλου τα υλικά γιατί αποφάσισε η καθαρίστρια να τα βάλει σε διαφορετικό ντουλάπι. Και δε φτάνουν όλα αυτά, κάθε φορά ο καφές ήταν διαφορετικός, είτε γιατί έπεφτε λίγο περισσότερη ζάχαρη, είτε γιατί δεν υπολόγιζα σωστά το γάλα! Σκεφτόμουνα λοιπόν, μήπως υπάρχει κάποιο αντικείμενο που να φτιάχνει καφέ και να με βγάλει από όλη αυτή τη διαδικασία. Έτσι αποφάσισα να αγοράσω μια μηχανή για καφέ και αμέσως όλα μου τα προβλήματα λύθηκαν. Τα υλικά πλέον ήταν μέσα στη μηχανή. Κανείς δεν είχε πρόσβαση σε αυτά και κανείς δε διανοείτο να διαρρήξει τη μηχανή για να βγάλει λίγο καφέ ή ζάχαρη. Ποτέ πια δε χρειάστηκε να ψάχνω πού είναι ο καφές, η ζάχαρη, ή το γάλα η δε μηχανή από μόνη της με ειδοποιούσε όταν κόντευαν να τελειώσουν τα υλικά που περιέχει. Κάθε φορά απλά πατούσα το κουμπί και ο καφές γινόταν χωρίς ιδιαίτερο κόπο και, το κυριότερο, πάντα με τις ίδιες αναλογίες. Η μηχανή είχε τη δυνατότητα να φτιάχνει καφέ διαφόρων ειδών. Εγώ απλά πατούσα το σωστό κουμπί χωρίς να με απασχολεί η διαφορετική διαδικασία που ακολουθούσε η μηχανή για να φτιάξει τον καφέ που ζήτησα. Και φυσικά όταν πήγαινα σε κάποιο άλλο χώρο, απλά έπαιρνα τη μηχανή μαζί μου ή φρόντιζα να υπάρχει μια ακριβώς ίδια. Συγχαρητήρια, μόλις αντιληφθήκατε τις βασικές αρχές και τα πλεονεκτήματα του αντικειμενοστρεφούς προγραμματισμού. Κλάσεις και αντικείμενα (classes and objects) Παρατηρούμε ότι από τη στιγμή που αποφασίσαμε να κατασκευάσουμε (ή να αγοράσουμε) ένα αντικείμενο (καφετιέρα) το οποίο έκανε τη εργασία που μέχρι τώρα υλοποιούσαμε με αποσπασματικές διαδικασίες, λύθηκαν τα περισσότερα προβλήματα που είχαμε. 33

12 H γλώσσα C++ σε βάθος Μήπως λοιπόν η καλύτερη προσέγγιση και στην κατασκευή των προγραμμάτων βρίσκεται στη χρήση αντικειμένων; Τα προγράμματα με τις παραδοσιακές, διαδικαστικές, τεχνικές προγραμματισμού, ρίχνουν το βάρος περισσότερο στις διαδικασίες παρά στα δεδομένα. Ας επισημάνουμε επίσης ότι ο φυσικός και ο τεχνητός κόσμος στον οποίο ζούμε είναι πιο κοντά στη φιλοσοφία του αντικειμενοστρεφούς παρά του διαδικαστικού προγραμματισμού. Οι κλάσεις (classes) και τα αντικείμενα (objects) είναι έννοιες πάνω στις οποίες βασίζεται όλη η φιλοσοφία και τα χαρακτηριστικά των γλωσσών αντικειμενοστρεφούς προγραμματισμού. Η κλάση (class) είναι μια έννοια η οποία προσδιορίζει μια κατηγορία αντικειμένων και ταυτόχρονα περιγράφει τα κοινά χαρακτηριστικά τους. Π.χ. η κλάση "Καφετιέρα" περιγράφει μια κατηγορία συσκευών για την κατασκευή καφέ. Σχήμα 1.3 Παράδειγμα κλάσης - η κλάση "Καφετιέρα" 34

13 Κεφάλαιο 1: Εισαγωγή Όλα τα αντικείμενα αυτής της κλάσης έχουν κάποια κοινά χαρακτηριστικά και λειτουργίες. Π.χ. όλες οι καφετιέρες έχουν χώρο για νερό, καφέ, γάλα και ζάχαρη. Επίσης όλες διαθέτουν λειτουργία για να φτιάξουν καφέ σκέτο, γλυκό ή μέτριο. Ένα αντικείμενο (object) μιας κλάσης έχει όλα τα χαρακτηριστικά και τις λειτουργίες της κλάσης στην οποία ανήκει. Ένα αντικείμενο λέμε ότι αποτελεί ένα "στιγμιότυπο" (instance) μιας κλάσης. Μία κλάση δεν αναφέρεται σε κανένα συγκεκριμένο αντικείμενο, αλλά είναι μια γενική έννοια που προσδιορίζει μια κατηγορία αντικειμένων. Π.χ. η κλάση "Αυτοκίνητο" δεν αναφέρεται σε κανένα συγκεκριμένο αυτοκίνητο, αλλά αποτελεί μια έννοια που προσδιορίζει μια κατηγορία οχημάτων. Στο παρακάτω σχήμα φαίνεται πιο αναλυτικά η κλάση "Καφετιέρα" και δύο αντικείμενα που ανήκουν σε αυτή την κλάση. Σχήμα 1.4 Αντικείμενα μιας κλάσης - αντικείμενα της κλάσης "Καφετιέρα" 35

14 H γλώσσα C++ σε βάθος Στη συγκεκριμένη περίπτωση, η κλάση προσδιορίζει τα χαρακτηριστικά, χρώμα, μέγεθος, ποσότητες νερού, ζάχαρης, καφέ και γάλακτος που θα έχουν τα αντικείμενα χωρίς όμως να αναφέρονται συγκεκριμένες τιμές. Παρατηρούμε ότι τα δύο αντικείμενα της κλάσης έχουν όλα τα παραπάνω χαρακτηριστικά, αλλά με συγκεκριμένες τιμές το καθένα. Επίσης στην κλάση "Καφετιέρα" ο- ρίζονται και οι λειτουργίες που θα επιτελούν τα αντικείμενα αυτής της κλάσης: Φτιάξιμο καφέ τριών ειδών (σκέτος, μέτριος, γλυκός), γέμισμα της καφετιέρας με υλικά (καφέ, ζάχαρη, κ.λπ.), καθώς και έλεγχος για επάρκεια υλικών. Ενθυλάκωση (Encapsulation) Τα χαρακτηριστικά και οι λειτουργίες ενός α- ντικειμένου μπορεί να είναι εκτεθειμένα στον χρήστη ώστε να μπορεί να αλλάξει άμεσα τις τιμές τους ή να χρησιμοποιήσει τις λειτουργίες του. Μπορεί δηλαδή να αλλάξει την ποσότητα του "Νερού" και να ενεργοποιήσει την λειτουργία του "Ελέγχου". Η χρήση των κλάσεων και των αντικειμένων δίνει επίσης τη δυνατότητα να "αποκρύψουμε" μερικά από τα χαρακτηριστικά και τις λειτουργίες ενός αντικειμένου ώστε ο χρήστης να μην έχει άμεση πρόσβαση σε αυτά. Π.χ. φανταζόμαστε αυτή τη δυνατότητα σαν ένα κάλυμμα το οποίο απαγορεύει την πρόσβαση στους α- ποθηκευτικούς χώρους των υλικών και στο κουμπί της λειτουργίας "Έλεγχος". Σε αυτή την περίπτωση, η πλήρωση των υλικών μπορεί να γίνεται από τη λειτουργία "Γέμισμα" και ο έλεγχος να γίνεται αυτόματα χωρίς να χρειάζεται να τον ενεργοποιήσουμε άμεσα από το αντίστοιχο κουμπί. H Ενθυλάκωση δίνει τη δυνατότητα στις γλώσσες αντικειμενοστρεφούς προγραμματισμού να ομαδοποιούν και να αποκρύπτουν δεδομένα και διαδικασίες των αντικειμένων. 36

15 Κεφάλαιο 1: Εισαγωγή Κληρονομικότητα (Inheritance) Η κληρονομικότητα (inheritance) είναι ένα από τα βασικά χαρακτηριστικά του αντικειμενοστρεφούς προγραμματισμού. Μια κλάση μπορεί να παράγεται από μια άλλη κλάση (τη βασική) και ταυτόχρονα να κληρονομεί τα χαρακτηριστικά και τις λειτουργίες της. Στη νέα κλάση (παράγωγη) μπορεί να οριστούν επιπλέον χαρακτηριστικά και λειτουργίες. Σχήμα 1.5 Παράδειγμα κληρονομικότητας με την κλάση "Καφετιέρα" Στο παραπάνω σχήμα, η κλάση "Μηχανή Καπουτσίνο" παράγεται από τη βασική κλάση "Καφετιέρα". Στη νέα παράγωγη κλάση ορίζεται ως επιπλέον χαρα- 37

16 H γλώσσα C++ σε βάθος κτηριστικό η ποσότητα της σαντιγί (απαραίτητη για την κατασκευή καπουτσίνο) και ως επιπλέον λειτουργία η δυνατότητα της μηχανής να φτιάχνει καπουτσίνο με πάτημα του ανάλογου κουμπιού. Κληρονομικότητα (inheritance) είναι η δυνατότητα παραγωγής μιας νέας κλάσης από μια υπάρχουσα κλάση (βασική). Η νέα κλάση (παράγωγη) κληρονομεί όλα τα χαρακτηριστικά και τις λειτουργίες της βασικής κλάσης, αλλά ταυτόχρονα μπορεί να ορίσει δικά της επιπλέον χαρακτηριστικά και λειτουργίες. Πολυμορφισμός (Polymorphism) Ας υποθέσουμε ότι κατασκευάζουμε μια "έξυπνη" καφετιέρα η οποία ανάλογα με το βότανο και τα άλλα υλικά που τις βάζουμε φτιάχνει το αντίστοιχο ρόφημα. Για παράδειγμα, αν της βάλουμε τσάι, θα φτιάξει τσάι αν της βάλουμε Ελληνικό καφέ, θα φτιάξει Ελληνικό καφέ αν της βάλουμε και σαντιγί, θα το καταλάβει μόνη της και θα φτιάξει καπουτσίνο. Κάθε φορά η καφετιέρα ακολουθεί διαφορετική διαδικασία για να φτιάξει το κατάλληλο ρόφημα. Αυτό δεν απασχολεί καθόλου τον χρήστη, ο οποίος το μόνο που κάνει είναι να πατάει το κουμπί (λειτουργία) ρόφημα. Έτσι η καφετιέρα μας, ανάλογα με τα υλικά που της βάζουμε, ακολουθεί διαφορετική διαδικασία, άγνωστη για τον χρήστη για να μας φτιάξει το κατάλληλο ρόφημα. Η τεχνική για να κατασκευάσουμε μια τέτοια καφετιέρα λέγεται Πολυμορφισμός. Πολυμορφισμός (polymorphism) είναι η δυνατότητα που παρέχουν οι αντικειμενοστρεφείς γλώσσες προγραμματισμού στα αντικείμενα ώστε να συμπεριφέρονται διαφορετικά, ανάλογα με τον τρόπο με τον οποίο χρησιμοποιούνται. Επίσης ο πολυμορφισμός δίνει τη δυνατότητα σε οντότητες που έχουν συγκεκριμένη λειτουργία να την διαφοροποιήσουν ανάλογα με τον τρόπο χρήσης 38

17 Κεφάλαιο 1: Εισαγωγή τους. Γνωρίζουμε τη χρήση του συν (+) ως τελεστή της πρόσθεσης. Μπορούμε να φανταστούμε τη χρήση του + για να προσθέσουμε αντικείμενα, π.χ. δύο καφετιέρες; Βέβαια ΟΧΙ, διότι γνωρίζουμε ότι ο τελεστής + ορίζεται και χρησιμοποιείται μόνο για την πρόσθεση αριθμητικών δεδομένων. Όμως οι αντικειμενοστρεφείς γλώσσες προγραμματισμού μας δίνουν την δυνατότητα να αλλάξουμε τη συνήθη χρήση ενός τελεστή και να τον αναγκάσουμε να επιτελέσει διαφορετική λειτουργία ανάλογα με τα αντικείμενα στα οποία εφαρμόζεται. Για παράδειγμα, μπορούμε να ορίσουμε ότι όταν ο τελεστής + εφαρμόζεται σε αντικείμενα της κλάσης "Καφετιέρα", θα προσθέτει τις ποσότητες των υλικών, τα μεγέθη των συσκευών, και θα βγάζει ένα ενδιάμεσο χρώμα (μεταξύ των χρωμάτων των δύο συσκευών). Επομένως η πράξη Philips + AEG θα έχει ως αποτέλεσμα να δημιουργηθεί ένα νέο αντικείμενο (π.χ. το ΝΕW) της ίδιας κλάσης "Καφετιέρα" με ποσότητες υ- λικών το άθροισμα των ποσοτήτων των αντίστοιχων υλικών των αντικειμένων Philips και AEG, με μέγεθος το άθροισμα των μεγεθών και με ένα ενδιάμεσο χρώμα. Σχήμα 1.6 Υπερφόρτωση του τελεστή + για την κλάση "Καφετιέρα" Η δυνατότητα που μας παρέχουν οι αντικειμενοστρεφείς γλώσσες, να αλλάζουμε τη συμπεριφορά των τελεστών ανάλογα με τα αντικείμενα στα οποία εφαρμόζονται, καλείται υπερφόρτωση τελεστών. Η υπερφόρτωση τελεστών (operator overloading) είναι ένα ακόμη χαρακτηριστικό του πολυμορφισμού. 39

18 H γλώσσα C++ σε βάθος Σχεδιασμός και ανάπτυξη προγραμμάτων Είναι προφανές ότι το γράψιμο ενός προγράμματος προϋποθέτει τη γνώση του αντικειμένου στο οποίο θα αναφέρεται το συγκεκριμένο πρόγραμμα. Για παράδειγμα, αν θέλουμε να φτιάξουμε ένα πρόγραμμα το οποίο θα απευθύνεται σε οδοντίατρους, θα πρέπει καταρχήν να γνωρίζουμε τον τρόπο με τον οποίο δουλεύει ένας οδοντίατρος, τι απαιτήσεις έχει, τι πληροφορίες θέλει να κρατάει για τους ασθενείς του κ.λπ. Αυτό το στάδιο, κατά το οποίο εμείς ουσιαστικά "μαθαίνουμε" τον τρόπο δουλειάς του οδοντίατρου διακρίνοντας και κατανοώντας τα επιμέρους απλούστερα τμήματα από τα οποία αποτελείται η εργασία του, λέγεται ανάλυση. Μετά το στάδιο της ανάλυσης ακολουθεί το στάδιο του σχεδιασμού. Στο στάδιο αυτό μπορούμε, αν αυτό κριθεί απαραίτητο, να προτείνουμε νέους καλύτερους τρόπους εργασίας ή ακόμη και νέες δυνατότητες. Η ανάλυση και ο σχεδιασμός δεν έχουν απαραίτητα άμεση σχέση με τον προγραμματισμό, αλλά χρησιμοποιούνται ως αναγκαία εργαλεία για τη σωστή και επαγγελματική κατάστρωση προγραμμάτων. Λογικό διάγραμμα Στα στάδια της ανάλυσης και του σχεδιασμού ο αναλυτής χρησιμοποιεί, εκτός των άλλων "εργαλείων" του, γεωμετρικά σχήματα για να δώσει μια εικόνα της λειτουργίας του υπό μελέτη συστήματος. Η σχηματική αυτή απεικόνιση ενός συστήματος καλείται λογικό διάγραμμα ή διάγραμμα ροής (flow chart). Σε αυτό το βιβλίο χρησιμοποιείται συχνά το λογικό διάγραμμα για να επεξηγηθεί η λειτουργία µιας διαδικασίας ή ενός προγράμματος. Τα γεωμετρικά σχήματα που χρησιμοποιούνται σε ένα λογικό διάγραμμα είναι καθορισμένα και κάθε ένα δείχνει μια συγκεκριμένη λειτουργία. Κάθε σχήμα αντιστοιχεί σε μια κατηγορία διαδικασίας του υπό μελέτη συστήματος. Για παράδειγμα, ο ρόμβος δείχνει έλεγχο, ενώ το ορθογώνιο παραλληλόγραμμο επεξεργασία. Στον πίνακα που ακολουθεί, αναφέρονται τα σχήματα που συνήθως χρησιμοποιούνται σε ένα λογικό διάγραμμα. 40

19 Κεφάλαιο 1: Εισαγωγή Γεωμετρικό σχήμα Λειτουργία Αρχή/Τέλος διαδικασίας Επεξεργασία Έλεγχος Είσοδος/Έξοδος πληροφοριών Μεταφορά ελέγχου Σχήμα 1.7 Τα σχήματα του λογικού διαγράμματος Μέσα σε κάθε γεωμετρικό σχήμα περιγράφεται με απλά λόγια η διαδικασία που εκτελείται. Στη διαδικασία του ελέγχου είναι δυνατές μόνο δύο αποφάσεις: Ναι ή Όχι. Ανάλογα με το αποτέλεσμα του ελέγχου, το διάγραμμα ροής μας οδηγεί σε διαφορετικό παρακλάδι του. Οχι Ναι 41

20 H γλώσσα C++ σε βάθος Το επόμενο λογικό διάγραμμα δείχνει τη διαδικασία που ακολουθείται όταν κάποιος καλεί το ασανσέρ μέχρι να πάει στον όροφο που τον ενδιαφέρει. Αναμφίβολα υπάρχουν πολλές εκδοχές για το σύστημα αυτό. Το λογικό διάγραμμα που ακολουθεί δείχνει εποπτικά τη λειτουργία της συγκεκριμένης διαδικασίας. Σχήμα 1.8 Το λογικό διάγραμμα της διαδικασίας κλήσης ενός ασανσέρ Το λογικό διάγραμμα ενός προβλήματος δεν καθορίζεται μονοσήμαντα. Μπορεί να είναι από εντελώς επιγραμματικό ως πολύ αναλυτικό, ανάλογα με τη χρήση για την οποία προορίζεται. 42

21 Κεφάλαιο 1: Εισαγωγή Το λογικό διάγραμμα είναι ανεξάρτητο από τον προγραμματισμό. Χρησιμοποιείται συχνά για να μπορέσουμε να απεικονίσουμε τη λογική ενός προγράμματος πριν αρχίσουμε να το αναπτύσσουμε. Το λογικό διάγραμμα βοηθάει να κατανοήσουμε τον τρόπο με τον οποίο θα προσεγγίσουμε τη λύση. Δεν είναι απαραίτητο να φτιάχνουμε λογικό διάγραμμα πριν αρχίσουμε την ανάπτυξη ενός προγράμματος. Όμως το βέβαιο είναι ότι, αν δεν είμαστε σε θέση να φτιάξουμε το λογικό διάγραμμα ενός προγράμματος, είναι αδύνατο να φτιάξουμε το πρόγραμμα και να δουλεύει σωστά. Σε ένα λογικό διάγραμμα ποτέ δεν αναφέρουμε εντολές κάποιας γλώσσας προγραμματισμού, αλλά περιγράφουμε τις διαδικασίες με απλά λόγια. Το λογικό διάγραμμα πρέπει να είναι τόσο αναλυτικό ώστε να είναι εμφανείς οι διαδικασίες που πρέπει να δείξουμε, και τόσο γενικό ώστε να μην υπεισέρχεται σε άχρηστες λεπτομέρειες. Όταν σε ένα λογικό διάγραμμα οι διαδικασίες δεν είναι συγκεκριμένου τύπου (π.χ. έλεγχος, είσοδος/έξοδος) τότε χρησιμοποιούμε μόνο το σχήμα της επεξεργασίας (ορθογώνιο) και το διάγραμμα σε αυτή την περίπτωση λέγεται διάγραμμα block. Ανικειμενοστρεφής σχεδιασμός - UML Το λογικό διάγραμμα δίνει τη δυνατότητα άριστης απεικόνισης της λύσης ενός προβλήματος, δεν είναι όμως ο ιδανικός τρόπος για την αναπαράσταση πολύπλοκων εφαρμογών καθώς και οντοτήτων που χρησιμοποιεί η αντικειμενοστρεφής σχεδίαση προγραμμάτων. Η γλώσσα UML έχει ιδιαίτερη εφαρμογή στην ανάπτυξη και μοντελοποίηση αντικειμενοστρεφών εφαρμογών. Η UML (Unified Modeling Language) είναι μια γλώσσα μοντελοποίησης, η οποία μέσω συγκεκριμένων στοιχείων και διαγραμμάτων μας δίνει τη δυνατότητα να απεικονίσουμε πολύπλοκες εφαρμογές. Η χρήση της UML βοηθάει στην επικοινωνία των ομάδων εργασίας για την ανάπτυξη ενός συστήματος, στην παραπέρα ανάπτυξή του, αλλά και στην τελική του αξιολόγηση. Δεν είναι στους στόχους του παρόντος βιβλίου η κάλυψη της UML, η οποία ούτως ή άλλως θα απαιτούσε ένα βιβλίο από μόνη της. Στη Βιβλιογραφία (σελ. 827) θα βρείτε αναφορές για τη UML τόσο σε βιβλία όσο και στο Διαδίκτυο. 43

22 H γλώσσα C++ σε βάθος Παραδείγματα Π1.1 Ας υποθέσουμε ότι θέλουμε να παίξουμε ένα παιχνίδι στο οποίο κάποιος βάζει έναν τυχαίο αριθμό στο μυαλό του και εμείς προσπαθούμε να τον βρούμε. Λέμε συνέχεια αριθμούς στον παίκτη και αυτός μας απαντά αν ο κρυφός α- ριθμός είναι μεγαλύτερος ή μικρότερος. Το παιχνίδι τελειώνει μόλις βρούμε τον αριθμό. Το λογικό διάγραμμα απεικονίζει τη διαδικασία του παιχνιδιού. Μια μικρή παραλλαγή του παιχνιδιού, στην ο- ποία μόλις βρεθεί ο α- ριθμός ο παίκτης μας ρωτάει αν θέλουμε να ξαναπαίξουμε, φαίνεται στο διπλανό λογικό διάγραμμα. Στην περίπτωση που α- παντήσουμε ΝΑΙ, τότε ο παίκτης βάζει έναν άλλο αριθμό στο μυαλό του και το παιχνίδι ξαναρχίζει. Στην περίπτωση που απαντήσουμε αρνητικά το παιχνίδι σταματάει. 44

23 Κεφάλαιο 1: Εισαγωγή Π1.2 Η διαδικασία, που φαίνεται στο διπλανό λογικό διάγραμμα, ζητάει συνέχεια αριθμούς και εμφανίζει στο τέλος το συνολικό τους άθροισμα. Η διαδικασία σταματάει όταν δοθεί ο αριθμός 0. Σκεφτείτε τις τροποποιήσεις που θα πρέπει να γίνουν ώστε η διαδικασία να σταματάει όταν δοθούν 100 αριθμοί. Ανασκόπηση Κεφαλαίου 1 Η C++ είναι μια αντικειμενοστρεφής μεταγλωττιζόμενη γλώσσα τα χαρακτηριστικά της οποίας ευνοούν τον τμηματικό προγραμματισμό. Στη C++ αρκετές λειτουργίες υλοποιούνται από τα αντικείμενα και στις συναρτήσεις βιβλιοθήκης που τη συνοδεύουν. Τα διαφορετικά είδη δεδομένων που μπορεί να χειριστεί μια γλώσσα λέγονται τύποι δεδομένων. Μια μεταβλητή είναι το όνομα μιας θέσης μνήμης, της οποίας η τιμή μπορεί να μεταβάλλεται. Ο αντικειμενοστρεφής προγραμματισμός βασίζεται στη "μοντελοποίηση" του προβλήματος χρησιμοποιώντας αντικείμενα. Κάθε αντικείμενο ανήκει σε μια κλάση η οποία προσδιορίζει τα χαρακτηριστικά και τις λειτουργίες του. Τα κύρια χαρακτηριστικά του αντικειμενοστρεφούς προγραμματισμού είναι η ενθυλάκωση, η κληρονομικότητα και ο πολυμορφισμός. Το λογικό διάγραμμα είναι ένας εποπτικός τρόπος παρουσίασης μιας διαδικασίας ή ενός προγράμματος και συμβάλλει στην κατανόησή του. H UML αντίστοιχα είναι μια γλώσσα μοντελοποίησης, η οποία έχει εφαρμογή στον σχεδιασμό αντικειμενοστρεφών πολύπλοκων συστημάτων. 45

Περιεχόμενα. Κεφάλαιο 1: Εισαγωγή...17. Κεφάλαιο 2: Μια πρώτη ματιά στη C++...49

Περιεχόμενα. Κεφάλαιο 1: Εισαγωγή...17. Κεφάλαιο 2: Μια πρώτη ματιά στη C++...49 Περιεχόμενα Κεφάλαιο 1: Εισαγωγή...17 O στόχος του βιβλίου και σε ποιους απευθύνεται...19 Πως να διαβάσετε αυτό το βιβλίο...20 Η γλώσσα C++ Ιστορική αναδρομή...21 Τα χαρακτηριστικά της C++...22 Βασικές

Διαβάστε περισσότερα

Περιεχόμενα. Πρόλογος... 17

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

Διαβάστε περισσότερα

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23 Περιεχόμενα Λίγα λόγια για αυτή την έκδοση...... 23 Κεφάλαιο 1 Εισαγωγή... 25 O στόχος του βιβλίου και σε ποιους απευθύνεται... 27 Πώς να διαβάσετε αυτό το βιβλίο... 27 Εκπαίδευση από απόσταση... 29 Ιστορική

Διαβάστε περισσότερα

Περιεχόμενα. Πρόλογος... 21

Περιεχόμενα. Πρόλογος... 21 Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31

Διαβάστε περισσότερα

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579 Ευρετήριο Η γλώσσα C σε βάθος # #define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579 A abs(), 625 AND, 64 ASCII πίνακας

Διαβάστε περισσότερα

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές στο χώρο

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

Διαβάστε περισσότερα

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ii ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. Εισαγωγή - Βασικές έννοιες....1 1.1 Εσωτερική παράσταση δεδομένων....2 1.1.1 Παράσταση θέσης....3 1.1.2 Μετατροπές μεταξύ συστημάτων διαφορετικών βάσεων....5 1.1.3 Οι αριθμητικές

Διαβάστε περισσότερα

Στοιχειώδης προγραμματισμός σε C++

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

Διαβάστε περισσότερα

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός Κλάσεις Αντικειμενοστραφής Προγραμματισμός Κλάσεις-Αντικείμενα Ένα παράδειγμα Συναρτήσεις κατασκευής (Constructors) Συνάρτηση καταστροφής (Destructor) Συναρτήσεις πρόσβασης (Access Functions) Συνάρτηση

Διαβάστε περισσότερα

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

Διαβάστε περισσότερα

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

Διαβάστε περισσότερα

Ενδεικτική περιγραφή μαθήματος

Ενδεικτική περιγραφή μαθήματος ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή. Ο Bjarne Stroustrup, εργαζόμενος στα εργαστήρια

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

Διαβάστε περισσότερα

Πρόβλημα 37 / σελίδα 207

Πρόβλημα 37 / σελίδα 207 Πρόβλημα 37 / σελίδα 207 2.5. Ôåóô áõôïáîéïëüãçóçò Δίνονται οι παρακάτω ομάδες προτάσεων. Σε κάθε μία από αυτές, να κάνετε τις απαραίτητες διορθώσεις ώστε να ισχύουν οι προτάσεις 1. Η αναπαράσταση

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23 Περιεχόμενα Λίγα λόγια για αυτή την έκδοση...... 23 Κεφάλαιο 1 Εισαγωγή... 25 O στόχος του βιβλίου και σε ποιους απευθύνεται... 27 Πώς να διαβάσετε αυτό το βιβλίο... 27 Εκπαίδευση από απόσταση... 29 Ιστορική

Διαβάστε περισσότερα

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C# Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct

Διαβάστε περισσότερα

Από την πρώτη στην τέταρτη έκδοση...

Από την πρώτη στην τέταρτη έκδοση... Από την πρώτη στην τέταρτη έκδοση... Όταν το Φεβρουάριο του 2004 έστειλα την πρότασή μου στον ΚΛΕΙΔΑΡΙΘ- ΜΟ για την έκδοση ενός βιβλίου για τη γλώσσα C, δεν θα μπορούσα ποτέ να φανταστώ ότι οχτώ χρόνια

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

Διαβάστε περισσότερα

Γενικά (για τις γραπτές εξετάσεις)

Γενικά (για τις γραπτές εξετάσεις) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

Διαβάστε περισσότερα

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ Επανάληψη για τις Τελικές εξετάσεις (Διάλεξη 24) Εισαγωγή Το μάθημα EPL032 έχει ως βασικό στόχο την επίλυση προβλημάτων πληροφορικής με την χρήση της γλώσσας προγραμματισμού C. Επομένως πρέπει: Nα κατανοήσετε

Διαβάστε περισσότερα

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. 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) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

Διαβάστε περισσότερα

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Παύλος Εφραιμίδης 1 Βασικά Στοιχεία της γλώσσας Τύποι Δεδομένων Η έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) iti τύπους δεδομένων δδ αναφορές 2 Βασικά Στοιχεία της

Διαβάστε περισσότερα

Διαγράμματα Κλάσεων στη Σχεδίαση

Διαγράμματα Κλάσεων στη Σχεδίαση Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν

Διαβάστε περισσότερα

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13 Περιεχόμενα Πρόλογος... 13 ΜΕΡΟΣ ΠΡΩΤΟ Κεφ. 1 Περί προγραμματισμού και γλωσσών προγραμματισμού Προγράμματα και Λειτουργικά Συστήματα... 17 Γλώσσες προγραμματισμού και εργαλεία ανάπτυξης προγραμμάτων...

Διαβάστε περισσότερα

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

Διαβάστε περισσότερα

Σύνθεση και Κληρονομικότητα

Σύνθεση και Κληρονομικότητα Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση

Διαβάστε περισσότερα

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 6: Διαχείριση Μνήμης & Δυναμικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυναμικές Δομές Δεδομένων Γενικά Δυναμική Δέσμευση/Αποδέσμευση Μνήμης Δομή τύπου structure

Διαβάστε περισσότερα

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include

Διαβάστε περισσότερα

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

Διαβάστε περισσότερα

Σύνθεση και Κληρονομικότητα

Σύνθεση και Κληρονομικότητα Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση

Διαβάστε περισσότερα

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java Εξάμηνο Μάθημα Τίτλος 2017 2018 Εαρινό Αντικειμενοστραφής Προγραμματισμός Ι Ύλη εργαστηρίου, Ασκήσεις Java Ημερομηνία Εργαστήριο 5 ο Α. Ύλη εργαστηρίου 5.1 Έννοιες αντικειμενοστραφούς προγραμματισμού,

Διαβάστε περισσότερα

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό με C++ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 9: Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό Κωνσταντίνος Κουκουλέτσος Τμήμα

Διαβάστε περισσότερα

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΕΡΛΙΑΟΥΝΤΑΣ ΣΤΕΦΑΝΟΣ, ΠΕ19 ΚΕΦΑΛΑΙΟ 3 Αλγόριθμοι 3. Αλγόριθμοι 2 3. Αλγόριθμοι 3.1 Η έννοια του αλγορίθμου 3.2 Χαρακτηριστικά αλγορίθμου 3.3 Ανάλυση αλγορίθμων

Διαβάστε περισσότερα

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

Διαβάστε περισσότερα

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ 2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τελικό επαναληπτικό διαγώνισμα Επιμέλεια: Δρεμούσης Παντελής

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τελικό επαναληπτικό διαγώνισμα Επιμέλεια: Δρεμούσης Παντελής ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τελικό επαναληπτικό διαγώνισμα Επιμέλεια: Δρεμούσης Παντελής ΘΕΜΑ 1 ο Α. Να χαρακτηρίσετε τις παρακάτω προτάσεις ως σωστές ή λανθασμένες. 1. Μια διαδικασία

Διαβάστε περισσότερα

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο Εισαγωγή στο Bison Μεταγλωττιστές, Χειμερινό εξάμηνο 2016-2017 Συντακτική Ανάλυση Αποτελεί την δεύτερη φάση της μετάφρασης. Εύρεση της σχέσης που υπάρχει των λεκτικών μονάδων ενός προγράμματος. Παράδειγμα

Διαβάστε περισσότερα

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου Αντικειμενοστρέφεια Henri Matisse, Harmony in Red, 1908 Κωστής Σαγώνας Νίκος Παπασπύρου Ορισμοί αντικειμενοστρέφειας Ποιοι είναι οι ορισμοί των παρακάτω; Αντικειμενοστρεφής

Διαβάστε περισσότερα

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

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Β Μέρος Δομή Ελέγχου if-elif-else Επαναληπτική Δομή Ελέγχου while Επαναληπτική Δομή Ελέγχου for Αλληλεπίδραση χρήστη-προγράμματος Συναρτήσεις Η δομή

Διαβάστε περισσότερα

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Μεταβλητές-Σταθερές-Παράμετροι Τα στοιχεία

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Κων. Κόκκινος Μεταβλητές-1 Οι μεταβλητές αποτελούν θέσεις μνήμης στις οποίες αποθηκεύονται τιμές αντίστοιχες

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Computing. Νοέμβριος Έκδοση 1.0

Computing. Νοέμβριος Έκδοση 1.0 Computing Νοέμβριος 2017 Έκδοση 1.0 Ενότητα Computing Αυτή η ενότητα παραθέτει τις βασικές έννοιες και δεξιότητες που σχετίζονται με την ικανότητα χρήσης υπολογιστικής σκέψης (computational thinking) και

Διαβάστε περισσότερα

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

Ενδεικτικές σελίδες από κάθε κεφάλαιο του βιβλίου

Ενδεικτικές σελίδες από κάθε κεφάλαιο του βιβλίου Ενδεικτικές σελίδες από κάθε κεφάλαιο του βιβλίου Κεφάλαιο Εισαγωγή 26 H γλώσσα C++ σε βάθος Εισαγωγή Ξεκίνησα τη "θητεία" μου ως προγραμματιστής όταν ακόμα τα προγράμματα γράφονταν σε διατρητικές μηχανές

Διαβάστε περισσότερα

Κλάσεις και αντικείμενα #include <iostream.h<

Κλάσεις και αντικείμενα #include <iostream.h< Κλάσεις και αντικείμενα #include class Person private: char name[30]; int age; public: void readdata() cout > name; cout > age; void

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

Διαβάστε περισσότερα

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

Διαβάστε περισσότερα

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ «ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ 1 4.1. Οριςμόσ φνθετων τφπων κλάςεων 2 Με εξαίρεςη τουσ βαςικούσ τύπουσ τησ Java (int, float, boolean, κλπ) τα

Διαβάστε περισσότερα

Εισαγωγή στη γλώσσα προγραμματισμού C++

Εισαγωγή στη γλώσσα προγραμματισμού C++ Εισαγωγή στη γλώσσα προγραμματισμού C++ Περιβάλλον Εργασίας 2 Περιβάλλον Εργασίας 1. Χρήση απλού κειμενογράφου και Μεταγλωττιστή 2. Ολοκληρωμένα Περιβάλλοντα Εργασίας (Integrated Development Environments)

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εισαγωγή στην C++ Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η γλώσσα C++ Σχεδιάστηκε το 1979 από τον Bjarne Stroustrup στα Bell Laboratories Βασίζεται

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

Ενδεικτική περιγραφή μαθήματος

Ενδεικτική περιγραφή μαθήματος ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.

Διαβάστε περισσότερα

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

Διαβάστε περισσότερα

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++

ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++ Πέρασμα μεταβλητών, Templates, Συσχετίσεις μεταξύ κλάσεων ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++ Μ. Ρήγκου (rigou@ceid.upatras.gr) Τι θα συζητήσουμε σήμερα Πέρασμα με τιμή και με αναφορά Template functions και classes

Διαβάστε περισσότερα

Περιεχόµενα. Πρόλογος... 15

Περιεχόµενα. Πρόλογος... 15 Πρόλογος... 15 Κεφάλαιο 1: Εισαγωγή... 17 Πώς να διαβάσετε αυτό το βιβλίο...18 Η γλώσσα C Ιστορική αναδροµή...19 Τα χαρακτηριστικά της C...20 C Μια δοµηµένη γλώσσα...20 C Μια γλώσσα για προγραµµατιστές...21

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Γλώσσες Προγραμματισμού 1 Εξέλιξη Οι γλώσσες προγραμματισμού είναι σύνολα από προκαθορισμένες λέξεις οι οποίες συνδυάζονται σε προγράμματα σύμφωνα

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

Διαβάστε περισσότερα

Πληροφορική 2. Γλώσσες Προγραμματισμού

Πληροφορική 2. Γλώσσες Προγραμματισμού Πληροφορική 2 Γλώσσες Προγραμματισμού 1 2 Γλώσσες προγραμματσιμού Επιτρέπουν την κωδικοποίηση των αλγορίθμων Η εκτέλεση ενός προγράμματος θα πρέπει να δίνει τα ίδια αποτελέσματα με την νοητική εκτέλεση

Διαβάστε περισσότερα

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

Διαβάστε περισσότερα

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης ΠΟΛΥΜΟΡΦΙΣΜΟΣ Λόγω της θεμελιώδους σημασίας της έννοιας του πολυμορφισμού (polymorphism) στην αντικειμενοστρεφή σχεδίαση, κρίνεται σκόπιμο στο σημείο αυτό του βιβλίου να αναλυθεί εκτενέστερα. Ο πολυμορφισμός

Διαβάστε περισσότερα

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30 ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 1.1 Τι είναι Πληροφορική;...11 1.1.1 Τι είναι η Πληροφορική;...12 1.1.2 Τι είναι ο Υπολογιστής;...14 1.1.3 Τι είναι το Υλικό και το

Διαβάστε περισσότερα

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

Διαβάστε περισσότερα

Αντικειµενοστρεφής Προγραµµατισµός

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( ) Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική

Διαβάστε περισσότερα

Περιεχόμενα. Πρόλογος 15

Περιεχόμενα. Πρόλογος 15 Περιεχόμενα Πρόλογος 15 1 Δημιουργία προγραμμάτων Java 25 Ορισμός βασικής ορολογίας προγραμματισμού 26 Σύγκριση διαδικαστικού και αντικειμενοστρεφούς προγραμματισμού 29 Διαδικαστικός προγραμματισμός 29

Διαβάστε περισσότερα

Με τι ασχολείται ο αντικειμενοστραφής προγραμματισμός

Με τι ασχολείται ο αντικειμενοστραφής προγραμματισμός 1 2 Η Αρχή Ο αντικειμενοστραφής προγραμματισμός άρχισε να χρησιμοποιείται από τους προγραμματιστές, όταν ουσιαστικά ο διαδικαστικός (δομημένος) προγραμματισμός, δεν μπορούσε να ανταποκριθεί στις νέες απαιτήσεις

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

Διαβάστε περισσότερα

App Inventor 3ο Μάθημα (Ζάρια - επέκταση)

App Inventor 3ο Μάθημα (Ζάρια - επέκταση) App Inventor 3ο Μάθημα (Ζάρια - επέκταση) Μεταβλητές Δομή επιλογής If then Λογικές συνθήκες Στο μάθημα αυτό θα επεκτείνουμε την εφαρμογή ζάρια που αναπτύξαμε στο πρώτο μάθημα ώστε να εμφανίζει μήνυμα επιτυχίας

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ο ΚΕΦΑΛΑΙΟ 1) Τι είναι πρόβλημα (σελ. 3) 2) Τι είναι δεδομένο, πληροφορία, επεξεργασία δεδομένων (σελ. 8) 3) Τι είναι δομή ενός προβλήματος (σελ. 8)

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές

Διαβάστε περισσότερα

Συναρτήσεις και Πίνακες

Συναρτήσεις και Πίνακες Συναρτήσεις και Πίνακες Συναρτήσεις καθιερωμένης βιβλιοθήκης της C++ Συναρτήσεις οριζόμενες από τον χρήστη Μεταβίβαση κατ αξία Συναρτήσεις void και λογικές συναρτήσεις Μεταβίβαση κατ αναφορά Επιστροφή

Διαβάστε περισσότερα

Τι είναι κλάση Κλάση

Τι είναι κλάση Κλάση 35 Τι είναι κλάση Κλάση είναι μια συλλογή από μεταβλητές. Αλλιώς είναι ένα σύνολο από: δεδομένα που δηλώνουν τα χαρακτηριστικά της κλάσης (τι είναι) και συναρτήσεις που προδιαγράφουν την συμπεριφορά της

Διαβάστε περισσότερα

Standard Template Library (STL) C++ library

Standard Template Library (STL) C++ library Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Standard Template Library (STL) C++ library Δομές Δεδομένων Μάριος Κενδέα kendea@ceid.upatras.gr Εισαγωγή Η Standard Βιβλιοθήκη προτύπων

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ ΣΤΟΙΒΑ 2 Μια στοίβα

Διαβάστε περισσότερα

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

Διαβάστε περισσότερα

Τύποι δεδομένων, τελεστές, μεταβλητές

Τύποι δεδομένων, τελεστές, μεταβλητές Τύποι δεδομένων, τελεστές, μεταβλητές Βασικά στοιχεία της γλώσσας Η Java χαρακτηρίζεται από ένα αρκετά καλά οργανωμένο σύνολο εντολών κι ένα μέρος της επιτυχίας της οφείλεται στα διάφορα APIs (βιβλιοθήκες)

Διαβάστε περισσότερα

8 FORTRAN 77/90/95/2003

8 FORTRAN 77/90/95/2003 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1: Εισαγωγή... 17 1.1. Ανασκόπηση της ιστορίας των υπολογιστών... 18 1.2. Πληροφορία και δεδομένα... 24 1.3. Ο Υπολογιστής... 26 1.4. Δομή και λειτουργία του υπολογιστή... 28 1.5.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

γρηγορότερα. Αν θέλουμε να μηδενίσουμε όλα τα υπόλοιπα bit μπορούμε να χρησιμοποιήσουμε την εντολή:

γρηγορότερα. Αν θέλουμε να μηδενίσουμε όλα τα υπόλοιπα bit μπορούμε να χρησιμοποιήσουμε την εντολή: A. Tips 1. Τοποθέτηση σημαίας ή bit ενός καταχωρητή ή μεταβλητής... 2 2. Καθάρισμα σημαίας ή bit ενός καταχωρητή ή μεταβλητής... 2 3. Σύγκριση μονοδιάστατων πινάκων (στο παράδειγμα 5 στοιχείων)... 2 4.

Διαβάστε περισσότερα

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2 Οικονόμου Βαγγέλησ Διάλεξη Νο 2 Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2 1 Η έννοια τησ μεταβλητήσ έδωςε λύςη ςτο πρόβλημα τησ αναφοράσ ςτην κύρια μνήμη του υπολογιςτή. Οι γλώςςεσ προγραμματιςμού υποςτηρίζουν

Διαβάστε περισσότερα

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 23 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 2ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος I/O 24 Βασική βιβλιοθήκη συναρτήσεων εισόδου/εξόδου #include Η συνάρτηση εξόδου printf printf("συμβολοσειρά

Διαβάστε περισσότερα