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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης 2006 Ρ.Κορακίτης, Β.Βεσκούκης, Θ.Καραλόπουλος, Γ.Πανόπουλος

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

Διάλεξη 19η: Δομές δεδομένων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 10 Ο. Δομές Ενώσεις Απαριθμητοί τύποι δεδομένων ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου

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

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

Rational Unified Process:

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Αντικειμενοστραφής Προγραμματισμός και JavaScript

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

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

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

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

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

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

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

5. ΣΥΝΑΡΤΗΣΕΙΣ. (Πρόχειρο σχέδιο - Μαθήµατος 3) p Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

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

Δυναμική μνήμη με πίνακες και λίστες

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

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

Συμβολικά ονόματα που δίνονται σε θέσεις μνήμης όπου αποθηκεύονται αριθμοί. ιεύθυνση

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

scanf() scanf() stdin scanf() printf() int float double %lf float

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

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

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

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

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

Θέµατα εξετάσεων µε απαντήσεις

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

Συναρτήσεις Θεωρία Ορισμοί - Παρατηρήσεις

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης Μοντέλο Οντοτήτων-Συσχετίσεων. Το Σχεσιακό Μοντέλο Δεδομένων

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

Μεθόδων Επίλυσης Προβλημάτων

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

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

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

Κεφάλαιο Πίνακες Ι. ( ιάλεξη 15) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

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

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

Week. 6: Java Collections

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

Μεθόδων Επίλυσης Προβλημάτων

Εκπαιδευτικός Οµιλος ΒΙΤΑΛΗ

διεύθυνση πρώτου στοιχείου διεύθυνση i-οστού στοιχείου T t[n]; &t[0] είναι t &t[i] είναι t + i*sizeof(t)

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

Κεφάλαιο V: Δομές και ενώσεις. 5.1 Δομές.

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης ΜΟΝΤΕΛΑ ΔΕΔΟΜΕΝΩΝ

Προγραμματισμό για ΗΜΥ

Transcript:

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

οµές δεδοµένων και µεταβλητές µνήµης Απλές (ατοµικές) δοµές δεδοµένων Αποθηκεύουν µία τιµή κάθε φορά Ανήκουν σε κάποιους προκαθορισµένους τύπους της γλώσσας προγραµµατισµού που χρησιµοποιούµε (int, float, char, κλπ) εν είναι κατάλληλες για την παράσταση σύνθετων εννοιών και των ιδιοτήτων τους, οι οποίες, γενικά ΕΝ είναι ατοµικές Σύνθετες δοµές δεδοµένων Αποθηκεύουν πολλές τιµές µαζί Ορίζονται ως νέοι τύποι από το χρήστη και µετά τον ορισµό τους χρησιµοποιούνται κανονικά ως τύποι της γλώσσας Είναι µέσα για την παράσταση σύνθετων εννοιών και οντοτήτων Υπενθύµιση Τύπος που υπάρχει ενσωµατωµένος στη C++ float x,y; Ονόµατα µεταβλητών µνήµης (τύπου float) Ορισµός ενός νέου τύπου από τον χρήστη Ονοµατου νέου τύπου struct point { float x,y; int pid; }; point p1, p2, p3; Ονόµατα µεταβλητών µνήµης (τύπου point)

Σύνθετες δοµές δεδοµένων Ιδιότητες ή πεδία Ολες οι µεταβλητές µνήµης που είναι ενός σύνθετου τύπου (struct) ο οποίος έχει οριστεί από τον χρήστη, έχουν τις ίδιες ιδιότητες ιαφέρουν µεταξύ τους από το όνοµά τους, όπως ακριβώς και οι απλές µεταβλητές µνήµης struct point { float x,y; int pid; }; point p1, p2, p3; Στο παράδειγµά µας: όλα τα σηµεία (p1, p2, p3) έχουν τις ίδιες ιδιότητες, δηλαδή τα x, y και pid. Αναφορά στις ιδιότητες Το όνοµα της ιδιότητας (x, y, pid) ΕΝ έχει νόηµα από µόνο του διότι πρέπει να προσδιορίσουµε ΣΕ ΠΟΙΟΥ ΜΕΛΟΥΣ ΤΙΣ Ι ΙΟΤΗΤΕΣ ΑΝΑΦΕΡΟΜΑΣΤΕ. Ετσι χρησιµοποιούµε τον συµβολισµό: όνοµα_µεταβλητής_µνήµης + τελεία + όνοµα_πεδίου

Αναφορά στα πεδία των struct Ονοµα_µεταβλητής_µνήµης + τελεία + όνοµα_πεδίου Ετσι καθορίζουµε σε ποιο πεδίο ποιας σύνθετης οντότητας θα αναφερθούµε Ορισµός ενός νέου τύπου από τον χρήστη Ονοµατου νέου τύπου struct point { float x,y; int pid; }; point p1, p2, p3; Ονόµατα και τύποι ιδιοτήτων (πεδίων) του τύπου point ήλωση µεταβλητών µνήµης τύπου point p1.x=2.14; p1.y=0; p1.pid=1 Ανάθεση τιµών στα πεδία του p1 Ονοµατης µεταβλητής µνήµης Ονοµατου πεδίου cin>>p2.x; cout<<p2.y; ΣΩΣΤΗ ΧΡΗΣΗ! cin>>point.x; cout<<point.y; point.pid=10; ΛΑΘΟΣ ΓΙΑΤΙ ΕΝ ΧΡΗΣΙΜΟΠΟΙΕΙ ΟΝΟΜΑ ΜΕΤΑΒΛΗΤΗΣ ΜΝΗΜΗΣ, ΑΛΛΑ ΤΟ ΟΝΟΜΑ ΤΟΥ ΤΥΠΟΥ (point)

Το struct ως εργαλείο µοντελοποίησης Μια από τις πρώτες διατυπώσεις σχετικά µε την πληροφορική: Από τον πραγµατικό κόσµο......σε ένα µοντέλο κατάλληλο για Η/Υ......στον υπολογιστή µε χρήση µιας γλώσσας προγραµµατισµού Τα µοντέλα δεδοµένων χρησιµοποιούνται για να αντιστοιχίσουν Εννοιες του πραγµατικού κόσµου (πχ µήκος, συντεταγµένες, εµβαδόν) Σε έννοιες που χρησιµοποιεί ο Η/Υ (float length, x, y, area;) Σύνθετα αντικείµενα του πραγµατικού κόσµου δεν παριστάνονται απλά ά και κατανοητά µε απλές (ατοµικές) µεταβλητές µνήµης Σηµείο Τετµηµένη Τεταγµένη float int Γραµµή Τετµ.σηµ.1 Τεταγ.σηµ.1 Τετµ.σηµ.2 Τεταγ.σηµ.2 Μήκος Χρώµα Σηµείο float int Γραµµή Σηµείο1 Σηµείο2 Μήκος Χρώµα Ονοµα struct Πεδία του struct (ιδιότητες)

Νέες ιδέες µοντελοποίησης δεδοµένων Ενα struct Α περιέχει Πεδία, δηλαδή απλές (ατοµικές) µεταβλητές µνήµης Τα πεδία αυτά αποτελούν τις ιδιότητες του struct ή καλύτερα καθορίζουν ποιες θα είναι οι ιδιότητες των µεταβλητών που θα οριστούν ως τύπου Α Προσοχή: Καθορίζουν ποιες θα είναι οι ιδιότητες και όχι τι τιµές θα έχουν Ποιες θα είναι: (ύψος, βάρος, ηµ.γέννησης) Τι τιµές θα έχουν: (1.70, 60, 1.1.1980) Μια νέα ιδέα: να κατασκευάσουµε δοµές δεδοµένων οι οποίες εκτός από ιδιότητες να έχουν και δική τους συµπεριφορά! Αυτές οι δοµές λέγονται ΚΛΑΣΕΙΣ (class)( Μέθοδοι ή "συναρτήσεις-µέλη" (member functions) Ονοµα Πεδία (ιδιότητες) Στοιχεία "συµπεριφοράς" Γραµµή Σηµείο1 Σηµείο2 Μήκος Χρώµα Εµφάνισε() Μέτρησε()

Κλάσεις Σύνθετες,, οριζόµενες από το χρήστη δοµές, οι οποίες περιέχουν Ιδιότητες (πεδία, fields, attributes) και Συµπεριφορά (µεθόδους, methods, member functions) Οι κλάσεις µπορούν να ιδωθούν: Ως προγραµµατιστικό εργαλείο Ως εργαλείο µοντελοποίησης δεδοµένων Ορολογία Απλοί τύποι: τύπος δεδοµένων -> µεταβλητή int i (Μεταβλητή τύπου int) Point p1 (µεταβλητή τύπου Point (struct που ορίστηκε από εµάς) Κλάσεις: Κλάση -> αντικείµενο (object) Οπως ορίζουµε µεταβλητές ενός τύπου, δηµιουργούµε και Αντικείµενα (objects) µιας κλάσης Εξ' ου και "object-oriented" (αντικειµενοστρεφής)

Ενα πρώτο παράδειγµα Αρχή δήλωσης της κλάσης Τέλος δήλωσης της κλάσης

Ενα πρώτο παράδειγµα ΠΡΟΣ ΙΟΡΙΣΤΗΣ ΟΡΑΤΟΤΗΤΑΣ ΠΕ ΙΑ ΜΕΘΟ ΟΙ

Ενα πρώτο παράδειγµα ΗΜΙΟΥΡΓΙΑ ΑΝΤΙΚΕΙΜΕΝΟΥ ΠΡΟΣΠΕΛΑΣΗ ΠΕ ΙΩΝ ΚΛΗΣΗ ΜΕΘΟ ΟΥ