Προγραµµατιστικές τεχνικές

Σχετικά έγγραφα
Προγραμματιστικές τεχνικές

Προγραµµατιστικές τεχνικές

Εισαγωγή στην πληροφορική

Προγραμματιστικές τεχνικές

Εισαγωγή στην πληροφορική

Προγραµµατιστικές τεχνικές

Προγραµµατιστικές Τεχνικές

Προγραµµατιστικές Τεχνικές

Περιγραφή αλγορίθµων. ιαγράµµατα ροής

Εισαγωγή στην πληροφορική

Προγραμματιστικές Τεχνικές

Εισαγωγή στην Πληροφορική

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική

Προγραµµατιστικές Τεχνικές

Εισαγωγή στην πληροφορική

Προγραµµατιστικές Τεχνικές

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική

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

Προγραµµατιστικές Τεχνικές

Εισαγωγή στην πληροφορική

Προγραμματιστικές τεχνικές

Εισαγωγή στην πληροφορική

Προγραμματιστικές Τεχνικές

Εισαγωγή στην πληροφορική

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

Προγραμματιστικές Τεχνικές

Στοιχεία Συναρτήσεων. 1. Να βρεθεί το πεδίο ορισμού των παρακάτω συναρτήσεων: στ. x 1

Προγραμματιστικές Τεχνικές

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

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

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

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

Εισαγωγή στην Τεχνολογία Λογισµικού

επιµέλεια Θοδωρής Πιερράτος

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 είκτες

Εισαγωγή στην πληροφορική

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΜΟΝΤΕΛΟΠΟΙΗΣΗ Ε ΟΜΕΝΩΝ, ΚΛΑΣΙΚΑ ΜΟΝΤΕΛΑ Ε ΟΜΕΝΩΝ

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΜΟΝΤΕΛΟΠΟΙΗΣΗ Ε ΟΜΕΝΩΝ, ΚΛΑΣΙΚΑ ΜΟΝΤΕΛΑ Ε ΟΜΕΝΩΝ

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης. Το µοντέλο Οντοτήτων Συσχετίσεων Το Σχεσιακό Μοντέλο εδοµένων

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

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

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

Α. Ερωτήσεις Ανάπτυξης

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

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

Αντικειμενοστρεφής προγραμματισμός Object Oriented Programming (OOP) Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

Λογισµικό (Software SW) Γλώσσες

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

ΘΕΜΑΤΑ + ΥΠΟ ΕΙΓΜΑΤΙΚΗ ΕΠΙΛΥΣΗ

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

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

Εισαγωγή στην Πληροφορική

ΑΛΓΕΒΡΑ - ΚΕΦΑΛΑΙΟ 4ο Εξισώσεις - Ανισώσεις ευτέρου Βαθµού

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Βάσεις εδοµένων Βασίλειος Βεσκούκης Κανονικοποίηση σχήµατος Β Σύνοψη

Οντοκεντρικός Προγραμματισμός

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

ΜΟΝΟΤΟΝΙΑ ΑΚΡΟΤΑΤΑ- ΣΥΝΟΛΟ ΤΙΜΩΝ ΚΟΙΛΟΤΗΤΑ ΣΗΜΕΙΑ ΚΑΜΠΗΣ. i) Για την εύρεση µονοτονίας µιας συνάρτησης υπολογίζω την f ( x )

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D.

Μ Α Θ Η Μ Α Τ Α Γ Λ Υ Κ Ε Ι Ο Υ

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

Τεχνολογία Λογισµικού Ι Κεφάλαιο 6

Rational Unified Process:

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

7. Βασικά στοιχεία προγραµµατισµού.

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις.

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

Εκφωνήσεις και λύσεις των ασκήσεων της Τράπεζας Θεμάτων στην Άλγεβρα Α ΓΕΛ

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

Ε Ρ Ω Τ Η Σ Ε Ι Σ Θ Ε Ω Ρ Ι Α Σ.

ΚΑΤΑΣΚΕΥΑΣΤΕΣ ΑΝΤΙΓΡΑΦΗΣ

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

ΘΕΜΑ 1 ο. S <-- 0 ιάβασε Υ Όσο α <= Υ επανάλαβε S <-- S +α. Τέλος_επανάληψης

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

1.2 Α. ΑΛΓΕΒΡΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ

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

ΕΡΩΤΗΣΕΙΣ ΚΑΤΑ Ι ΑΚΤΙΚΗ ΕΝΟΤΗΤΑ ΤΟΥ ΚΕΦΑΛΑΙΟΥ 4

Κεφάλαιο 10ο. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ιαδικασίες - Συναρτήσεις

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΠαράδειγµαΠρογραµµατισµού

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Βάσεις εδοµένων. Βασίλειος Βεσκούκης. Ενα παράδειγµα σχεδίασης Β. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

ΜΕΛΕΤΗ ΣΥΝΑΡΤΗΣΗΣ. Άρτια και περιττή συνάρτηση. Παράδειγµα: Η f ( x) Παράδειγµα: Η. x R και. Αλγεβρα Β Λυκείου Πετσιάς Φ.- Κάτσιος.

Σχεδιασµός βασισµένος σε συνιστώσες

ΘΕΜΑ 1ο Α. 1-5 ΣΩΣΤΟ, ΛΑΘΟΣ Για κ από 4 µέχρι 3 ΚΑΙ Β.1 ΣΩΣΤΟ ΛΑΘΟΣ, Β.2 Γ.1

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

Διαφορικός Λογισμός. Κεφάλαιο Συναρτήσεις. Κατανόηση εννοιών - Θεωρία. 1. Τι ονομάζουμε συνάρτηση;

Εφαρµογές γεωγραφικών επεξεργασιών

Transcript:

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης Αστροφυσικός Αναπλ. Καθηγητής ΕΜΠ romylos@survey.ntua.gr Kλάσεις: : constructors, δηλώσεις, παραδείγµατα

Κλάσεις Σύνθετες,, οριζόµενες από το χρήστη δοµές, οι οποίες περιέχουν εδοµένα και Συναρτήσεις Τα δεδοµένα αντιστοιχούν σε Ιδιότητες (πεδία, fields, attributes)...ενώ οι συναρτήσεις περιγράφουν τη Συµπεριφορά (µεθόδους, methods, member functions) Των οντοτήτων που παριστάνει µια κλάση, τα µέλη των οποίων λέγονται "αντικείµενα" object-oriented programming = αντικειµενοστρεφής προγραµµατισµός Οι κλάσεις µπορούν να ιδωθούν: Ως προγραµµατιστικό εργαλείο Ως εργαλείο µοντελοποίησης δεδοµένων

Παραδείγµατα κλάσεων Ενα σηµείο εδοµένα: x, y, id Συµπεριφορά: νέο_σηµείο() Μια γραµµή εδοµένα: x1, y1, x2, y2, id Συµπεριφορά: νέα_γραµµή(), µήκος(), χάραξη() Ενα τρίγωνο εδοµένα: κορυφή 1, κορυφή 2, κορυφή 3, id Συµπεριφορά: νέο_τρίγωνο(), εµβαδόν(), περίµετρος() Ενας µιγαδικός αριθµός εδοµένα: πραγµατικό µέρος, φανταστικό µέρος Συµπεριφορά: νέος_αριθµός(), πρόσθεση(), αφαίρεση() Ενα πολύγωνο εδοµένα: πλήθος κορυφών, συντεταγµένες κορυφών, id Συµπεριφορά: εµβαδόν(), περίµετρος(), κέντρο_βάρους()

Ορισµός κλάσεων Τρόπος 1 class [όνοµα κλάσης] { Προσδιοριστής ορατότητας: ήλωση µεταβλητών µνήµης (πεδίων) ήλωση και υλοποίηση συναρτήσεων (µεθόδων) };

Ορισµός κλάσεων Τρόπος 1 class [όνοµα κλάσης] { Προσδιοριστής ορατότητας: ήλωση µεταβλητών µνήµης (πεδίων) ήλωση και υλοποίηση συναρτήσεων (µεθόδων) };

Ορισµός κλάσεων Τρόπος 2 class [όνοµα κλάσης] { Προσδιοριστής ορατότητας: ήλωση µεταβλητών µνήµης (πεδίων) ήλωση συναρτήσεων (µεθόδων) }; Υλοποίηση µεθόδων (χρήση του τελεστή ::)

Ορισµός κλάσεων Τρόπος 2 class [όνοµα κλάσης] { Προσδιοριστής ορατότητας: ήλωση µεταβλητών µνήµης (πεδίων) ήλωση συναρτήσεων (µεθόδων) }; Υλοποίηση µεθόδων (χρήση του τελεστή ::)

Ορισµός κλάσεων Γενικά class [όνοµα κλάσης] { Προσδιοριστής ορατότητας 1: ήλωση µεταβλητών µνήµης (πεδίων) ήλωση/υλοποίηση συναρτήσεων (µεθόδων) Προσδιοριστής ορατότητας 2: ήλωση µεταβλητών µνήµης (πεδίων) ήλωση/υλοποίηση συναρτήσεων (µεθόδων)... }; Υλοποίηση µεθόδων (χρήση του τελεστή ::)

Ορισµός κλάσεων Γενικά (παράδειγµα) class [όνοµα κλάσης] { public: ήλωση ορατών από έξω µεταβλητών µνήµης (πεδίων) ήλωση ορατών από έξω συναρτήσεων (µεθόδων) private: ήλωση µη ορατών από έξω µεταβλητών µνήµης (πεδίων) ήλωση/υλοποίηση µη ορατών από έξω συναρτήσεων (µεθόδων) }; Υλοποίηση µεθόδων (χρήση του τελεστή ::)

Ορισµός κλάσεων class [όνοµα κλάσης] { public: ήλωση ορατών από έξω µεταβλητών µνήµης (πεδίων) ήλωση ορατών από έξω συναρτήσεων (µεθόδων) private: ήλωση µη ορατών από έξω µεταβλητών µνήµης (πεδίων) ήλωση/υλοποίηση µη ορατών από έξω συναρτήσεων (µεθόδων) }; Υλοποίηση µεθόδων (χρήση του τελεστή ::)

Χαρακτηριστικές µέθοδοι κλάσεων Constructors Μέθοδοι που εκτελούνται αυτόµατα µε τη δήλωση ενός αντικειµένου της κλάσης Εχουν υποχρεωτικά το όνοµα της κλάσης και ΕΝ έχουν τύπο Μπορεί να είναι περισσότερες του ενός, αλλά πρέπει να διαφέρουν ως προς τις παραµέτρους που δέχονται Destructors Μέθοδοι που εκτελούνται αυτόµατα µε την καταστροφή ενός αντικειµένου της κλάσης Εχουν το όνοµα της κλάσης, µε το "~" στην αρχή του Κάθε κλάση έχει µόνο έναν destructor Ισχυρότατο εργαλείο προγραµµατισµού!

Constructors: παράδειγµα Μια γραµµή ως κλάση εδοµένα: x1, y1, x2, y2, len: πραγµατικοί αριθµοί Συµπεριφορά: νέα_γραµµή() ιάβασε όλα τα δεδοµένα της γραµµής από το πληκτρολόγιο Υπολόγισε το µήκος µήκος() Υπολόγισε το µήκος και ενηµέρωσε το πεδίο len νέα_γραµµή(σχ1, συ1, σχ2, συ2) Τα δεδοµένα της γραµµής δίνονται ως παράµετροι Υπολόγισε το µήκος νέα_γραµµή(σχ2, συ2) ίνεται το δεύτερο άκρο ως παράµετροι, και ΘΕΩΡΟΥΜΕ ότι το πρώτο είναι το (0,0) Υπολόγισε το µήκος

Constructors: παράδειγµα

Παράδειγµα

Γιατί είναι χρήσιµες οι κλάσεις;;; Στην ανάλυση προβληµάτων Κατάλληλες για παράσταση σύνθετων εννοιών Στην υλοποίηση Οταν ολοκληρωθεί ο ορισµός µιας κλάσης, η προσοχή µας αφιερώνεται στο πραγµατικό πρόβληµα και όχι στα τεχνικά σηµεία Στον προγραµµατισµό περιβαλλόντων µε γραφικά ΟΛΑ ανεξαιρέτως απαιτούν αντικειµενοστρεφή προγραµµατισµό Στην επαναχρησιµοποίηση έτοιµων λύσεων Βρίσκουµε έτοιµες βιβλιοθήκες για "τα πάντα" και δεν χρειάζεται να ξέρουµε να προγραµµατίζουµε αυτά που υλοποιούν οι βιβλιοθήκες: απλά τα χρησιµοποιούµε αµέσως Στην επέκταση έτοιµων λύσεων Προσθέτουµε δικά µας στοιχεία συµπεριφοράς σε έτοιµα προγράµµατα (πχ: arcview, autocad, msword, κλπ)