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

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

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

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

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

Εισαγωγή στους Αλγορίθμους

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

Εισαγωγή στους Αλγορίθμους

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

Διοικητική Λογιστική

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Εισαγωγή στους Αλγορίθμους

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Κβαντική Επεξεργασία Πληροφορίας

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

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

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

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

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

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

Βέλτιστος Έλεγχος Συστημάτων

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

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

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

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

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

Κβαντική Επεξεργασία Πληροφορίας

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

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

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

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

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Τεχνικό Σχέδιο - CAD

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

Διοικητική Λογιστική

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

Μηχανολογικό Σχέδιο Ι

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Διδακτική των εικαστικών τεχνών Ενότητα 2

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Ευφυής Προγραμματισμός

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Βάσεις Περιβαλλοντικών Δεδομένων

Διδακτική των εικαστικών τεχνών Ενότητα 1

Διδακτική των εικαστικών τεχνών Ενότητα 3

Φιλοσοφία της Ιστορίας και του Πολιτισμού

Εισαγωγή στους Υπολογιστές

Διδακτική των εικαστικών τεχνών Ενότητα 2

Κβαντική Επεξεργασία Πληροφορίας

Δυναμική και Έλεγχος E-L Ηλεκτρομηχανικών Συστημάτων

Διδακτική Πληροφορικής

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Γενική Φυσική Ενότητα: Ταλαντώσεις

Αερισμός. Ενότητα 1: Αερισμός και αιμάτωση. Κωνσταντίνος Σπυρόπουλος, Καθηγητής Σχολή Επιστημών Υγείας Τμήμα Ιατρικής

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

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

Κβαντική Επεξεργασία Πληροφορίας

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

Αρχές Προγραμματισμού

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

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

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

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

Έλεγχος Ποιότητας Φαρμάκων

Ψηφιακή Επεξεργασία Εικόνων

Διδακτική των εικαστικών τεχνών Ενότητα 2

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Γενική Φυσική Ενότητα: Εισαγωγή στην Ειδική Θεωρία της Σχετικότητας

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

Τεχνικό Σχέδιο - CAD

Διδακτική Πληροφορικής

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Transcript:

Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Εισαγωγή στην C++ ΔΙΔΑΣΚΟΝΤΕΣ:Iωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής

H Γλώσσα C++

ΙΣΤΟΡΙΑ 1967: Simula67 (Νορβηγία) -> πρώτη αντικειμενοστρεφής γλώσσα 70: Smalltalk (Palo Alto, CA) -> κάθε στοιχείo ένα αντικείμενο Αρχές 80: o αντικειμενοστρεφής τρόπος σκέψης εισάγεται σε ακαδημαϊκούς κύκλους 80: C++ (Stroustrup, AT&T): σοβαρή, αποδοτική γλώσσα, πρότυπο στη βιομηχανία 1995: Java (Sun Microsystems) 3/18

ΔΙΑΦΟΡΕΣ ME C C Διαδικαστικός προγραμματισμός Από άνω προς τα κάτω, σχεδίαση προγράμματος με C C++ Object based προγραμματισμός (κλάσεις, αντικείμενα, ενθυλάκωση) Object oriented προγραμματισμός (κληρονομικότητα, πολυμορφισμός) Generic πολυμορφισμός (class και function templates) 4/18

COMPILERS CYGWIN (G++) Devc++ Code::blocks 5/18

ΕΙΣΟΔΟΣ ΕΞΟΔΟΣ cin cout cerr Standard input stream Συνήθως από το πληκτρολόγιο Standard output stream Συνήθως έξοδος στην οθόνη Standard error stream Προβολή μηνυμάτων σφαλμάτων 6/18

Απλό πρόγραμμα - Εκτύπωση #include <iostream> int main(){ std::cout << "Hello World!\n"; return 0; } Hello World! std::cout είναι το κανάλι εξόδου στην οθόνη Χρήση τελεστή << Χαρακτήρας escape: / /n επόμενη γραμμή /t κενό tab // χαρακτήρας / / χαρακτήρας Παρατήρηση: Δεν είναι ανάγκη να βρίσκεται μέσα σε κάποια κλάση όπως στην Java 7/18

Απλό πρόγραμμα Είσοδος/Έξοδος #include <iostream> int main(){ int num; std::cout << "Enter integer\n"; std::cin >> num; std::cout << "Your number was: " <<num<<std::endl; return 0; } Enter integer 5 Your number was: 5 Διαδοχική χρήση του τελεστή << std::in είναι το κανάλι εισόδου από το πληκτρολόγιο Χρήση τελεστή >> Το std::endl μεταφέρει σε επόμενη γραμμή (αναγκάζει το κείμενο να εκτυπωθεί) 8/18

Χρήση Using, Inline συναρτήσεις #include <iostream> using std::cout; using std::cin; using std::endl; inline double diameter( const double r ) { return 2 * r; } int main(){ double r; for ( int k = 1; k < 3; k++ ) { cout << "Enter radius of circle: "; cin >> r; cout << "The diameter of the circle is " << diameter( r ) << endl; } return 0; } Το std:: στην αρχη μπορεί να παραληφθεί αν έχει γίνει πριν η δήλωση using std::cout; Συναρτήσεις με τον προσδιοριστή inline, αναγκάζουν τον compiler να ενσωματώσει τον κώδικα τους στο σημείο όπου καλούνται. (καλύτερη απόδοση σε ταχύτητα εκτέλεσης, αλλά αυξάνεται το μέγεθος του εκτελέσιμου) 9/18

Πέρασμα με Αναφορά #include <iostream> using std::cout; using std::endl; int foobyvalue( int x) { x = x + 5; return x; } void foobyreference( int &x ){ x = x + 5; } Περνάει στην συνάρτηση ένα αντίγραφο του ορίσματος (δεν αλλάζει η τιμή του number) Περνάει το ίδιο το όρισμα (αύξηση του x σημαίνει αύξηση του number) int main(){ int number = 4; cout << "foobyvalue returns: " << foobyvalue(number) << endl; cout << "Number: " << number << endl; foobyreference(number); cout << "Number" << number << endl; return 0; } foobyvalue returns: 9 Number: 4 Number9 Δεν άλλαξε η τιμή του number από την κληση της foobyvalue Άλλαξε η τιμή του number από την κληση της foobyreference 10/18

Προκαθορισμένες Τιμές Ορισμάτων Δήλωση προκαθορισμένων τιμών για τα ορίσματα συνάρτησης για την περίπτωση που παραληφθούν. #include <iostream> using std::cout; using std::endl; int foo( int a = 0, int b = 0, int c = 0 ){ return a*100 + b* 10 + c; } int main(){ cout << "All default: " << foo() <<endl << "b,c default: " << foo( 1 ) <<endl << "c default: << foo( 1,2 ) <<endl << "no default: " << foo( 1, 2, 3 ) <<endl; return 0; } All default: 0 b,c default: 100 c default: 120 no default: 123 11/18

Πρόσθετο Υλικό Μελετήστε και τα παραδείγματα από το Κεφάλαιο 2 του βιβλίου: «C++ How to Program, 9/e Paul & Harvey Deitel» http://media.pearsoncmg.com/ph/esm/deitel/cpp_htp_9/code_examples/code_examples.zip 12/18

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 13/18

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0.1 14/18

Σημείωμα Αναφοράς Copyright: Πανεπιστήμιον Πατρών, Ιωάννης Χατζηλυγερούδης, 2015. «Οντοκεντρικός Προγραμματισμός». Έκδοση: 1.0.1 Πάτρα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/ceid1105/ 15/18

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 17/18

Σημείωμα Χρήσης Έργων Τρίτων Οι διαφάνειες βασίζονται στο βιβλίο «C++ How to Program, 8th Edition, Harvey M. Deitel, Paul J. Deitel, Prentice Hall.» 18/18