Πώς δουλεύει ένα πρόγραμμα;

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Τέλος Ενότητας.
Advertisements

Μεταγλωττιστές (Compilers) (Θ) Ενότητα 13: Επαναληπτικό μάθημα Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Το περιεχόμενο του μαθήματος διατίθεται.
Βασικές αρχές ευρετηρίασης
Οργάνωση πληροφοριών Ταξινόμηση (Θ) Ενότητα 1: Εισαγωγή (α μέρος) Δάφνη Κυριάκη-Μάνεση Τμήμα Βιβλιοθηκονομίας και Συστημάτων Πληροφόρησης Το περιεχόμενο.
Η ανοσοαποτύπωση ως επιβεβαιωτική μέθοδος
Τριφασικά συμμετρικά δίκτυα σε συνδεσμολογία Υ (1/2)
Περιλήψεις Γιατί; Πως; Τι είναι; Ποιος τις κάνει;
Αυτοματοποιημένη ευρετηρίαση
Διαμόρφωση πεδίων Περιγραφικά πεδία Διαχειριστικά πεδία Δομικά πεδία.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 11: Βελτιστοποίηση Ενδιάμεσου Κώδικα Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα.
Διάνοιξη πόρων Με ακτινοβολούμενη θερμότητα. Θερμαινόμενα σίδερα.
Καμπυλότητα Φακού P c
Τεχνολογία οφθαλμικών φακών Ι (Ε) Ενότητα 5: Έγχρωμοι φακοί Θεμιστοκλής Γιαλελής, Οπτικός, MSc, PhD candidate ΕΔΙΠ του τμήματος Οπτικής και Οπτομετρίας.
Συμπλήρωση Προτύπου Διδακτικού Σχεδιασμού
Eιδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων
Κανόνες Ασφαλείας Εργοταξίων
ΟΙΚΟΝΟΜΙΚΑ ΤΟΥ ΕΛΕΓΧΟΥ ΤΗΣ ΡΥΠΑΝΣΗΣ
Διάρκεια της άσκησης Η διάρκεια και η ένταση της άσκησης είναι σχετικές: Μεγαλύτερο διάλειμμα κατά την άσκηση παραπέμπει σε αερόβια διαδικασία. Μικρότερο.
Εκτίμηση Φυσικής Κατάστασης
Άλλες μορφές νευρώσεων
Διαχείριση παραγωγής εντύπων 1/2
Επικοινωνιακός Προγραμματισμός Ι
Άσκηση 8 (1 από 3) Προβολές 1. Να επιλέξετε ένα θέμα βασισμένο σε κάποια παράγραφο / υποπαράγραφο του κεφαλαίου 6 των σημειώσεων και να κάνετε μια εργασία.
Τεχνολογία οφθαλμικών φακών Ι (Ε)
Υπολογιστική Γεωμετρία και Εφαρμογές στις ΒΧΔ
Βασικά δεδομένα Το σύστημα υγείας δεν αποτελεί απλά άθροισμα επιμέρους μερών. Τα επιμέρους στοιχεία του συστήματος βρίσκονται σε συνεχή αλληλεξάρτηση.
Παρουσίαση ναυπηγικών γραμμών 1/3
Άρθρο Συγγραφείς: Marcus Plescia, MD, MPH, Martha Groblewski, PhD, RD, LDN. Τίτλος: A Community Oriented Primary care Demonstration Project Refining.
Ταυτότητα και περίγραμμα μαθήματος
Δίκτυα Υπολογιστών ΙΙ (Ε)
Άσκηση 7 (1 από 5) Υπολογισμοί μηκών τόξων σφαίρας. Το έτος 2035 μ.Χ., μετά από πυρηνική καταστροφή και λόγω του φαινομένου του θερμοκηπίου, που πήρε εκρηκτικές.
ΠΡΟΤΥΠΟ ΕΛΟΤ EN ISO 3251 Ζύγιση μάζας υγρού μελανιού (m1 g)
Ενότητα 13 Αξιολόγηση μαθήματος και διδάσκοντος από την εφαρμογή της Μονάδας Ολικής Ποιότητας (ΜΟΔΙΠ) του ΤΕΙ Αθήνας Αξιολόγηση του μαθήματος Αξιολόγηση.
Άσκηση 9 (1 από 2) Ανακαλύψτε στο χάρτη σας μερικά χαρτογραφικά αντικείμενα που να ανήκουν στις παρακάτω κατηγορίες : φυσικά, τεχνητές κατασκευές, αφηρημένα.
Τοπολογικές σχέσεις 1/3 Βρείτε και περιγράψτε τις τοπολογικές σχέσεις σύμφωνα με τους (Pantazis, Donnay 1996) για τα παρακάτω γεω-γραφικά αντικείμενα:
Επιλογή φλέβας για λήψη φλεβικού αίματος 1/7
Κανονικοποίηση ΤΙ ΕΙΝΑΙ ; Τεχνική Διαδικασία
Επικοινωνιακός Προγραμματισμός Ι
Εικαστικές συνθέσεις - Χρώμα στο χώρο
Οργάνωση και Διοίκηση Πρωτοβάθμιας (Θ)
Γενική και Μαθηματική Χαρτογραφία (Ε)
Οργάνωση και Διοίκηση Πρωτοβάθμιας (Θ)
Λιθογραφία – Όφσετ (Θ) Ενότητα 8.2: Εκτυπωτική Διαδικασία Μηχανής
Επικοινωνιακός Προγραμματισμός Ι
Ενότητα 9: Συστήματα Υγείας στην Ευρώπη: Σουηδία
Τηλεοπτική και Ραδιοφωνική Παραγωγή
Αισθητική Σώματος Ι (Ε)
Αισθητική Σώματος Ι (Ε)
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας
Ειδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων -E
Γενική και Μαθηματική Χαρτογραφία (Ε)
Ψυχιατρική Ενότητα 12: Εισαγωγή στις νευρώσεις
Αισθητική Σώματος Ι (Ε)
Ενότητα 5.2: Αιθέρες Χριστίνα Φούντζουλα Τμήμα Ιατρικών Εργαστηρίων
Ενότητα 8: Συστήματα Υγείας στην Ευρώπη: Γαλλία
Βασικές κλινικές δεξιότητες (Ε)
Eιδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων -Θ
Συστήματα Θεματικής Πρόσβασης (Θ)
Ψυχιατρική Ενότητα 7: Συνέχεια σταδίων
Κοσμητολογία ΙΙ (Θ) Ενότητα 3: Kρέμες (γ’ μέρος)
Ανοσολογία (Ε) Ενότητα 3: Αιμοσυγκόλληση Πέτρος Καρκαλούσος
Γενική και Μαθηματική Χαρτογραφία (Ε)
Οργανική Χημεία (Ε) Ενότητα 2: Προσδιορισμός σημείου τήξης
Ενότητα 1: ……………….. Όνομα Επώνυμο Τμήμα __
Αισθητική προσώπου Ι (Ε)
Σύσταση και Ανάλυση Γλευκών και Οίνων (Θ)
Αισθητική ηλεκτροθεραπεία σώματος
Ενότητα 6: Δονήσεις Γεωργία Πέττα Τμήμα Φυσικοθεραπείας
Αισθητική ηλεκτροθεραπεία σώματος
Επικοινωνιακός Προγραμματισμός Ι
Μεταγράφημα παρουσίασης:

Αντικειμενοστρεφής Προγραμματισμός (Θ) Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Αντικειμενοστρεφής Προγραμματισμός (Θ) Ενότητα 1: Περιήγηση στη C++ Κλειώ Σγουροπούλου Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Πώς δουλεύει ένα πρόγραμμα; Τα προγράμματα: γράφονται από ανθρώπους και εκτελούνται σε υπολογιστές, αφού πρώτα μεταφραστούν σε κώδικα μηχανής από τον μεταφραστή (μεταγλωττιστή). Προγραμματιστής C++ // Compute the area // of a triangle area =(base * height) / 2.0; Μεταγλωττιστής C++ Κώδικας Μηχανής 0010 1101 1101 1000 1001 1000 0001 0010 0010 0000

Πως γράφουμε ένα πρόγραμμα; Η καλή οργάνωση είναι πολύ σημαντική για τη συγγραφή προγραμμάτων Βήματα συγγραφής προγραμμάτων Σκέφτομαι! (υποχρεωτικό βήμα), Οργανώνω τις σκέψεις μου, Τις καταγράφω σε φυσική γλώσσα, Κωδικοποιώ σε γλώσσα προγραμματισμού. Γράψτε προγράμματα! Δεν υπάρχει καλύτερος δάσκαλος από την εμπειρία.

Διαδικασία Μεταγλώττισης Κώδικας σε γλώσσα υψηλού επιπέδου προεπεξεργαστής Πηγαίο πρόγραμμα bla.c μεταγλωττιστής Αντικείμενο assembly πρόγραμμα bla.asm assembler Επανατοποθετήσιμος κώδικας μηχανής bla.obj βιβλιοθήκες, Σχετικά αντικείμενα αρχεία lib.obj απόλυτος κώδικας μηχανής a.out

Εργαλεία ανάπτυξης Επεξεργαστής κειμένου, Μεταγλωττιστής, Συνδέτης, Χρησιμοποιείται για τη συγγραφή του προγράμματος στη γλώσσα υψηλού επιπέδου. Αποτελεί την αρχική μορφή στη διαδικασία μετάφρασης και για το λόγο αυτό καλείται «πηγαίο αρχείο». Κατάληξη σε .cpp Μεταγλωττιστής, Μεταφράζει το πηγαίο αρχείο σε αρχείο με κώδικα εξαρτώμενο από τη μηχανή (αντικείμενο αρχείο) Συνδέτης, Συνδέει το αντικείμενο αρχείο που παράγεται από το μεταγλωττιστή με μονάδες προγράμματος βιβλιοθηκών και παράγει το εκτελέσιμο πρόγραμμα Βιβλιοθήκη. Συγκεντρώνει επαναχρησιμοποιήσιμες μονάδες προγράμματος

Ιστορία της C++ B.C. Γλώσσες όπως FORTRAN, COBOL, ALGOL, PL/I και άλλες. 1970 Οι Brian Kernigham και Dennis Ritchie αναπτύσσουν τη C. Η γλώσσα που αποτέλεσε την έμπνευσή τους ονομαζόταν “B”. 1980 Ο Bjarne Stroustrup δημιουργεί τη “ C με Κλάσεις”. 1995 Η Επιτροπή ANSI εκδίδει τo σχέδιο Προτύπου C++. 1998 Υιοθετείται το επίσημο πρότυπο για τη C++. C++ υπερσύνολο της C

O Κόσμος της C++ Παραδοσιακές γλώσσες προγραμματισμού: Δεδομένα – βασικά δομικά στοιχεία ενός προγράμματος, Κώδικας – εντολές προς τον υπολογιστή σχετικά με το πως να χειριστεί τα δεδομένα. Η C++ παρέχει επιπλέον: Κλάσεις – ορισμοί συνδυασμών δεδομένων και λειτουργιών, που εκτελούνται επί των σχετικών δεδομένων.

Χαρακτηριστικά της C++ Αντικειμενοστρέφεια Δομικό στοιχείο της γλώσσας τα αντικείμενα (δεδομένα και λειτουργίες). Πολυμορφισμός Δυνατότητα της γλώσσας να χρησιμοποιεί το ίδιο συμβολικό όνομα για διαφορετικές χρήσεις, Υπερφόρτωση συναρτήσεων και τελεστών. int abs(int), float abs(float) double sqrt_f(int), double sqrt_f(float, float) Κληρονομικότητα Δυνατότητα ένα αντικείμενο να αποκτήσει τις ιδιότητες ενός άλλου αντικειμένου.

Αντικειμενοστρέφεια και Κλάσεις Αντικειμενοστρεφής Προγραμματισμός μια μεθοδολογία ανάπτυξης λογισμικού σύμφωνα με την οποία ένα πρόγραμμα γίνεται αντιληπτό σαν μια ομάδα αντικειμένων που συνεργάζονται μεταξύ τους. μιμείται τον τρόπο με τον οποίο συλλέγονται τα αντικείμενα στο φυσικό κόσμο... Οι κλάσεις αποτελούν τα «μοντέλα» υλοποίησης των αντικειμένων. περιγράφουν χαρακτηριστικά στοιχεία (δεδομένα) των μελλοντικά υλοποιούμενων αντικειμένων (στιγμιότυπα κλάσης) και τις λειτουργίες που πρέπει να επιτελούνται σε αυτά τα δεδομένα.

Ένα απλό C - C++ πρόγραμμα // title.cpp πρόγραμμα εμφάνισης ενός τίτλου #include <iostream.h> int main() { cout<<“O Κόσμος της C++\n”; return (0); } title.c #include <stdio.h> Σχόλια Οδηγία στον προεπεξεργασή printf(“Ο κόσμος της C++\n”); Διαφορές με κώδικα σε C; Κύρια συνάρτηση – Entry point

Ένα απλό C πρόγραμμα με struct #include <stdio.h> struct Car { char model[30]; int capacity; int year; int color; char owner[30]; }; int main() struct Car car1; … car1.year=2000; printf(“Year of manufacture: %d”,car1.year); } C++ : Κλάση γενίκευση της struct

C++: Μοντελοποίηση - Ορισμός Kλάσης Αυτοκίνητο Δεδομένα: Μοντέλο, Κυβικά, Έτος, Χρώμα, Ιδιοκτήτης Λειτουργίες: Αλλαγή ιδιοκτήτη, αλλαγή χρώματος class Car { private: string model; int kybika; int year; int color; string owner; public: void changeOwner(int newOwner); void changeColor(int newColor); }

Αντικείμενα (Στιγμιότυπα Kλάσης) 1/2 Class: “Car” “2006 3.2 V6 S-Tronic Audi TT Mark 2”,  από Anetode διαθέσιμο με άδεια CC BY-SA 2.0 “Jaguar X100 Convertible front 20090430”,  από Randy43 διαθέσιμο ως κοινό κτήμα “Ferrari F360 3”,  από Thomas doerfer διαθέσιμο ως κοινό κτήμα Instance of “Car” Object: Audi TT Instance of “Car” Object: Jaguar XK8 Instance of “Car” Object: Ferrari Modena Instance of “Car” Object: Bertona Bella

Αντικείμενα (Στιγμιότυπα Kλάσης) 2/2 class Car car1; ή Car car1; car1.model=“Audi TT”; Car car2; car2.model=“Bertona Bella”; car2.changeOwner(“Cleo Sgouropoulou”);-)

Το πρόγραμμα car.cpp 1/3 #include <iostream> using namespace std; class Car { private: string model; int kybika; int year; int color; string owner; public: void init(); void changeColor(int newColor); void changeOwner(string newOwner); void printCarData(); };

Το πρόγραμμα car.cpp 2/3 void Car::init() { model="Audi TT"; kybika=2000; year=2006; color=1; owner="Factory"; } void Car::changeColor(int newColor) color=newColor; void Car::changeOwner(string newOwner) owner=newOwner;

Το πρόγραμμα car.cpp 3/3 void Car::printCarData() { cout<<"Model="<<model<<"\n"; cout<<"Kybika="<<kybika<<"\n"; cout<<"Year="<<year<<"\n"; cout<<"Color="<<color<<"\n"; cout<<"Owner="<<owner<<"\n"; } int main() Car car1; car1.init(); car1.changeOwner("Cleo Sgouropoulou"); car1.printCarData(); return 0;

Οργάνωση σε ξεχωριστά αρχεία 1/3 //car.h – Car class definition file using namespace std; class Car { private: string model; int kybika; int year; int color; string owner; public: void init(); void changeColor(int newColor); void changeOwner(string newOwner); void printCarData(); }; car.h

Οργάνωση σε ξεχωριστά αρχεία 2/3 //car.cpp – Car class implementation file #include <iostream> #include "car.h" void Car::init() { model="Audi TT"; kybika=2000; year=2006; color=1; owner="Factory"; } void Car::changeColor(int newColor) { color=newColor;} void Car::changeOwner(string newOwner) {owner=newOwner;} void Car::printCarData() { cout<<"Model="<<model<<"\n"; cout<<"Kybika="<<kybika<<"\n; cout<<"Year="<<year<<"\n"; cout<<"Color="<<color<<"\n"; cout<<"Owner="<<owner<<"\n"; } car.cpp

Οργάνωση σε ξεχωριστά αρχεία 3/3 //main.cpp – Entry program #include <iostream> #include "car.h" int main() { Car car1; car1.init(); car1.changeOwner("Cleo Sgouropoulou"); car1.printCarData(); return 0; } main.cpp

Μεταγλώττιση Λειτουργικό Windows Λειτουργικό Unix Μέσω ολοκληρωμένου περιβάλλοντος π.χ. Dev-cpp Με χρήση command line compiler g++ main.cpp car.cpp δημιουργία .exe αρχείου Λειτουργικό Unix g++ -o carprog main.cpp car.cpp

Τέλος Ενότητας

Σημειώματα

Σημείωμα Αναφοράς Copyright Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας, Κλειώ Σγουροπούλου 2014. Κλειώ Σγουροπούλου. «Αντικειμενοστραφής Προγραμματισμός-Θ. Ενότητα 1: Περιήγηση στη C++». Έκδοση: 1.0. Αθήνα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: ocp.teiath.gr.

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

Επεξήγηση όρων χρήσης έργων τρίτων Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου άδεια από το δημιουργό. © διαθέσιμο με άδεια CC-BY Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με απλή αναφορά του δημιουργού. διαθέσιμο με άδεια CC-BY-SA Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. διαθέσιμο με άδεια CC-BY-ND Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η δημιουργία παραγώγων του έργου. διαθέσιμο με άδεια CC-BY-NC Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Δεν επιτρέπεται η εμπορική χρήση του έργου. διαθέσιμο με άδεια CC-BY-NC-SA διαθέσιμο με άδεια CC-BY-NC-ND Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου και η δημιουργία παραγώγων του. διαθέσιμο με άδεια CC0 Public Domain Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. διαθέσιμο ως κοινό κτήμα χωρίς σήμανση Συνήθως δεν επιτρέπεται η επαναχρησιμοποίηση του έργου.

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

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