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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων Ενότητα 1

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 10 : Κατασκευή ΝΠΑ. Αλέξανδρος Τζάλλας

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

Λειτουργικά Συστήματα

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

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 8 : Πίνακες IΙ. Αλέξανδρος Τζάλλας

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

Φωνολογική Ανάπτυξη και Διαταραχές

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ηλεκτρονικοί Υπολογιστές

Διοικητική των επιχειρήσεων

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

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

Αρχιτεκτονική υπολογιστών

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

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

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

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

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

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

Λειτουργικά Συστήματα

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

Ιστορία της μετάφρασης

Αρχιτεκτονική υπολογιστών

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

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

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

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 8 : Αυτόματα NFA - DFA. Αλέξανδρος Τζάλλας

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

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

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Νοσηλευτική Σεμινάρια

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Μάρκετινγκ Αγροτικών Προϊόντων

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

Προγραμματισμός Ι Ενότητα 6 :

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 11 : Γραμματικές χωρίς συμφραζόμενα. Αλέξανδρος Τζάλλας

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

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

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

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

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Μικροοικονομική. Ενότητα 7 : Ισορροπία αγοράς Καραμάνης Κωνσταντίνος

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

Εκκλησιαστικό Δίκαιο

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

Αρχιτεκτονική υπολογιστών

Λειτουργικά Συστήματα

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 9 : Κανονικές Εκφράσεις. Αλέξανδρος Τζάλλας

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

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

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

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

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

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

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

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

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

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

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

Νοσηλευτική Σεμινάρια

Στατιστική. 6 ο Μάθημα: Διαστήματα Εμπιστοσύνης και Έλεγχοι Υποθέσεων. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Μικροοικονομική. Ενότητα 6 : Ελαστικότητα προσφοράς Καραμάνης Κωνσταντίνος

Εκκλησιαστικό Δίκαιο

Ηλεκτρονικοί Υπολογιστές

Φωνολογική Ανάπτυξη και Διαταραχές

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

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

Λοιμώδη Νοσήματα Υγιεινή Αγροτικών Ζώων

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

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

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

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

Γενικά Μαθηματικά Ι. Ενότητα 7: Σειρές Taylor, Maclaurin. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Transcript:

1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αντικειμενοστραφής Προγραμματισμός Ενότητα 4 : Πίνακες Ιωάννης Τσούλος

2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής Τ.Ε Αντικειμενοστραφής Προγραμματισμός Ενότητα 4 : Πίνακες Ιωάννης Τσούλος Επίκουρος Καθηγητής Άρτα, 2015

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 3 3

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

Εισαγωγικά Οι πίνακες υλοποιούνται είτε ως παραδοσιακοί πίνακες (όπως στη C) είτε ως αντικείμενα. Μπορούν να είναι μίας ή πολλών διαστάσεων και ο τρόπος προσπέλασης των στοιχείων είναι ο ίδιος με αυτόν της C. type table[size]; Ως type θεωρούμε τον τύπο δεδομένων των αντικειμένων του πίνακα (bool, char, short, int, long, float, double, char) είτε το όνομα μιας κλάσης αντικειμένων. Το size απεικονίζει το μέγεθος του πίνακα table. 5 5

Εισαγωγικά Mπορούμε να προσπελλάσουμε τα στοιχεία του πίνακα με την σύνταξη table[i], όπου i η θέση του στοιχείου που μας ενδιαφέρει. Αν έχουμε έναν πίνακα A με 10 στοιχεία το πρώτο στοιχείο είναι το A[0] και το τελευταίο το A[9]. Λαμβάνουμε το μέγεθος του με χρήση της συνάρτησης sizeof() (επιστρέφει το μέγεθος σε bytes και όχι σε στοιχεία του πίνακα). 6 6

Εισαγωγικά Mπορούμε να προσπελλάσουμε τα στοιχεία του πίνακα με την σύνταξη table[i], όπου i η θέση του στοιχείου που μας ενδιαφέρει. Αν έχουμε έναν πίνακα A με 10 στοιχεία το πρώτο στοιχείο είναι το A[0] και το τελευταίο το A[9]. Λαμβάνουμε το μέγεθος του με χρήση της συνάρτησης sizeof() (επιστρέφει το μέγεθος σε bytes και όχι σε στοιχεία του πίνακα). 7 7

Εισαγωγικά int data[10]; int datasize = sizeof(data) / sizeof(int); int i; cout << Size of array data: << sizeof(data) / sizeof(int) << endl; for (i = 0; i < datasize; i++) { data[i] = i*i; cout << data[ << i << ] = << data[i] << endl; } o Σε περίπτωση που θέλουμε να αρχικοποιήσουμε ένα πίνακα, δηλαδή να ορίσουμε αρχικές τιμές για τα στοιχεία του, αυτό μπορούμε να το πετύχουμε με την εξής συντακτική δομή: int dataset[] = {22,3,54,43,199,20,20,67,7,80 }; Size of array data: 10 data[0] = 0 data[1] = 1 data[2] = 4 data[3] = 9 data[4] = 16 data[5] = 25 data[6] = 36 data[7] = 49 data[8] = 64 data[9] = 81 8 8

Πολυδιάστατοι πίνακες Ένας δισδιάστατος πίνακας μπορεί να δηλωθεί ως εξής: int twodim[4][4]; int arraysize = 4; int i, j, counter = 1; for (i = 0; i < arraysize; i++) { for (j = 0; j < arraysize; j++) { twodim[i][j] = counter; counter++; cout << twodim[i][j] << ; } cout << endl; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 9 9

Περισσότερα για τα Strings Αντίθετα με τα strings σε άλλες γλώσσες προγραμματισμού (C, PASCAL) που είναι απλώς πίνακες χαρακτήρων, στη C++ τα strings είναι κανονικά αντικείμενα, που υλοποιούνται με την κλάση string (στο namespace std). Για λόγους συμβατότητας με τη C, υπάρχει πλήρης υποστήριξη των strings υπό την μορφή πινάκων χαρακτήρων (char * ή char []). 10 1

Περισσότερα για τα Strings Πέρα από την απευθείας χρήση τους (που είδαμε στην cout), μπορούμε να δημιουργήσουμε αντικείμενα string, με τον ίδιο τρόπο όπως και με κάθε άλλο αντικείμενο, δηλαδή στατικά ή δυναμικά (με τη χρήση της new). std::string str( Hello ); std::string str2 = there ; std::string *str3 = new std::string( Hello there ); cout << str << str2 << endl; cout << *str2 << endl; Η κλάση string παρέχει ορισμένες μεθόδους, οι οποίες είναι αρκετά χρήσιμες για επεξεργασία του κειμένου μέσα στο string. 11 1

Περισσότερα για τα Strings Όνομα int length() reference operator[](int index) int compare(string &str) int find(string &str) int find_last_of(string str) Λειτουργία Επιστρέφει το μήκος (σε χαρακτήρες) του string. Επιστρέφει ένα δείκτη αναφοράς (reference) στον χαρακτήρα που βρίσκεται στη θέση index του string. Συγκρίνει δύο αντικείμενα string. Αν το καλόν αντικείμενο (δηλ. αυτό που καλεί την compare()) είναι μικρότερο από το str, τότε επιστρέφει αρνητικό αποτέλεσμα, μηδέν αν έχουν το ίδιο περιεχόμενο, ή θετικό αποτέλεσμα αν το καλόν string είναι μεγαλύτερο από το str. Αναζητά το str μέσα στο καλόν αντικείμενο string. Αν βρεθεί επιστρέφει τη θέση της πρώτης εμφάνισής του, αλλιώς -1. Αναζητά το str μέσα στο καλόν αντικείμενο string. Αν βρεθεί επιστρέφει τη θέση της τελευταίας εμφάνισής του, αλλιώς -1. 12 1

string str1( Hello there, from C++! ); string str2 = One two three four ; string str3 = C++ strings are cool! ; string *str4 = new string(str3); int index, result; cout << str1 is << str1.length() << characters long. ); for (int i=0; i < str1.length(); i++) cout << str1[i] << ; cout << endl; if (str3 == *str4) cout << str3 == str4 << endl; else cout << str3!= str4 << endl; if (str3 == str2) cout << str3 == str2 << endl; else cout << str3!= str2 << endl; result = str3.compare(str1); if (result < 0) cout << str3 < str1 << endl; else if (result == 0) cout << str3 == str1 << endl; else cout << str3 > str1 << endl; index = str1.find( C++ ); if (index!= -1) else cout << 'C++' exists in str1 in position << index << endl; 1/2 2/2 cout << 'C++' does not exist in str1 << endl; index = str2.find( C++ ); if (index!= -1) cout << 'C++' exists in str2 in position << index << endl; else cout << 'C++' does not exist in str2 << endl; index = str3.find( C++ ); if (index!= -1) cout << 'C++' exists in str3 in position << index << endl; else cout << 'C++' does not exist in str3 << endl; 13 1

Αποτέλεσμα str1 is 22 characters long. H e l l o t h e r e, f r o m C + +! str3 == str4 str3!= str2 str3 < str1 'C++' exists in str1 in position 18 'C++' does not exist in str2 'C++' exists in str3 in position 0 14 1

Βιβλιογραφία 1. Εγχειρίδιο της C++, 2η Ελληνική έκδοση, Jesse Liberty, Γκιούρδας. 2. Μάθετε τη C++, 2η Ελληνική έκδοση, Jesse Liberty, Γκιούρδας. 3. Προγραμματισμός με τη γλώσσα C++ Μέρος Α, Αλεβίζος Θ., Έκδοση ΤΕΙ Καβάλας 4. C++ Αντικειμενοστραφής Προγραμματισμός Υπολογιστών Τομαράς Α.,, Εκδόσεις Νέων Τεχνολογιών. 5. Ανακαλύψτε τη γλώσσα C, J. Purdum, Εκδόσεις Δίαυλος. 6. Εισαγωγή στο Συστηματικό Προγραμματισμό και στη γλώσσα C++, Σ. Μπαλτζής, εκδόσεις πανεπιστημίου Ιωαννίνων. 7. C++ From the beginning, Jan Skansholm, Addison Wesley. 8. The design and analysis of computer algorithms, A.V. AHO, J.E. HOPCROFT, J.D. ULLMANN, Addison Wesley 1974. 9. Structure and Interpretation of Computer Programs, H. ABELSON, G.J. SUSSMAN, J. SUSSMAN, MIT Press, Mc Graw Hill Book Company, 1985 10. The art of computer programming, D.E. KNUTH, Addison-Wesley. 1

1 16 Σημείωμα Αναφοράς Copyright Τεχνολογικό Ίδρυμα Ηπείρου. Ιωάννης Τσούλος. Αντικειμενοστραφής Προγραμματισμός. Έκδοση: 1.0 Άρτα, 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: http://eclass.teiep.gr/courses/comp113/

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

1 Τέλος Ενότητας Επεξεργασία: Ευάγγελος Καρβούνης Άρτα, 2015

1 Τέλος Ενότητας Πίνακες