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

Slides:



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

Ενότητα 7 : Ισορροπία αγοράς Καραμάνης Κωνσταντίνος
1 Μικροοικονομική Ενότητα 9 : Παραγωγική διαδικασία Καραμάνης Κωνσταντίνος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Χρηματοοικονομική των Επιχειρήσεων, Ενότητα : Βέλτιστη Κεφαλαιακή Δομή, ΤΜΗΜΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΉΣ ΚΑΙ ΛΟΓΙΣΤΙΚΗΣ, ΤΕΙ ΗΠΕΙΡΟΥ – Ανοικτά Ακαδημαϊκά Μαθήματα.
1 Λειτουργικά Συστήματα Ενότητα 13 : Δρομολόγηση Διεργασιών 3/3 Δημήτριος Λιαροκάπης Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Αρχές Μάρκετινγκ Δημιουργία και Δέσμευση Αξίας Πελατών Στάδιο 3 ο Προετοιμασία ενός σχεδίου και προγράμματος ολοκληρωμένου Μάρκετινγκ Τριάρχη Ειρήνη.
1 Διεθνή Λογιστικά Πρότυπα Διανομή – Διακοπείσες Δραστηριότητες Χύτης Ευάγγελος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Αντικειμενοστραφής Προγραμματισμός Ενότητα 12 : Επαναληπτικές Ασκήσεις (3/3) Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Διεθνή Λογιστικά Πρότυπα Κατασκευαστικά Έργα Χύτης Ευάγγελος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Μακροοικονομική Ενότητα : Οικονομική μεγέθυνση (Μέρος Α) Καραμάνης Κωνσταντίνος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Ακοολογία Ενότητα 13 : Κοχλιακά εμφυτεύματα Ναυσικά Ζιάβρα Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Ενοποιημένες Χρηματοοικονομικές Καταστάσεις Δομή ομίλου Εταιρειών και προσδιορισμός του ποσοστού συμμετοχής Δρ. Χύτης Ευάγγελος Ελληνική Δημοκρατία Τεχνολογικό.
ΕΙΣΑΓΩΓΗ ΣΤΗ ΛΟΓΙΣΤΙΚΗ ΕΝΟΤΗΤΑ :Ισοζύγιο Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Εισαγωγή στη λογιστική, Ενότητα : Ημερολογιακές εγγραφές, ΤΜΗΜΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΉΣ ΚΑΙ ΛΟΓΙΣΤΙΚΗΣ ΤΕΙ ΗΠΕΙΡΟΥ – Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου.
1 Αντικειμενοστραφής Προγραμματισμός Ενότητα 12 : Επαναληπτικές Ασκήσεις (2/3) Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Διεθνή Λογιστικά Πρότυπα Παραδείγματα της λογιστικής του Leasing σύμφωνα με το ελληνικό θεσμικό πλαίσιο και τα ΔΛΠ Χύτης Ευάγγελος Ελληνική Δημοκρατία.
1 Αντικειμενοστραφής Προγραμματισμός Ενότητα 1 : Εισαγωγικές έννοιες και βασική δομή Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα.
1 Φωνολογική Ανάπτυξη και Διαταραχές Ενότητα 4 : Στάδια παραγωγής φωνημάτων Ζακοπούλου Βικτωρία Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Ενοποιημένες Χρηματοοικονομικές Καταστάσεις Λογιστικές Διαδικασίες για την κατάρτιση ΕΟΚ Δρ. Χύτης Ευάγγελος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό.
1 Οικονοµική Εργασίας και Εργασιακές Σχέσεις Εργατικά Σωματεία Καραµάνης Κώστας Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Οικονοµική Εργασίας και Εργασιακές Σχέσεις Εργατικά Σωματεία Καραµάνης Κώστας Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Τμήμα Τεχνολόγων Γεωπόνων Τίτλος Μαθήματος: ΚΑΛΛΩΠΙΣΤΙΚΑ ΔΕΝΤΡΑ ΚΑΙ ΘΑΜΝΟΙ Ενότητα 12: Οδηγίες δημιουργίας φυτολογίου Γρηγόριος Βάρρας Αν. Καθηγητής Άρτα,
ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ενότητα 12 : Η χρήση της MySQL στο Ηλεκτρονικό εμπόριο (ΙΙI) Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Εισαγωγή στη λογιστική, Ενότητα :Προσδιοριστικοί παράγοντες του λογιστικού αποτελέσματος, ΤΜΗΜΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΉΣ ΚΑΙ ΛΟΓΙΣΤΙΚΗΣ, ΤΕΙ ΗΠΕΙΡΟΥ – Ανοικτά.
Εισαγωγή στη λογιστική, Ενότητα :Μεταβολές της οικονομικής κατάστασης, ΤΜΗΜΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΉΣ ΚΑΙ ΛΟΓΙΣΤΙΚΗΣ, ΤΕΙ ΗΠΕΙΡΟΥ – Ανοικτά Ακαδημαϊκά Μαθήματα.
Προγραμματισμός κινητών συσκευών
Ενότητα 7 : Χρήση Πινάκων στο Ηλεκτρονικό εμπόριο (I) Ιωάννης Τσούλος
Αντικειμενοστραφής Προγραμματισμός
Αντικειμενοστραφής Προγραμματισμός
Eιδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων
Προγραμματισμός κινητών συσκευών
Προγραμματισμός Διαδικτύου
Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου
Προγραμματισμός κινητών συσκευών
Επικοινωνιακός Προγραμματισμός Ι
Λειτουργικά Συστήματα
Αντικειμενοστραφής Προγραμματισμός
Υπολογιστική Γεωμετρία και Εφαρμογές στις ΒΧΔ
Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι
Προγραμματισμός Διαδικτύου
Λειτουργικά Συστήματα
Προγραμματισμός Διαδικτύου
Τεχνολογία και Προγραμματισμός Υπολογιστών
Αντικειμενοστραφής Προγραμματισμός
Διεθνή Λογιστικά Πρότυπα
Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου
Διεθνή Λογιστικά Πρότυπα
Ενότητα 1 : Τονική ακοομετρία - Είδη βαρηκοΐας Ναυσικά Ζιάβρα
Ενότητα 13 Αξιολόγηση μαθήματος και διδάσκοντος από την εφαρμογή της Μονάδας Ολικής Ποιότητας (ΜΟΔΙΠ) του ΤΕΙ Αθήνας Αξιολόγηση του μαθήματος Αξιολόγηση.
Άσκηση 9 (1 από 2) Ανακαλύψτε στο χάρτη σας μερικά χαρτογραφικά αντικείμενα που να ανήκουν στις παρακάτω κατηγορίες : φυσικά, τεχνητές κατασκευές, αφηρημένα.
Ενότητα 10 : Κατασκευή ΝΠΑ Αλέξανδρος Τζάλλας
Ενότητα 4 : Τελεστές της γλώσσας PHP Ιωάννης Τσούλος
Ενότητα 2 : Το σύστημα βάσεων δεδομένων MySQL (II) Ιωάννης Τσούλος
Τοπολογικές σχέσεις 1/3 Βρείτε και περιγράψτε τις τοπολογικές σχέσεις σύμφωνα με τους (Pantazis, Donnay 1996) για τα παρακάτω γεω-γραφικά αντικείμενα:
Προγραμματισμός κινητών συσκευών
Επικοινωνιακός Προγραμματισμός Ι
Διεθνή Λογιστικά Πρότυπα
Γενική και Μαθηματική Χαρτογραφία (Ε)
Προγραμματισμός κινητών συσκευών
Λιθογραφία – Όφσετ (Θ) Ενότητα 8.2: Εκτυπωτική Διαδικασία Μηχανής
Διεθνή Λογιστικά Πρότυπα
Γεωργική Χημεία Ενότητα 6: Οξέα, βάσεις, pH, γινόμενο διαλυτότητας
Ειδικά θέματα βάσεων χωρικών δεδομένων και θεωρία συστημάτων -E
Γενική και Μαθηματική Χαρτογραφία (Ε)
ΕΙΣΑΓΩΓΗ ΣΤΗ ΛΟΓΙΣΤΙΚΗ
Προγραμματισμός Διαδικτύου
Προγραμματισμός κινητών συσκευών
Ενότητα 1: ……………….. Όνομα Επώνυμο Τμήμα __
Προγραμματισμός κινητών συσκευών
Επικοινωνιακός Προγραμματισμός Ι
Μεταγράφημα παρουσίασης:

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

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

3 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 3

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

5 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Εισαγωγικά Πρότυπα (templates): αποτελεί τη βάση της STL, καθώς επιτρέπουν τη χρήση πολυμορφισμού κατά τη μεταγλώττιση (compile-time) αντί κατά την εκτέλεση (runtime), γεγονός που αυξάνει κατά πολύ την απόδοσή τους, αφού ο μεταγλωττιστής μπορεί να πραγματοποιήσει αρκετές βελτιστοποιήσεις κατά την μεταγλώττιση. Πρότυπα μπορούν να οριστούν για συναρτήσεις ή για κλάσεις. Η λειτουργία είναι ή ίδια, με τη διαφορά ότι αν οριστεί μια κλάση πρότυπο, η προτυποποίηση ισχύει για κάθε μέθοδο/συνάρτηση της κλάσης. 5

6 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Εισαγωγικά Σκοπός προτύπων – Αν σε κάποιο πρόγραμμα χρειαζόμαστε την ταξινόμηση δύο διαφορετικών συνόλων δεδομένων (π.χ. ένα πίνακα από int και ένα πίνακα από string) θα χρειαστούμε δύο συναρτήσεις που θα πραγματοποιήσουν την ταξινόμηση στους πίνακες. – Κάτι τέτοιο είναι περιττό, επιρρεπές σε λάθη και αιτία αύξησης του μεγέθους του προγράμματος. – Αν το πρόγραμμα εξελιχθεί να υποστηρίζει και άλλους τύπους δεδομένων, ακόμη και κλάσεις, θα χρειαστούμε μια συνάρτηση ταξινόμησης για κάθε τύπο! Οπωσδήποτε πρέπει να υπάρχει μια καλύτερη λύση. 6

7 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Εισαγωγικά Λύση – Nα οριστεί ένα πλαίσιο, ή πρότυπο, το οποίο θα περιγράφει τον αλγόριθμο, χρησιμοποιώντας μια αφηρημένη κλάση, ο τύπος της οποίας δε μας ενδιαφέρει παρά μόνο ορισμένα χαρακτηριστικά που είναι απαραίτητα. – Π.χ. για τη ταξινόμηση χρειαζόμαστε απλώς μια μέθοδο σύγκρισης ανάμεσα σε δύο τυχαία αντικείμενα. Η δήλωση ενός τέτοιου πλαισίου γίνεται με την λέξη-κλειδί template ακολουθούμενη από το όνομα της αφηρημένης κλάσης κλεισμένης σε <>. 7

8 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Παράδειγμα κλάσης λίστας αντικειμένων 8 #include using namespace std; // Ορίζουμε την κλάση list ως template που θα χρησιμοποιεί την αφηρημένη κλάση // data_t (δεν υπάρχει πραγματικά, απλώς // υποδηλώνει μια οποιαδήποτε κλάση). template class list { // το item θα είναι κάθε φορά τύπου data_t data_t item; // το next είναι δείκτης στο επόμενο αντικείμενο // της λίστας list *next; public: // ο δημιουργός (δέχεται ένα αντικείμενο data_t) list(data_t d); // για να προσθέσουμε ένα αντικείμενο στη λίστα χρησιμοποιούμε την add() void add(list *node) { node->next = this; return; } // η get_next() επιστρέφει το επόμενο αντικείμενο στη λίστα list *get_next() { return next; } // η get_data επιστρέφει το αντικείμενο item. Ο τύπος θα είναι πάντα σωστός (π.χ. // θα επιστρέφει char αν η data_t είναι char, string, κλπ. data_t get_data() { return item; } }; 1/3

9 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Παράδειγμα κλάσης λίστας αντικειμένων 9 // Στον ορισμό της κλάσης, απλώς δηλώσαμε τον δημιουργό // Με τον παρακάτω τρόπο τον ορίζουμε κιόλας. Σημειώστε // τη χρήση της λέξης template και των brackets // στο όνομα της κλάσης template list ::list(data_t d) { // ορισμός του item στην παράμετρό d item = d; // δεν έχουμε επόμενο αντικείμενο (πρώτο στοιχείο next = 0; } int main() { // Ορισμός ενός αρχικού αντικειμένου list. // Το ρόλο της αφηρημένης κλάσης data_t παίρνει ο τύπος char list start('a'); // Δηλώνουμε και δύο δείκτες (pointers) της ίδιας κλάσης list *p, *last; // θα χρησιμοποιήσουμε τον δείκτη last για να μετακινούμαστε // στη λίστα, όσο μεγαλώνει last = &start; for (int i=1; i < 26; i++) { // δημιούργησε ένα καινούριο κόμβο της λίστας με // αντικείμενο το χαρακτήρα 'a' + i. // Η δημιουργία είναι δυναμική (προσέξτε τη χρήση της new. p = new list ('a' +i); // πρόσθεσε το νέο αντικείμενο στον προηγούμενο κόμβο. p->add(last); // ο προηγούμενος κόμβος δεν είναι πλέον τελευταίος. // όρισε τον τρέχοντα κόμβο να φαίνεται τελευταίος. last = p; } 2/3

1010 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Παράδειγμα κλάσης λίστας αντικειμένων 10 // ξεκίνα από την αρχή p = &start; while (p) { // όσο έχουμε κόμβους στη λίστα (δηλαδή όσο η get_next() // θα επιστρέφει μη μηδενικό αποτέλεσμα, τύπωσε το αντικείμενο // που περιέχεται στον κόμβο. cout get_data() << ", "; // προχώρα στον επόμενο κόμβο. p = p->get_next(); } cout << endl; return 0; } 3/3 Το πρόγραμμα αυτό θα τυπώσει το εξής αποτέλεσμα. a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z,

1 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Standard Template Library (STL) Βιβλιοθήκη STL: Σύνολο από έτοιμες κλάσεις και συναρτήσεις γενικής χρήσης που γλυτώνουν σημαντικό χρόνο από το προγραμματιστή καθώς προσφέρουν έναν εύκολο τρόπο να αντιμετωπιστούν τα περισσότερα θέματα γενικής φύσεως σε ένα πρόγραμμα. Έτσι ο προγραμματιστής έχει πλέον τη δυνατότητα να ασχοληθεί με την ουσία του προβλήματός του, παρά με το ποια ρουτίνα θα χρησιμοποιήσει για να ταξινομήσει ένα πίνακα από strings. Aποτελείται από τρεις κατηγορίες κλάσεων και μεθόδων: τους containers, τους αλγόριθμους και τους iterators. 11

1212 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Οι κλάσεις containers Containers: Αντικείμενα που χρησιμοποιούνται ως “δοχεία” για άλλα αντικείμενα (οποιουδήποτε είδους) και προσφέρουν συγκεκριμένα χαρακτηριστικά όσον αφορά το τρόπο πρόσβασης των αντικειμένων, τον τρόπο αποθήκευσης των αντικειμένων στη μνήμη, την αντιστοίχιση αντικειμένων σε “κλειδιά” (σχεσιακοί containers), κλπ. Βασικοί containers: vector, list, queue, stack και set, ενώ ορίζονται και οισχεσιακοί containers οι map, multimap. Οι containers επειδή είναι βασισμένοι στα πρότυπα, μπορούν να περιέχουν αντικείμενα οποιασδήποτε κλάσης. 12

1313 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Οι μέθοδοι algorithms Οι containers από μόνοι τους δε θα ήταν ιδιαίτερα χρήσιμοι, όχι περισσότερο από την ξεχωριστή υλοποίηση κάποιου προγραμματιστή. Αυτό που κάνει την STL να αποδεικνύεται αξεπέραστο εργαλείο είναι ο συνδυασμός των containers με τους αλγόριθμους (algorithms). Οι αλγόριθμοι είναι απλώς μέθοδοι που έχουν σχεδιαστεί να λειτουργούν πάνω στα αντικείμενα που περιέχονται στους containers, χωρίς όμως να απαιτούν κάποιο συγκεκριμένο τύπο, μόνο κάποια γενικά χαρακτηριστικά. 13

1414 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Οι μέθοδοι algorithms Π.χ. για να ταξινομήσουμε τα αντικείμενα ενός container, δεν είναι ανάγκη να απαιτήσουμε ο container να περιέχει string, απλώς να ορίζεται η πράξη της σύγκρισης για τα αντικείμενα αυτά (δηλαδή οι τελεστές ). Η STL προσφέρει έτοιμους αλγόριθμους για πολλές διαδικασίες, όπως ταξινόμηση (sort, stable_sort), αντιγραφή αντικειμένων από τον container με ή χωρίς συνθήκη που πρέπει να πληρείται (copy, copy_backward, unique_copy, unique_copy_if), ορισμός κάποιας τιμής στα αντικείμενα (fill, fill_n), εύρεση αντικειμένων στο container (find, find_end, find_first_of, find_if), καταμέτρηση αντικειμένων με ή χωρίς συνθήκη (count, count_if), εκτέλεση κάποιας ρουτίνας για συγκεκριμένα αντικείμενα. 14

1515 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Οι μέθοδοι algorithms Αλγόριθμοι διαδικασιών στην STL: ταξινόμηση (sort, stable_sort), αντιγραφή αντικειμένων από τον container με ή χωρίς συνθήκη που πρέπει να πληρείται (copy, copy_backward, unique_copy, unique_copy_if), ορισμός κάποιας τιμής στα αντικείμενα (fill, fill_n), εύρεση αντικειμένων στο container (find, find_end, find_first_of, find_if), καταμέτρηση αντικειμένων με ή χωρίς συνθήκη (count, count_if), εκτέλεση κάποιας ρουτίνας για συγκεκριμένα αντικείμενα (for_each, transform), πράξεις συνόλων (set_union, set_intersection), εύρεση μεγίστων και ελαχίστων (max_element, min_element), διαγραφή ή αντικατάσταση αντικειμένων στο container με ή χωρίς συνθήκη και με ή χωρίς αντιγραφή σε νέο container (remove, remove_if, remove_copy, remove_copy_if, replace, replace_if, replace_copy, replace_copy_if), κτλ. 15

1616 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Οι δείκτες iterators Κάθε αλγόριθμος δέχεται το αρχικό και το τελικό αντικείμενο του container στο οποίο θα πραγματοποιηθεί η εργασία ως παραμέτρους. Τα αντικείμενα αυτά δίνονται ως iterators, το τελικό στοιχείο της STL για να ολοκληρωθεί ως εργαλείο. Πρακτικά οι iterators είναι pointers αλλά με κάποια ιδιαίτερη συμπεριφορά, π.χ. υπάρχουν forward και backward iterators για μετακίνηση στα αντικείμενα ενός container μόνο προς τη μία κατεύθυνση, input και output iterators για χρήση σε streams κλπ. 16

1717 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Βιβλιογραφία 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 Structure and Interpretation of Computer Programs, H. ABELSON, G.J. SUSSMAN, J. SUSSMAN, MIT Press, Mc Graw Hill Book Company, The art of computer programming, D.E. KNUTH, Addison-Wesley.

1818 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου ΔΙΑΤΑΡΑΧΕΣ ΦΩΝΗΣ, Ενότητα 0, ΤΜΗΜΑ ΛΟΓΟΘΕΡΑΠΕΙΑΣ, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου 18 Σημείωμα Αναφοράς Copyright Τεχνολογικό Ίδρυμα Ηπείρου. Ιωάννης Τσούλος. Αντικειμενοστραφής Προγραμματισμός. Έκδοση: 1.0 Άρτα, Διαθέσιμο από τη δικτυακή διεύθυνση:

1919 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 4.0 Διεθνές [1] ή μεταγενέστερη. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, Διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.

2020 Αντικειμενοστραφής Προγραμματισμός – Τα πρότυπα (templates), Τμήμα Μηχανικών Πληροφορικής, ΤΕΙ ΗΠΕΙΡΟΥ - Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τέλος Ενότητας Επεξεργασία: Ευάγγελος Καρβούνης Άρτα, 2015

2121 Τέλος Ενότητας Τα πρότυπα (templates)