ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: «Σχεδιασμός και ανάπτυξη ιστοσελίδων ηλεκτρονικής εκπαίδευσης (e learning) σε θέματα αντικειμενοστραφή προγραμματισμού.

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

Download "ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: «Σχεδιασμός και ανάπτυξη ιστοσελίδων ηλεκτρονικής εκπαίδευσης (e learning) σε θέματα αντικειμενοστραφή προγραμματισμού."

Transcript

1 Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: «Σχεδιασμός και ανάπτυξη ιστοσελίδων ηλεκτρονικής εκπαίδευσης (e learning) σε θέματα αντικειμενοστραφή προγραμματισμού.» ΕΚΠΟΝΗΣΗ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ ΑΠΟ ΤΟΝ ΣΠΟΥΔΑΣΤΗ: ΜΠΙΛΛΗΣ ΙΩΑΝΝΗΣ ΕΙΣΗΓΗΤΗΣ: ΠΑΠΑΝΤΟΠΟΥΛΟΣ ΓΙΩΡΓΟΣ ΚΑΒΑΛΑ

2 ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ ΚΕΦΑΛΑΙΟ 1 Κεφάλαιο 1 - Δήλωση Τάξεων Κεφάλαιο 1 - Δήλωση Μεταβλητών Private / Public Κεφάλαιο 1 - Ερωτηματολόγιο Κεφάλαιο 1 - Απαντήσεις Ερωτήσεων ΚΕΦΑΛΑΙΟ 2 Κεφάλαιο 2 - Δομητές / Αποδομητές Κεφάλαιο 2 - Ερωτηματολόγιο Κεφάλαιο 2 - Απαντήσεις Ερωτήσεων ΚΕΦΑΛΑΙΟ 3 Κεφάλαιο 3 - Κληρονομικότητα Κεφάλαιο 3 - Υπέρβαση & Απόκρυψη συναρτήσεων Κεφάλαιο 3 - Ερωτηματολόγιο Κεφάλαιο 3 - Απαντήσεις Ερωτήσεων ΚΕΦΑΛΑΙΟ 4 Κεφάλαιο 4 - Πολυμορφισμός Κεφάλαιο 4 Ιδεατές (virtual) συναρτήσεις Κεφάλαιο 4 - Ερωτηματολόγιο Κεφάλαιο 4 - Απαντήσεις Ερωτήσεων ΒΙΒΛΙΟΓΡΑΦΙΑ

3 Εισαγωγή Σε αυτήν την πτυχιακή εργασία δημιουργήθηκε μία «ιστοσελίδα» για την εκμάθηση του αντικειμενοστραφούς προγραμματισμού με τη βοήθεια του διαδικτύου. Με τον τρόπο αυτό, ο κάθε ένας που ενδιαφέρεται να αποκτήσει κάποιες πληροφορίες γύρω από την γλώσσα προγραμματισμού (C++),μπορεί να επισκεφθεί το site και να εμπλουτίσει τις γνώσεις του. Η διδασκαλία αυτή είναι οργανωμένη σε 4 κεφάλαια ξεκινώντας από τις πιο απλές έννοιες. Έμφαση δίνεται στην παρουσίαση των βασικών εννοιών γιατί θεωρήσαμε ότι ο αναγνώστης δεν έχει κάποια προηγούμενη εμπειρία στον προγραμματισμό. Στο τέλος κάθε κεφαλαίου υπάρχουν ερωτήσεις για την κατανόηση των όσων θεωρητικών είχαν προηγηθεί πιο πάνω. Σε αυτήν την έντυπη μορφή υπάρχουν όλα τα στοιχεία της θεωρίας, καθώς και τα ερωτηματολόγια χωρίς όμως να υπάρχουν τα σχετικά links μεταφοράς μας από την μία σελίδα στην άλλη ή βλέποντας τις απαντήσεις κτλ. Όλοι μας έχουμε χρησιμοποιήσει προγράμματα υπολογιστών, όπως είναι ένας επεξεργαστής κειμένου, ένα λογιστικό πρόγραμμα ή το περιβάλλον των Windows. Τα προγράμματα των υπολογιστών, ή λογισμικό (software), είναι αρχεία που περιέχουν εντολές οι οποίες λένε στον υπολογιστή τι να κάνει. Με άλλα λόγια, τα αρχεία περιέχουν συγκεκριμένες εντολές, τις οποίες ο υπολογιστής εκτελεί μία μία, για να πραγματοποιήσει την εργασία που θέλετε. Όταν δημιουργείτε ένα πρόγραμμα καθορίζεται τις εντολές που θέλετε να εκτελέσει ο υπολογιστής για να πάρετε το επιθυμητό αποτέλεσμα. Προγραμματισμός είναι η διαδικασία δημιουργίας μιας λίστας εντολών τις οποίες ο υπολογιστής πρέπει να εκτελέσει για να πραγματοποιήσει μία συγκεκριμένη εργασία. Για να καθορίσετε αυτές τις εντολές χρησιμοποιείτε μία γλώσσα προγραμματισμού όπως είναι η C++. Καλή σας Συνέχεια! Επόμενη Σελίδα => 3

4 Κεφάλαιο 1 Δήλωση Τάξεων Η C++ χρησιμοποιεί μία τάξη (class) για να αποθηκεύει τα δεδομένα ενός αντικειμένου και τις πράξεις που μπορούν να εκτελούνται πάνω σ αυτά τα δεδομένα.όταν κάνετε αντικειμενοστραφή προγραμματισμό, επικεντρώνετε την προσοχή σας στα πράγματα που αποτελούν ένα σύστημα και στις πράξεις που πρέπει να εκτελείτε σ αυτά τα πράγματα. Για παράδειγμά θα μπορούσατε να έχετε πράξεις που τυπώνουν, εμφανίζουν στην οθόνη, διαγράφουν, ή τροποποιούν ένα αρχείο. Στη C++, χρησιμοποιείται μία τάξη για να ορίσετε τα αντικείμενα σας. Σκοπός σας είναι να συμπεριλάβετε στην τάξη όσο περισσότερες πληροφορίες μπορείτε για το αντικείμενο. Έτσι μπορείτε να πάρετε μία τάξη που δημιουργήσατε για κάποιο πρόγραμμα και να τη χρησιμοποιήσετε σε πολλά προγράμματα. Σε μία τάξη αποθηκεύονται δεδομένα, καθώς και συναρτήσεις που εκτελούν διάφορες πράξεις πάνω στα δεδομένα. Όπως μία δομή, κάθε τάξη της C++ έχει ένα μοναδικό όνομα, που ακολουθείται από μία αγκύλη ανοίγματος, ένα ή περισσότερα μέλη, και μία αγκύλη κλεισίματος. Αφού ορίσετε μία τάξη, μπορείτε να δηλώσετε μεταβλητές του συγκεκριμένου τύπου τάξης, που ονομάζονται αντικείμενα (objects). (βλέπε εικόνα 1) Εικόνα 1 4

5 Στη συγκεκριμένη περίπτωση, η τάξη περιέχει τρία μέλη που είναι μεταβλητές και ένα μέλος που είναι συνάρτηση και εκτυπώνει τις τρεις μεταβλητές όταν την καλούμε.στην συνέχεια στο κυρίως πρόγραμμα δημιουργήτε το πρώτο αντικείμενο της τάξης μας, και βάζουμε τιμές στις μεταβλητές. Τέλος καλούμε την συνάρτηση για να εκτυπώσει τα στοιχεία που είχαμε κάνει εισαγωγή προηγουμένος στην τάξη μας. Γενικά στοιχεία τάξεων: Τα προγράμματα της C++ αναπαριστούν τα αντικείμενα χρησιμοποιώντας μία τάξη. Μία τάξη όπως και μία δομή περιέχει μέλη. Τα μέλη μιας τάξης μπορούν να αποθηκεύουν πληροφορίες (δεδομένα) ή να είναι συναρτήσεις που επενεργούν πάνω στα δεδομένα (μέθοδοι). Κάθε τάξη έχει ένα μοναδικό όνομα. Αφού ορίσετε μία τάξη, μπορείτε να δηλώσετε τα αντικείμενα της, χρησιμοποιώντας το όνομα της τάξης σαν τύπο. Για να προσπελάσετε μέλη της τάξης, χρησιμοποιείτε τον τελεστή τελείας. Μία συνάρτηση μέλος μιας τάξης μπορεί να οριστεί μέσα ή έξω από τον ορισμό της τάξης. Αν ορίσετε τη συνάρτηση έξω από τον ορισμό της τάξης, πρέπει να προσδιορίσετε το όνομα της τάξης και να χρησιμοποιήσετε τον τελεστή διάκρισης εμβέλειας, με την μορφή τάξη::συνάρτηση. Επόμενη Σελίδα => 5

6 Κεφάλαιο 1 Δήλωση Μεταβλητών Private / Public Για να χρησιμοποιήσετε μία τάξη, τα προγράμματά σας αρκεί να ξέρουν τις πληροφορίες που αποθηκεύονται στην τάξη (μέλη δεδομένων), και τις μεθόδους που πραγματοποιούν το χειρισμό των δεδομένων (συναρτήσεις μέλη). Τα προγράμματα δεν χρειάζεται να ξέρουν πως λειτουργούν οι μέθοδοι. Με άλλα λόγια, το πρόγραμμα θα πρέπει να αντιμετωπίζει την τάξη σαν ένα «μαύρο κουτί». Πρέπει να ξέρει ποιες μεθόδους μπορεί να καλεί και ποιες παραμέτρους πρέπει να μεταβιβάζει σ αυτές τις μεθόδους, αλλά δε χρειάζεται να ξέρει τη συγκεκριμένη επεξεργασία που γίνεται μέσα στην τάξη (στο μαύρο κουτί). Απόκρυψη πληροφοριών (information hiding) είναι η διαδικασία με την οποία κάνετε διαθέσιμες στο πρόγραμμα μόνο τις ελάχιστες πληροφορίες μιας τάξης, τις οποίες χρειάζεται το πρόγραμμα για να χρησιμοποιήσει την τάξη. Τα ιδιωτικά και τα δημόσια μέλη των τάξεων της C++ σαν βοηθούν να κάνετε απόκρυψη πληροφοριών μέσα στα προγράμματά σας. Η τάξη που δημιουργήσατε πριν χρησιμοποιούσε την ετικέτα public, για να κάνει όλα τα μέλη της τάξης δημόσια, δηλαδή ορατά σε ολόκληρο το πρόγραμμα. Έτσι, το πρόγραμμα μπορούσε να έχει άμεση πρόσβαση σε οποιοδήποτε μέλος, με τον τελεστή τελείας. Εικόνα 2 Όταν δημιουργείτε τις τάξεις σας, μπορεί να έχετε μέλη που τις τιμές τους τις χρησιμοποιεί εσωτερικά η τάξη για να κάνει την επεξεργασία της, αλλά το ίδιο το πρόγραμμα δε χρειάζεται να τις προσπελάζει. Τα μέλη αυτού του είδους είναι ιδιωτικά μέλη, και πρέπει να κρύβονται από το πρόγραμμα. Εξ ορισμού, αν δεν χρησιμοποιήσετε την ετικέτα public (δημόσια), η C++ θεωρεί όλα τα μέλη των 6

7 τάξεων private (ιδιωτικά). Τα προγράμματα δεν μπορούν να προσπελάζουν ιδιωτικά μέλη τάξεων με τον τελεστή τελείας. Τα ιδιωτικά μέλη μπορούν να προσπελάζονται μόνο με τις μεθόδους της τάξης. Αν το πρόγραμμα σας επιχειρήσει να τα προσπελάσει με τον τελεστή τελείας, ο μεταγλωττιστής θα εμφανίσει μήνυμα συντακτικού λάθους. Πρέπει να προστατεύεται τα μέλη δεδομένων μιας τάξης από την άμεση προσπέλαση τους κάνοντας τα ιδιωτικά. Έτσι το πρόγραμμα δε θα μπορεί άμεσα να δίνει τιμές, αλλά θα πρέπει να καλεί μία μέθοδο της τάξης για να αποδώσει τιμές. Τέλος όταν δημιουργείτε προγράμματα που χειρίζονται μέλη τάξεων, μπορείτε να τοποθετείτε μπροστά στο κάθε όνομα μέλους το όνομα τάξης του και τον τελεστή διάκρισης εμβέλειας (::), όπως employee::name, για να αποφύγετε πιθανές συγκρούσης. Εικόνα 3 Επόμενη Σελίδα => 7

8 Κεφάλαιο 1 Ερωτηματολόγιο 1. Ερωτήσεις σωστού - λάθους Επιλέξτε Σωστό ή Λάθος και πατήστε "ΑΠΑΝΤΗΣΗ" για να δείτε το σωστό! Ποιες από τις παρακάτω δηλώσεις τάξεων είναι ορθές Σωστό Λάθος ΑΠΑΝΤΗΣΗ Σωστό Λάθος ΑΠΑΝΤΗΣΗ 8

9 2. Ερωτήσεις ανάπτυξης Γράψτε μία λύση και πατήστε "ΑΠΑΝΤΗΣΗ" για να δείτε μία από τις πιθανές απαντήσεις! α. Δηλώστε μια τάξη με όνομα book και δύο private μέλη ως εξής: title ως κείμενο, pages ως ακέραιος. ΑΠΑΝΤΗΣΗ b. Στην προηγούμενη δήλωση προσθέστε ένα public μέλος ως εξής: Μια συνάρτηση με όνομα setbook με δύο παραμέτρους ένα τύπου string και ένα τύπου int, η οποία θα εκχωρεί τις τιμές των παραμέτρων της στις ιδιότητες name και pages αντίστοιχα. ΑΠΑΝΤΗΣΗ Επόμενη Σελίδα => 9

10 ΑΠΑΝΤΗΣΗ 1a Η Σωστή απάντηση είναι: "Λάθος" γιατί πρέπει να αντικατασταθούν οι παρενθέσεις "()" στην αρχή και στο τέλος της class με άγκιστρα "{}". ΑΠΑΝΤΗΣΗ 1b Η Σωστή απάντηση είναι: "Σωστό" γιατί όταν δεν υπάρχουν οι ετικέτες private και public, ισχύει εξ ορισμού το private. 10

11 ΑΠΑΝΤΗΣΗ 2a Προτεινόμενη Σωστή απάντηση είναι: ΑΠΑΝΤΗΣΗ 2b Προτεινόμενη Σωστή απάντηση είναι: 11

12 Κεφάλαιο 2 Δομητές / Αποδομητές Δομητής Ο δομητής είναι μία μέθοδος η οποία είναι απαραίτητη σε κάθε τάξη και καλείται κάθε φορά που διακηρύσσεται ένα αντικείμενο της τάξης.εφόσον κανένας δομητής δεν έχει δηλωθεί από τον χρήστη τότε ο μεταγλωττιστής δημιουργεί μόνος του ένα δομητή του οποίου η υλοποίηση είναι η απλούστερη δυνατή. Κάθε δομητής έχει τα εξής χαρακτηριστικά: Το όνομά του πρέπει να είναι ίδιο με το όνομα της τάξης. Δεν επιτρέπεται να έχει τύπο (παρά το γεγονός ότι ουσιαστικά είναι μία μέθοδος) Μία τάξη μπορεί να έχει περισσότερους από ένα δομητές. Όλοι έχουν το ίδιο όνομα και δεν έχουν τύπο. Το χαρακτηριστικό που τους διαφοροποιεί είναι η λίστα ορισμάτων. Δεν επιτρέπεται δύο δομητές να έχουν ακριβώς την ίδια λίστα ορισμάτων. Πρέπει να έχουν τουλάχιστον μία διαφορά, είτε στον αριθμό των ορισμάτων είτε στον τύπο ενός τουλάχιστον ορίσματος. Ο δομητής με κενή λίστα ορισμάτων ονομάζεται προκαθορισμένος δομητής. Ένας προκαθορισμένος δομητής όταν δημιουργείται από το μεταγλωττιστή δεν έχει καμία γραμμή εντολών, αλλά όταν δημιουργηθεί από τον προγραμματιστή μπορεί να περιλαμβάνει κώδικα όπως και κάθε άλλος δομητής. Κάθε φορά που διακηρύσσεται ένα αντικείμενο μιας τάξης με περισσότερους από ένα δομητές, καλείται ο δομητής του οποίου η λίστα ορισμάτων ταιριάζει με τη λίστα της κλήσης του δομητή. Ένας δομητής δε μπορεί να κληθεί με άλλο τρόπο παρά μόνο κατά τη διακήρυξη ενός αντικειμένου. Αποδομητής Όπως ο δομητής έτσι και ο αποδομητής είναι μια μέθοδος της τάξης η οποία δεν έχει τύπο και είναι υποχρεωτικό να υπάρχει σε κάθε τάξη. Η λειτουργία του είναι να απελευθερώσει τη μνήμη που έχει δεσμευθεί για το αντικείμενο. Ο αποδομητής Καλείται αυτόματα κάθε φορά που κατά την εκτέλεση του προγράμματος κάποιο αντικείμενο τεθεί εκτός εμβελείας. Εφόσον δεν ορίζεται αποδομητής από τον προγραμματιστή τότε υλοποιείται αυτόματα. Ο αποδομητής μιας τάξης δεν επιτρέπεται να έχει ορίσματα, είναι μόνο ένας και δεν μπορεί να κληθεί από το αντικείμενο. Το όνομα του αποδομητή είναι το σύμβολο (~) ακολουθούμενο από το όνομα της τάξης (χωρίς κενά). Στις περιπτώσεις όπου έχουμε δυναμική δέσμευση μνήμης στη διακήρυξη κάποιων αντικειμένων τότε ο αποδομητής θα είναι υπεύθυνος για την απελευθέρωση της δυναμικά δεσμευμένης μνήμης. Στις περιπτώσεις αυτές πρέπει να χρησιμοποιηθεί κατάλληλος κώδικας στον αποδομητή. 12

13 Όταν θα εκτελεστεί η εντολή στην γραμμή 11 καταρχήν θα κληθεί ο προεπιλεγμένος δομητής και θα δημιουργηθεί το αντικείμενο a και στην συνέχεια θα κληθεί ο δομητής της γραμμής 7 και θα δημιουργηθεί το αντικείμενο b. Αν αλλάξουμε την δήλωση του δεύτερου δομητή και δώσουμε ερήμην τιμές στα ορίσματά του 7: money (int e=0, int c=0); Τότε κατά την εκτέλεση της εντολής στην γραμμή 11 θα δημιουργηθεί ένα σφάλμα μεταγλώττισης διότι το σύστημα αδυνατεί κατά την δημιουργία του αντικειμένου a να επιλέξει έναν από τους δύο δομητές οι οποίοι στην περίπτωση του a συμπίπτουν. Συνεπώς πρέπει ένας από τους δύο δομητές να παραληφθεί, είναι εύλογο να παραληφθεί ο προεπιλεγμένος. Πρέπει να σημειωθεί ότι το πρόβλημα εμφανίζεται μόνο όταν γίνεται προσπάθεια να δημιουργηθούν αντικείμενα δίχως αρχικές τιμές όπως το a. Επόμενη Σελίδα => 13

14 Κεφάλαιο 2 Ερωτηματολόγιο 1. Ερωτήσεις πολλαπλών επιλογών Επιλέξτε Σωστό ή Λάθος και πατήστε "ΑΠΑΝΤΗΣΗ" για να δείτε το σωστό! a. Είναι σωστή η παρακάτω δήλωση των δομητών; Σωστό Λάθος ΑΠΑΝΤΗΣΗ b. Πόσα ορίσματα δέχεται ο συγκεκριμένος δομητής για το αντικείμενο που δημιουργήσαμε; Κανένα Ένα (1) Δύο (2) ΑΠΑΝΤΗΣΗ 14

15 2. Ερωτήσεις ανάπτυξης Γράψτε μία λύση και πατήστε "ΑΠΑΝΤΗΣΗ" για να δείτε μία από τις πιθανές απαντήσεις! a. Δηλώστε ένα δομητή με όνομα point χωρίς ορίσματα. Όταν καλείται στην main ο δομητής αυτός (επίσης χωρίς ορίσματα), θα δίνει στο x και στο y την τιμή "0". ΑΠΑΝΤΗΣΗ b. Με βάση τις προηγούμενες ασκήσεις φτιάξτε μία main(), στην οποία θα δημιουργούνται δύο αντικείμενα, ένα για τον κάθε δομητή και τυπώστε τα. ΑΠΑΝΤΗΣΗ Επόμενη Σελίδα => 15

16 ΑΠΑΝΤΗΣΗ 1a Η Σωστή απάντηση είναι: "Λάθος" γιατί όλοι οι δομητές και ο αποδομητής πρέπει να έχουν το ίδιο όνομα με την τάξη. ΑΠΑΝΤΗΣΗ 1b Η Σωστή απάντηση είναι: "Δύο (2)" γιατί τα ορίσματα που δηλώσαμε για τον δομητή ειναι δύο. Το a και το b. 16

17 ΑΠΑΝΤΗΣΗ 2a Προτεινόμενη Σωστή απάντηση είναι: ΑΠΑΝΤΗΣΗ 2b Προτεινόμενη Σωστή απάντηση είναι: 17

18 Κεφάλαιο 3 Κληρονομικότητα Ο ρόλος της κληρονομικότητας Ένας στόχος του αντικειμενοστραφούς προγραμματισμού είναι η επαναχρησιμοποίηση μιας τάξης, που δημιουργήσατε για ένα πρόγραμμα, μέσα σε άλλα προγράμματα, πράγμα που σας παρέχει σημαντική οικονομία χρόνου και προγραμματιστικής εργασίας. Καθώς ορίζεται τις τάξεις σας, μπορεί να υπάρξουν περιπτώσεις που μία νέα τάξη χρησιμοποιεί πολλά ή και όλα τα χαρακτηριστικά μιας προϋπάρχουσας, και μετά προσθέτει ένα ή περισσότερα μέλη, είτε δεδομένα είτε συναρτήσεις. Σε τέτοιες περιπτώσεις, η C++ σας επιτρέπει να κατασκευάζεται ένα νέο αντικείμενο χρησιμοποιώντας τα χαρακτηριστικά ενός προϋπάρχοντος. Με άλλα λόγια, το νέο αντικείμενο κληρονομεί τα μέλη της υπάρχουσας τάξης, που ονομάζεται βασική τάξη (base class). Όταν κατασκευάζεται μία νέα τάξη από μία προϋπάρχουσα, η νέα τάξη ονομάζεται συχνά παράγωγη τάξη (derived class). Κληρονομικότητα (inheritance)είναι η δυνατότητα μίας παράγωγης τάξης να κληρονομεί τα χαρακτηριστικά μίας υπάρχουσας βασικής τάξης. Με απλά λόγια, αυτό σημαίνει ότι, αν έχετε μία τάξη που θέλετε τα μέλη της -δεδομένα ή συναρτήσεις- να μπορούν να χρησιμοποιούνται από μια νέα τάξη, μπορείτε να κατασκευάσετε τη νέα τάξη με βάση την προϋπάρχουσα (βασική) τάξη. Η νέα τάξη κληρονομεί τα μέλη (τα χαρακτηριστικά) της προϋπάρχουσας τάξης. Η χρήση της κληρονομικότητας για την κατασκευή νέων τάξεων σας εξοικονομεί σημαντικό χρόνο και κόπο προγραμματισμού. 18

19 Στη συνέχεια, υποθέστε ότι το πρόγραμμά σας χρειάζεται μία τάξη manager από την βασική τάξη employee. Στην αρχή του ορισμού της τάξης, χρησιμοποιείται η λέξη κλειδί class, το όνομα της τάξης manager ακολουθούμενο από άνω-κάτω τελεία, και το όνομα της βασικής τάξης employee. Η λέξη κλειδί public, μπροστά από το όνομα της βασικής τάξης employee, καθορίζει ότι τα δημόσια μέλη της τάξης employee είναι επίσης δημόσια μέλη στην τάξη manager. Σημείωση: Όταν παράγεται μία τάξη από μία βασική τάξη, τα ιδιωτικά (private) μέλη της βασικής τάξης είναι προσπελάσιμα από την παράγωγη τάξη μόνο μέσω των συναρτήσεων διασύνδεσης (interface functions). Επομένως, η παράγωγη τάξη δεν μπορεί να προσπελάσει άμεσα ένα ιδιωτικό μέλος της βασικής με τον τελεστή τελείας. Αντίθετα στα ιδιωτικά μέλη μπορούν να έχουν πρόσβαση μόνον οι μέθοδοι της τάξης. Κατά κανόνα, πρέπει να προστατεύετε τα περισσότερα μέλη δεδομένων των τάξεων σας, κάνοντάς τα ιδιωτικά. 19

20 Προστατευμένα Μέλη Εξετάζοντας ορισμούς βασικών τάξεων, μπορεί να συναντήσετε δημόσια (public), ιδιωτικά (private) και προστατευμένα (protected) μέλη. Όπως μάθατε, τα δημόσια μέλη μιας βασικής τάξης μπορούν να προσπελάζονται από την παράγωγη τάξη, σαν να είχαν οριστεί μέσα σε αυτή. Αντίθετα, τα ιδιωτικά μέλη της βασικής τάξης δεν μπορούν να προσπελαστούν άμεσα από την παράγωγη τάξη. Η παράγωγη τάξη πρέπει να χρησιμοποιεί μία συνάρτηση διασύνδεσης για να προσπελάσει τα μέλη της βασικής τάξης. Ένα προστατευμένο (protected) μέλος μιας βασικής τάξης είναι κάτι μεταξύ ιδιωτικού και δημόσιου μέλους. Αν ένα μέλος είναι προστατευμένο, τα αντικείμενα των παραγώγων τάξεων μπορούν να το προσπελάζουν σαν να ήταν δημόσιο. Σε όλο το υπόλοιπο πρόγραμμα, τα προστατευμένα μέλη φαίνονται σαν ιδιωτικά. Ο μόνος τρόπος που μπορεί το πρόγραμμα να προσπελάζει προστατευμένα μέλη είναι με συναρτήσεις διασύνδεσης. Ο παρακάτω ορισμός της τάξης book χρησιμοποιεί την ετικέτα protected για να επιτρέψει στις τάξεις που παράγονται από την τάξη book να προσπελάζουν με άμεσο τρόπο τα μέλη title, author και pages, χρησιμοποιώντας τον τελεστή τελείας. Επόμενη Σελίδα => 20

21 Κεφάλαιο 3 Υπέρβαση & Απόκρυψη Συναρτήσεων Η c++ επιτρέπει στα προγράμματα σας να χρησιμοποιούν υπέρβαση (overloading) στους ορισμούς των συναρτήσεων, ορίζοντας εναλλακτικές συναρτήσεις για διαφορετικούς τύπους παραμέτρων. Η υπέρβαση χρησιμοποιείτε και στις συναρτήσεις εγκατάστασης. Η τάξη base έχει την μέθοδο print η οποία είναι υπερφορτωμένη, υπάρχει η έκδοση print( ) χωρίς όρισμα και η print(int) με όρισμα ένα ακέραιο. Η παράγωγη τάξη derived1 έχει επίσης μια μέθοδο print(). Το ερώτημα που τίθεται είναι το εξής: Αν διακηρύξουμε ένα αντικείμενο της τάξης derived και καλέσουμε μέσου αυτού την μέθοδο print() ποια έκδοση της print θα χρησιμοποιηθεί; Η απάντηση είναι η έκδοση της print που δηλώθηκε μέσα στην derived. Η τεχνική αυτή ονομάζεται υπέρβαση, δηλαδή η derived::print( ) υπερβαίνει την base::print ( ). Το επόμενο ερώτημα που τίθεται είναι τι θα συμβεί αν μέσω ενός αντικειμένου της derived κληθεί η μέθοδος βάσης print(int); Η απάντηση είναι ότι και πάλι δεν χρησιμοποιηθεί η έκδοση base::print(int) αλλά η derived::print( ), η τεχνική αυτή ονομάζεται απόκρυψη, δηλαδή μια μέθοδος της παράγωγης τάξης αποκρύπτει όλες τις συνώνυμες μεθόδους της βάσης. Ένα αντικείμενο της derivate μπορεί βέβαια να χρησιμοποιήσει μια μέθοδο της βάσης αρκεί να προσδιοριστεί πλήρως το όνομα της μεθόδου π.χ object.base::print() 21

22 Σύμφωνα με τo παραπάνω πρόγραμμα αυτά που θα τυπωθούν είναι: Επόμενη Σελίδα => 22

23 Κεφάλαιο 3 Ερωτηματολόγιο 1. Ερωτήσεις ανάπτυξης Γράψτε μία λύση και πατήστε "ΑΠΑΝΤΗΣΗ" για να δείτε μία από τις πιθανές απαντήσεις! a. Με βάση το προηγούμενο σχήμα φτιάξτε μία main(), στην οποία θα δημιουργούνται: Ένα αντικείμενο χωρίς ορίσματα και ένα αντικείμενο με όρισμα (title) για την τάξη book, και επίσης ένα αντικείμενο χωρίς ορίσματα και ένα 23

24 αντικείμενο με ορίσματα (Title / pages) για την τάξη comics. Στο τέλος τυπώστε τα όλα. ΑΠΑΝΤΗΣΗ b. Με βάση το προηγούμενο σχήμα και την main που δημιουργήσατε, αν προστεθεί η παρακάτω γραμμή τι θα τυπωθεί στο τέλος; a) Τίποτα b) "No title" c) "Ο Ναυαγός" ΑΠΑΝΤΗΣΗ c. Γράψτε τις κεφαλίδες των τάξεων first, second και third, ώστε να υλοποιηθεί το σχήμα κληρονομικότητας, σε κάθε μια από τις επόμενες περιπτώσεις: 24

25 1 ΑΠΑΝΤΗΣΗ 2 ΑΠΑΝΤΗΣΗ 25

26 3 ΑΠΑΝΤΗΣΗ Επόμενη Σελίδα => 26

27 ΑΠΑΝΤΗΣΗ a Προτεινόμενη Σωστή απάντηση είναι: ΑΠΑΝΤΗΣΗ b Η Σωστή απάντηση είναι: b) "No Title" γιατί στο biblio3 δεν είχε ορίστει κανένας τίτλος και το είχε μείνει κενό. 27

28 ΑΠΑΝΤΗΣΗ c1 Προτεινόμενη Σωστή απάντηση είναι: ΑΠΑΝΤΗΣΗ c2 Προτεινόμενη Σωστή απάντηση είναι: 28

29 ΑΠΑΝΤΗΣΗ c3 Προτεινόμενη Σωστή απάντηση είναι: 29

30 Κεφάλαιο 4 Πολυμορφισμός Στο κεφάλαιο 4 θα μιλήσουμε για την έννοια του πολυμορφισμού.ας υποθέσουμε ότι Μας δίνεται η δυνατότητα να δηλώσουμε έναν δείκτη προς αντικείμενο της τάξης vehicle και όπως αναμένει κάποιος μέσω του δείκτη μπορούμε να δεσμεύσουμε δυναμικά μνήμη για ένα αντικείμενο της τάξης vehicle, όπως φαίνεται στον κώδικα που ακολουθεί: 30

31 Όπως βλέπουμε στο παραπάνω σχήμα φτιάξαμε μία τάξη vehicle στην οποία δηλώσαμε 2 ορίσματα.επίσης κάναμε έναν αποδομητή, ένα δομητή (αν δεν κάνουμε καταχώρηση βάζει μόνο του τιμές) και τρεις μεθόδους όπου δύο παίρνουν στοιχεία και η μία τα τυπώνει. Τέλος υπάρχει και μία main όπου δηλώνουμε ένα δείκτη προς αντικείμενο *obj. Παρατηρούμε ότι μέσω του δείκτη obj μπορούμε να προσπελάσουμε τις μεθόδους της τάξης vehicle. Έστω ότι δηλώνεται μια παράγωγη τάξη π.χ η τάξη car, η οποία κληρονομεί την vehicle, τότε η C++ μας επιτρέπει να κάνουμε και το εξής να δηλώσουμε έναν δείκτη προς αντικείμενο της βάσης, στην περίπτωση μας προς την vehicle, αλλά μέσω αυτού να δεσμεύσουμε μνήμη για ένα αντικείμενο της παράγωγης τάξης, στην περίπτωση μας την car. 31

32 32

33 H τεχνική αυτή ονομάζεται πολυμορφισμός, κατά μια πρώτη ματιά μοιάζει να υπάρχει αντίφαση, αφού ο δείκτης δείχνει προς αντικείμενο της τάξης vehicle και το αντικείμενο που δημιουργείται μέσω αυτού ανήκει στην τάξη car, αλλά μην ξεχνάμε ότι η car απορρέει από την vehicle, ένα car δηλαδή είναι και vehicle. Ωστόσο αν παρατηρήσουμε τον κώδικα στην τελευταία main, θα διαπιστώσουμε ότι μέσω του δείκτη προσπελαύνουμε μόνο συναρτήσεις της βάσης, δηλαδή της vehicle, τίθεται λοιπόν το πρόβλημα μπορούμε να προσπελάσουμε μέσω του δείκτη obj και μεθόδους της τάξης car, δεδομένου ότι μέσω του δείκτη obj δημιουργήσαμε ένα αντικείμενο της τάξης car; Η απάντηση είναι όχι, τουλάχιστον έτσι όπως έχουν δηλωθεί οι τάξεις. Επόμενη Σελίδα => 33

34 Κεφάλαιο 4 Ιδεατές (virtual) Συναρτήσεις Την λύση στο πρόβλημα που παρουσιάστηκε στο προηγούμενο σχήμα με βάση τον πολυμορφισμό την δίνουν οι ιδεατές (virtual) συναρτήσεις. Αυτές λειτουργούν ως εξής: Αν στην τάξη βάσης και στην παράγωγη τάξη υπάρχουν όμοιες συναρτήσεις, όπως η printvehicle στο παράδειγμά μας, τότε εάν εφαρμοστεί η τεχνική που περιγράφηκε προηγουμένως, και προστεθεί η δήλωση virtual στην δήλωση της συνάρτησης print vehicle της τάξης vehicle τότε για αντικείμενα της τάξης car που δημιουργούνται μέσω δεικτών της τάξης vehicle θα χρησιμοποιείται η έκδοση της printvehicle της car και όχι της βάσης, δημιουργείται δηλαδή ένα ιδεατό κανάλι που συνδέει τις δυο συναρτήσεις. Ο κώδικας τώρα έχει ως εξής: 34

35 35

36 Είναι προφανές ότι αν μέσω ενός δείκτη προς την βάση δημιουργηθεί ένα αντικείμενο της βάσης τότε σε κάθε ιδεατή συνάρτηση θα χρησιμοποιηθεί η έκδοση της βάσης, και όχι έκδοση της παράγωγης. Δες τον κώδικα που ακολουθεί : Στην εντολή (1) θα χρησιμοποιηθεί η έκδοση της printvehicle( ) της vehicle, ενώ στην εντολή (2) θα χρησιμοποιηθεί η έκδοση της printvehicle( ) της car. Τέλος, από όλα τα παραπάνω συνάγεται ότι μόνο όσες συναρτήσεις της παράγουσας τάξης έχουν μια όμοια ιδεατή συνάρτηση στην τάξη βάσης μπορούν να προσπελαστούν με ένα δείκτη προς την τάξη βάσης. Στον κώδικα που ακολουθεί η εντολή (1) είναι λανθασμένη. Επόμενη Σελίδα => 36

37 Κεφάλαιο 4 Ερωτηματολόγιο 1. Ερωτήσεις ανάπτυξης Γράψτε μία λύση και πατήστε "ΑΠΑΝΤΗΣΗ" για να δείτε μία από τις πιθανές απαντήσεις! (Δείτε στην επόμενη σελίδα το σχήμα) => 37

38 38

39 Σχήμα 1 a. Με βάση το προηγούμενο σχήμα, γιατί στην main, εκεί που δείχνουν τα βελάκια, στην εντολή (1) θα χρησιμοποιηθεί η έκδοση της printvehicle( ) της vehicle, ενώ στην εντολή (2) θα χρησιμοποιηθεί η έκδοση της printvehicle( ) της car; ΑΠΑΝΤΗΣΗ b. Με βάση το σχήμα της ερώτησης 1 (Σχήμα 1), γιατί; στην παρακάτω main (Σχήμα 2) η εντολή 1 είναι λανθασμένη; Σχήμα 2 ΑΠΑΝΤΗΣΗ c. Γράψτε μία καινούργια τάξη bicycle η οποία θα κληρονομεί όλα τα στοιχεία της τάξης vehicle με βάση το σχήμα 1. Η τάξη bicycle θα έχει τα στοιχεία Κυβικά εκατοστά (cc) και Τελική Ταχύτητα (topspeed). 39

40 ΑΠΑΝΤΗΣΗ d. Γράψτε τώρα μία καινούργια main με βάση το σχήμα 1 και με βάση την τάξη bicycle που δημιουργήσατε πριν.σε αυτήν την main, δημιουργήστε: ένα δείκτη για αντικείμενο της τάξης vehicle και τυπώστε το, ένα δείκτη για αντικείμενο της τάξης car και τυπώστε το και τέλος ένα δείκτη για αντικείμενο της τάξης bicycle και τυπώστε το. ΑΠΑΝΤΗΣΗ Αρχική Σελίδα => 40

41 ΑΠΑΝΤΗΣΗ a Προτεινόμενη Σωστή Aπάντηση είναι: Η ΑΠΆΝΤΗΣΗ είναι ότι στην εντολή (1) θα χρησιμοποιηθεί η έκδοση της printvehicle( ) της vehicle γιατί το αντικείμενο που δημιουργήθηκε (*obj1) ήταν αντικείμενο της τάξης vehicle οπότε και στην εντολή (2) θα χρησιμοποιηθεί η έκδοση της printvehicle( ) της car γιατί το αντικείμενο που δημιουργήθηκε (*obj2) ήταν αντικείμενο της τάξης car. ΑΠΑΝΤΗΣΗ b Προτεινόμενη Σωστή Aπάντηση είναι: 41

42 Η ΑΠΑΝΤΗΣΗ είναι ότι στην παραπάνω main η εντολή 1 είναι λάθος γιατί δεν μπορούμε να προσπελάσουμε κάποιο μέλος της τάξης car ή να το αλλάξουμε, γιατί η τάξη car δεν έχει δηλωθεί ως virtual. ΑΠΑΝΤΗΣΗ c Προτεινόμενη Σωστή Aπάντηση είναι: 42

43 ΑΠΑΝΤΗΣΗ d Προτεινόμενη Σωστή Aπάντηση είναι: 43

44 ΒΙΒΛΙΟΓΡΑΦΙΑ Εγχειρίδιο της C++ (Liberty Jesse, Κουτρούμπα Χρυσούλα ) Εισαγωγή στη C++ (Jamsa Kris) Η γλώσσα προγραμματισμού C++ (Stroustroup Bjarne) C++ αντικειμενοστρεφής προγραμματισμός υπολογιστών (Τομαράς Αλέξανδρος) C++ προγραμματισμός (Κυτάγιας, Δημ. Χ.) Advanced C++ Programming Styles and Idioms (Addison - Wesley, 1992) The Annotated C++ Reference Manual (Addison -Wesley, 1990) Γλώσσα Ελληνική Ελληνική Ελληνική Ελληνική Ελληνική Αγγλική Αγγλική C++ Primer Αγγλική (Addison - Wesley, 1991) ΠΗΓΕΣ ΔΙΑΔΙΚΤΥΟΥ Ελληνική Αγγλική Αγγλική Αγγλική Αγγλική 44

45 ΤΕΛΟΣ 45

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

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

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

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

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

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

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

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

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 8: Κληρονομικότητα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

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

Εναλλακτικές εντολές για ανάγνωση/εγγραφή

Εναλλακτικές εντολές για ανάγνωση/εγγραφή Εναλλακτικές εντολές για ανάγνωση/εγγραφή Ανάγνωση από το πληκτρολόγιο και εγγραφή στην οθόνη γίνεται με τις εντολές Εναλλακτικές μορφές είναι οι Οι τελευταίες μπορούν να επεκταθούν για ανάγνωση και εγγραφή

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

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

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

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

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

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

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

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

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

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

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

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 13 η Δομές & Ενώσεις Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

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

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

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

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

Υπερφόρτωση τελεστών

Υπερφόρτωση τελεστών Υπερφόρτωση τελεστών 19 Νοεμβρίου 2012 1 Γενικά Στα προηγούμενα είδαμε ότι ορίζοντας μία κλάση, ορίζουμε ένα νέο τύπο τον οποίο μπορούμε να χρησιμοποιήσουμε για να δηλώσουμε αντικείμενα αυτής της νέας

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

Προγραμματισμός Ι. Δομές & Ενώσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Ι. Δομές & Ενώσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Δομές & Ενώσεις Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι 1 Δομές (Structures) Δομή (structure) στη C είναι μία συλλογή από μεταβλητές οποιουδήποτε

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

Pascal. 15 Νοεμβρίου 2011

Pascal. 15 Νοεμβρίου 2011 Pascal 15 Νοεμβρίου 011 1 Procedures σε Pascal Στην Pascal μπορούμε να ορίσουμε διαδικασίες (procedures). Αυτές είναι ομάδες εντολών οι οποίες έχουν ένα όνομα. Γράφοντας το όνομα μιας διαδικασίας μπορούμε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

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

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

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

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( ) ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση

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

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

Τελικό τεστ - απαντήσεις

Τελικό τεστ - απαντήσεις Τελικό τεστ - απαντήσεις Θεωρήστε το παρακάτω πρόγραμμα και απαντήστε στις ερωτήσεις που ακολουθούν. 1 class parent { 2 public: 3 int a; int b; 4 parent(int _a, int _b) {} 5 6 void f1(int x) { cout

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

Προγραμματισμός Δομές Δεδομένων

Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων (Data Structures) Καινούργιοι τύποι δεδομένων που αποτελούνται από την ομαδοποίηση υπαρχόντων τύπων δεδομένων Ομαδοποίηση πληροφορίας που

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

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

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

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

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

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

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

Δομημένος Προγραμματισμός

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

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

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

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

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

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

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

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

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

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

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

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 7 η Πίνακες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Φιλικές συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Φιλικές συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Φιλικές συναρτήσεις Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1 Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα

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

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

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

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

ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 2 Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές Σύνοψη Το κεφάλαιο αυτό εισάγει τον αναγνώστη σε βασικές έννοιες που είναι χρήσιμες για την απόκτηση μιας πρώτης εμπειρίας με την Python. Προαπαιτούμενη

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

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

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

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

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων Ενότητα 4 Επεξεργασία πινάκων 36 37 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Μαθήματα από τα εργαστήρια ΕΡΓΑΣΤΗΡΙΟ 1 Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο

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

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro Για να μπορέσουμε να εισάγουμε δεδομένα από το πληκτρολόγιο αλλά και για να εξάγουμε εμφανίσουμε αποτελέσματα στην οθόνη του υπολογιστή χρησιμοποιούμε τις εντολές Εισόδου και Εξόδου αντίστοιχα. Σύνταξη

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

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 2016-2017 ΕΡΓΑΣΙΑ 1 (JAVA) Παράδοση 26/4/2017 Στα πλαίσια της εργασίας θα υλοποιηθεί ένα απλοϊκό πρόγραμμα κρατήσεων Ξενοδοχείων. Για απλοποίηση θα περιοριστούμε

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

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

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

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

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

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

Συναρτήσεις. Υποπρόγραμμα

Συναρτήσεις. Υποπρόγραμμα Συναρτήσεις Υποπρόγραμμα Ένα σύνολο από εντολές που κάνουν κάτι συγκεκριμένο, έχουν στενή σχέση/εξάρτηση μεταξύ τους, έχουν «χαλαρή» σύνδεση με τον υπόλοιπο κώδικα, μπορεί να εξαχθεί από το πρόγραμμά μας

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

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2

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

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

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

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2013-2014 Προθεσµία: 7/1/2014, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης 1 Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ

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

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

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

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

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 3: Πίνακες, Δομές και Δυναμική Διαχείριση Μνήμης Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΣΥΝΑΡΤΗΣΕΙΣ ΣΤΗ C (1/3) +- Στη C χρησιμοποιούμε συχνα τις συναρτήσεις (functions),

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Εισαγωγή στον Προγραµµατισµό Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Συναρτήσεις 19.11.16 Β. Ντουφεξή 2 Προβλήματα: Οσο μεγαλώνουν τα προγράμματα, γίνονται πιο πολύπλοκα.

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

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

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

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

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1 Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2

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

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

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

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ Διάλεξη 2 Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 2 Internal

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ. Διεύθυνση μεταβλητής. Δείκτης

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ. Διεύθυνση μεταβλητής. Δείκτης ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ Πρώτα να δούμε τι ακριβώς συμπεριλαμβάνει μια μεταβλητή τύπος Καθορίζει το μέγεθος στην μνήμη σε Bytes τιμή Η αριθμητική τιμή που αποθηκεύεται στην

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 9η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες.

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες. Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες. Η C, όπως έχουμε αναφέρει, είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου η οποία αναπτύχθηκε για πρώτη φορά το 1972 από τον Dennis Ritchie στα AT&T Bell

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2 Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 10: Συναρτήσεις Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 2: Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων Σκοπός της Άσκησης ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση µε τη χρήση πινάκων σαν διατάξεις αποθήκευσης δεδοµένων της Γλώσσας Προγραµµατισµού C. H συγκεκριµένη άσκηση

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 4: Εισαγωγή στις κλάσεις Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές

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

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ ) Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ. 147 159) Για τις γλώσσες προγραμματισμού πρέπει να έχουμε υπόψη ότι: Κάθε γλώσσα προγραμματισμού σχεδιάζεται για συγκεκριμένο σκοπό, δίνοντας ιδιαίτερη

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ι. Ψαρομήλιγκος Χ. Κυτάγιας

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ι. Ψαρομήλιγκος Χ. Κυτάγιας ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Προγραμματισμός Η/Υ Ενότητα 6 η : Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Λογιστικής

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

10 η Διάλεξη C++ - Πίνακες. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

10 η Διάλεξη C++ - Πίνακες. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ 10 η Διάλεξη C++ - Πίνακες Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ Ανακεφαλαίωση Κατά την κλήση μιας συνάρτησης κατ αξία οι τιμές των ορισμάτων αντιγράφονται στις αντίστοιχες τυπικές παραμέτρους

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων

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

Τιμή Τιμή. σκορ. ζωές

Τιμή Τιμή. σκορ. ζωές Εισαγωγή στην έννοια των μεταβλητών Οι μεταβλητές Θα πρέπει να έχετε παρατηρήσει ότι έχουμε φτιάξει τόσα παιχνίδια μέχρι αυτό το σημείο και δεν έχουμε αναφερθεί πουθενά για το πως μπορούμε να δημιουργήσουμε

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

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην εξοικείωση με τη διαδικασία κατασκευής ενός Λεξικού Αναλυτή κάνοντας χρήση του lex.

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην εξοικείωση με τη διαδικασία κατασκευής ενός Λεξικού Αναλυτή κάνοντας χρήση του lex. ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ 5 Ο Εργαστηριακό Μάθημα Δημιουργία Νέων Λεξικών Αναλυτών Σκοπός: Το μάθημα αυτό αναφέρεται: Στην εξοικείωση με τη διαδικασία κατασκευής ενός Λεξικού Αναλυτή κάνοντας χρήση του lex. Στην

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 Προθεσµία: 8/1/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α : Α1. Να

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

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

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

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

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

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο) TEC610 (ΣΤ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Εαρινό εξάμηνο Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά

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