Τεχνολογίες Υλοποίησης Αλγορίθµων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Τεχνολογίες Υλοποίησης Αλγορίθµων"

Transcript

1 Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών Εισαγωγή στην C / 47

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

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

4 Περιεχόµενα Εννοιες Αντικειµενοστρεφούς Προγραµµατισµού Κλάσεις & Σχεδιασµός Βασισµένος σε Αντικείµενα (Classes & Object-Based Design) Κληρονοµικότητα & Αντικειµενοστρεφής Σχεδιασµός (Inheritance & Object-Oriented Design) Εικονικές Συναρτήσεις (Virtual Functions) Φίλες Συναρτήσεις και Κλάσεις (Friends) Γενικευµένος Σχεδιασµός χρησιµοποιώντας Αρχέτυπα (Generic Design using Templates) 4 / 47

5 Αντικειµενοστρεφής Προγραµµατισµός Αντικειµενοστρεφής vs. οµηµένος/ ιαδικασιακός Προγραµµατισµός Οµοιότητα: ανάλυση ενός σύνθετου συστήµατος (µεγάλο έργο) σε απλούστερα υποσυστήµατα (υποέργα). Θεµελιώδης διαφορά: Πώς γίνεται αυτή η ανάλυση. 5 / 47

6 Αντικειµενοστρεφής Vs ιαδικαστικός ιαδικασιακή ανάλυση: πρώτα το έργο αναλύεται σε αρθρώµατα (modules) κατόπιν ϑα αναζητηθούν οι απαιτούµενες δοµές δεδοµένων Αντικειµενοστρεφής ανάλυση: αντιµετωπίζει το λογισµικό σαν ένα σύνολο καλώς ορισµένων αντικειµένων τα οποία µοντελοποιούν τις οντότητες του έργου αυτά τα αντικείµενα αλληλεπιδρούν µεταξύ τους για να αποτελέσουν ένα σύστηµα λογισµικού η διαδικασιακή ανάλυση ϑα αντιµετωπισθεί αφού το έργο έχει αναλυθεί σε αντικείµενα 6 / 47

7 Αντικείµενο Αντικείµενο: Οντότητα η οποία έχει δοµή και τοπική κατάσταση. Ορίζει λειτουργίες που µπορούν να προσπελάσουν ή να αλλάξουν αυτή την κατάσταση. Αντικειµενοστρεφής προγραµµατισµός (ΑΠ): είναι µια µέθοδος υλοποίησης στην οποία Τα αντικείµενα είναι οι ϑεµελιώδεις δοµικές µονάδες. Κάθε αντικείµενο είναι το στιγµιότυπο ενός τύπου (ή κλάσης). Οι κλάσεις σχετίζονται µεταξύ τους µέσω σχέσεων κληρονοµικότητας. Αντικειµενοστρεφής γλώσσα: (1) Υποστηρίζει αντικείµενα. (2) Απαιτεί τα αντικείµενα να ανήκουν σε κλάσεις (άµεσα ή έµµεσα). (3) Υποστηρίζει την κληρονοµικότητα. 7 / 47

8 Ενθυλάκωση (Data Encapsulation) ή Απόκρυψη (Information hidding) απόκρυψη των λεπτοµερειών υλοποίησης ενός αντικειµένου δεδοµένων από τον έξω κόσµο. Αφαίρεση εδοµένων (Data Abstraction): διαχωρισµός µεταξύ των προδιαγραφών ενός αντικειµένου δεδοµένων και της υλοποίησής του. 8 / 47

9 Τύπος εδοµένων (Data Type) Συλλογή αντικειµένων µαζί µε ένα σύνολο λειτουργιών πάνω σε αυτά τα αντικείµενα. Αφηρηµένος Τύπος εδοµένων ΑΤ (Abstract Data Type): Τύπος εδοµένων οργανωµένος κατά τέτοιο τρόπο έτσι ώστε οι προδιαγραφές των αντικειµένων και οι προδιαγραφές των λειτουργιών των αντικειµένων να αποµονώνονται από την αναπαράσταση των αντικειµένων και την υλοποίηση των λειτουργιών. 9 / 47

10 Κληρονοµικότητα (Inheritance) Μηχανισµός που επιτρέπει την επέκταση της λειτουργικότητας ενός αντικειµένου. Επιτρέπει τη δηµιουργία νέων τύπων µε περιορισµένες ή πιο εκτενείς ιδιότητες σε σχέση µε τον αρχικό τύπο. Ο αρχικός τύπος ονοµάζεται τύπος ϐάσης (base type/object/class) ενώ ο νέος ονοµάζεται παράγωγος (derived). Πολυµορφισµός: Η δυνατότητα χειρισµού διαφορετικών οντοτήτων µε οµοιόµορφο τρόπο. Στην περίπτωση του αντικειµενοστρεφούς προγραγµµατισµού, η δυνατότητα αντικειµένων διαφορετικών κλάσεων (που έχουν πιθανά µεταξύ τους σχέσεις κληρονοµικότητας) να αντιδρούν διαφορετικά στην ίδια λειτουργία. Οταν κάποιες λειτουργίες εφαρµόζονται σε έναν πολυµορφικό τύπο, εκτελείται αυτόµατα εκείνη η λειτουργία η οποία είναι η κατάλληλη για τον συγκεκριµένο τύπο. Στόχος Α-Π που επιτυγχάνεται: επαναχρησιµοποίηση λογισµικού (software reusability). 10 / 47

11 Κλάσεις Κλάση: Μηχανισµός της C++ για τον ορισµό νέων τύπων δεδοµένων. Υποστηρίζει αφαίρεση δεδοµένων, ενθυλάκωση δεδοµένων και κληρονοµικότητα. Παράδειγµα µελέτης: υλοποίηση ενός ΑΤ για ακέραιους πίνακες σε δύο ϕάσεις: (α) Προδιαγραφές και απαιτούµενες λειτουργίες. (ϐ) Αντικειµενοστρεφής Σχεδιασµός. 11 / 47

12 Σχεδιασµός ϐασισµένος σε αντικείµενα Ενα αρχικό σύνολο υποστηριζόµενων λειτουργιών: 1 Πραγµατικό µέγεθος πίνακα. 2 Καταχώρηση (ανάθεση) ενός πίνακα σε άλλον και σύγκριση πινάκων. 3 Ερωτήσεις που αφορούν συγκεκριµένες τιµές στοιχείων: ελάχιστο, µέγιστο, εύρεση. 4 υνατότητα ταξινόµησης των στοιχείων του πίνακα. Επίσης, πρέπει να υποστηρίζονται και οι λειτουργίες του συνήθη τύπου πίνακα: 5 Αρχικός προσδιορισµός µεγέθους του πίνακα (από τον χρήστη). 6 Αρχικοποίηση του πίνακα µε ένα σύνολο τιµών. 7 Αριθµοδείκτης. 8 Ελεγχος ορθότητας του αριθµοδείκτη. 12 / 47

13 Γενική µορφή κλάσης class IntArray public: // public methods (member functions) and fields // comprises the public interface of the class // and can be accessed from any other function // of the program private: // private methods (member functions) and fields // can be accessed only by the member // functions of the class // private implementation and object state storage }; Χρήση κλάσης για ορισµό αντικειµένων: Οι τύποι/αντικείµενα που ορίζονται από τον προγραµµατιστή χρησιµοποιούνται όπως και οι ενσωµατωµένοι τύποι: // a single IntArray class object IntArray myarray; // a pointer to a single IntArray class object IntArray * pmyarray = new IntArray; 13 / 47

14 Συναρτήσεις µέλη (Methods) class IntArray public: int size() const; // member function which does // not modify the class object IntArray& operator=(const IntArray &); bool operator==(const IntArray &) const; bool operator!=(const IntArray &) const; int min() const; int max() const; int find(int) const; void sort(); private: // the private implementation }; 14 / 47

15 Κλήση συνάρτησης µέλους Τελεστής προσπέλασης. (τελεία): χρησιµοποιείται από αντικείµενα της κλάσης. IntArray myarray; int min_val = myarray.min(); Τελεστής προσπέλασης -> ( βέλος ): χρησιµοποιείται από δείκτες σε αντικείµενα της κλάσης. IntArray *pmyarray = &myarray; int max_val = pmyarray->max(); Εφαρµογή Τελεστών Γίνεται µε τον ίδιο τρόπο όπως και στους ενσωµατωµένους τύπους. IntArray myarray1, myarray2;... myarray1 = myarray2; // The compiler translates this to // myarray1.operator=(myarray2);... if (myarray1 == myarray2) // The compiler translates this to // myarray1.operator==(myarray2) /* do something */ } 15 / 47

16 Μεταβλητές µέλη (data members) κλάσης IntArray Το µέγεθος του πίνακα όπως προσδιορίζεται από τον χρήστη. Κατανοµή και αποθήκευση του πίνακα µέλος δεδοµένων τύπου δείκτη για αποθήκευση της διεύθυνσης που επιστρέφει ο τελεστής new. class IntArray public: //... int size() const return asize; } }; private: int asize; int * ia; Παρατήρηση: Μια συνάρτηση µέλους που ορίζεται µέσα σε ορισµό κλάσης ϑεωρείται αυτόµατα ως inline. 16 / 47

17 Αρχικοποίηση αντικειµένων Η C++παρέχει έναν αυτόµατο µηχανισµό για κλάσεις ορισµένες από τον χρήστη. Συνάρτηση κατασκευής (constructor): Ειδική συνάρτηση-µέλος που χρησιµοποιείται για αρχικοποίηση. Ορίζεται από τον προγραµµατιστή. Εχει το ίδιο όνοµα µε αυτό της κλάσης. εν έχει τύπο επιστροφής τιµής. Μπορεί να ορισθεί πολλές ϕορές (µέσω υπερφόρτωσης συναρτήσεων). class IntArray public: IntArray(int sz = DefaultArraySize); IntArray(const int * ar, int sz); IntArray(const IntArray & other); private: static const int DefaultArraySize; //... }; const int IntArray::DefaultArraySize = 12; 17 / 47

18 Η προεπιλεγµένη συνάρτηση κατασκευής IntArray(int sz = DefaultArraySize); // initialises an object of size DefaultArraySize IntArray myarray1; // passes the argument 1000 to the constructor IntArray myarray2(1000); Μια αρχική υλοποίηση της προεπιλεγµένης συνάρτησης κατασκευής // :: class scope operator IntArray::IntArray(int sz) // set the data members asize = sz; ia = new int[asize]; } // initialise the memory for (int i=0; i < asize; ++i) ia[i] = 0; 18 / 47

19 Η δεύτερη συνάρτηση κατασκευής IntArray(const int * array, int sz); // Initialises a new IntArray class object // with a built-in integer array int ia[10] = 0,1,2,3,4,5,6,7,8,9}; IntArray myarray3(ia,10); Υλοποίηση: IntArray::IntArray(int * array, int sz) // set the data members asize = sz; ia = new int[asize]; } // copy the data members for (int i=0; ix < asize; ++i) ia[ix] = array[ix]; 19 / 47

20 Η συνάρτηση κατασκευής αντιγράφου (copy constructor) IntArray(const IntArray & ia); ιαχειρίζεται την αρχικοποίηση ενός αντικειµένου της κλάσης IntArray µε κάποιο άλλο. Ο copy constructor καλείται αυτόµατα: 1 Οταν δηλώνεται µία µεταβλητή και αρχικοποιείται µε την τιµή µιας άλλης. 2 Κατά τη µεταβίβαση ορισµάτων σε συνάρτηση κατ αξία. 3 Κατά την επιστροφή τιµής από συνάρτηση κατ αξία. IntArray myarray4; // equivalent initialisations IntArray A = myarray4; IntArray B(myarray4); Υλοποίηση: // copy constructor IntArray::IntArray(const IntArray & other) asize = other.asize; ia = new int[asize]; for (int i=0; i < asize; ++i) ia[i] = other.ia[i]; } Παρατήρηση: Αν δεν ορίζεται, τότε εκτελείται η προεπιλεγµένη αρχικοποίηση των µελών δεδοµένων (default memberwise initialization). 20 / 47

21 Παράδειγµα µε copy constructor Και οι τρεις συναρτήσεις κατασκευής υλοποιούνται µε παρόµοιο τρόπο. Υπάρχει τρόπος να αποφύγουµε την µη επιθυµητή αναπαραγωγή του ίδιου κώδικα; class IntArray public: //... private: void init(const int * array, int sz); }; void IntArray::init(const int * array, int sz) asize = (sz < 1)? 1 : sz; ia = new int[asize]; } for (int i=0; i < asize; ++i) ia[i] = (!array)? 0 : array[i]; Οι τρεις συναρτήσεις κατασκευής µπορούν να ξαναγραφούν ως εξής: IntArray::IntArray(int sz = DefaultArraySize) init(0, sz); } IntArray::IntArray(const int * ar, int sz) init(ar, sz); } IntArray::IntArray(const IntArray & other) init(other.ia, other.asize); } 21 / 47

22 Συνάρτηση Κατάργησης (destructor) Ειδική συνάρτηση-µέλος που καλείται αυτόµατα όταν τελειώνει η εµβέλεια του αντικειµένου στο πρόγραµµα. Ορίζεται από τον χρήστη. Εχει σαν όνοµα το σύµβολο ακολουθούµενο από το όνοµα της κλάσης. εν έχει τύπο επιστροφής τιµής. class IntArray public: // constructors IntArray(int sz = DefaultArraySize) init(0, sz); } IntArray(const int * ar, int sz) init(ar, sz); } IntArray(const IntArray & other) init(other.ia, other.asize); } // destructor IntArray() delete[] ia; } //... private: void init(const int * array, int sz); //... }; 22 / 47

23 Αριθµοδείκτης Εξειδίκευση του τελεστή αϱιθµοδείκτη ([]) σε σχέση µε τη user-defined κλάση. Ο τελεστής επιστρέφει το συγκεκριµένο στοιχείο µε αναφορά ώστε να είναι δυνατή η τροποποίησή του. Για να είναι δυνατή η κλήση του και σε const στιγµιότυπα του IntArray απαιτείται και µία εκδοχή που ϑα επιστρέφει const αναφορά (µόνο ανάγνωση). Επιτρέπεται η ύπαρξη δύο µεθόδων µε ίδιο όνοµα και ορίσµατα αν η δεύτερη είναι const. #include <cassert> int& IntArray::operator[](int ix) // preprocessor macro to assert a precondition // if false, then a diagnostic message is printed // and the program terminates assert(ix>=0 && ix<size); return _ia[ix]; } // version for const objects const int& IntArray::operator[](int ix) const assert(ix>=0 && ix<size); return _ia[ix]; } 23 / 47

24 Αριθµοδείκτης Καταχώρηση (ανάθεση τιµής) πίνακα: άλλη µια περίπτωση υπερφόρτωσης τελεστή Ο τελεστής ελέγχει µια πιθανή ανάθεση του στιγµιότυπου στον εαυτό του και επιστρέφει το ίδιο το αντικείµενο για να επιτρέπονται αλυσιδωτές αναθέσεις. IntArray& IntArray::operator=(const IntArray & other) if ( this == &other ) // check for assignment to self return *this; } delete[] ia; init(other.ia, other.asize); return *this; // returns the invoking object itself // enables chain assignments Ο έµµεσος δείκτης this Παράδειγµα είκτης που περιέχεται σε κάθε µέλος (συνάρτηση, τελεστή) κλάσης. Αναφέρεται στο αντικείµενο (το δεικτοδοτεί) για το οποίο καλείται η συνάρτηση-µέλος, ή ο τελεστής-µέλος. IntArray myarray1, myarray2; // the returned object *this refers to myarray1 (myarray1 = myarray2 = myarray2).size(); 24 / 47

25 Αντικειµενοστρεφής Σχεδιασµός Η µέχρι τώρα υλοποίηση του IntArray: (1) Υποστηρίζει έλεγχο των ορίων του αριθµοδείκτη. (2) εν υποστηρίζει ταξινοµηµένους πίνακες ιαφορετικές κατηγορίες χρηστών µπορεί να έχουν αντιφατικές απαιτήσεις: π.χ. µία κατηγορία να ϐρίσκει το (2) απολύτως απαραίτητο και ταυτόχρονα δεν ϑέλει την επιβάρυνση που συνεπάγεται το (1). Μια άλλη κατηγορία χρηστών πιστεύει ακριβώς το αντίθετο. Πώς µπορεί η υλοποίησή µας να υποστηρίζει τις διαφορετικές απαιτήσεις διαφόρων χρηστών που ϑέλουν να την χρησιµοποιήσουν; 25 / 47

26 Μια πρώτη προσπάθεια Ανάπτυξη τριών διαφορετικών υλοποιήσεων της κλάσης, αντιγράφοντας το µεγαλύτερο µέρος του κώδικα και τροποποιώντας τον κατάλληλα για να υποστηρίζει ταξινοµηµένους πίνακες. // Unsorted, without range-checking class IntArray... }; // Unsorted, with range-checking class IntArrayRC... }; // Sorted, without range-checking class IntSortedArray... }; 26 / 47

27 Ποια είναι τα µειονεκτήµατα αυτής της λύσης; 1 ιατήρηση τριών υλοποιήσεων πινάκων που περιέχουν ταυτόσηµο το µεγαλύτερο µέρος του κώδικα. Προτίµηση: ένα µοναδικό αντίγραφο του κοινού κώδικα να διαµοιράζεται από τις υπάρχουσες (και µελλοντικές) κλάσεις. 2 Συγγραφή ξεχωριστών συναρτήσεων για οποιαδήποτε λειτουργία πάνω σε αυτούς τους πίνακες. Π.χ.: void process_array(intarray &); void process_array(intarrayrc &); void process_array(intsortedarray &); Προτίµηση: µια µοναδική συνάρτηση που να δέχεται σαν όρισµα τις υπάρχουσες (και µελλοντικές) κλάσεις. 27 / 47

28 Κληρονοµικότητα Ο αντικειµενοστρεφής προγραµµατισµός (στην C++) παρέχει τις εξής λύσεις: 1 Κληρονοµικότητα: όταν µια νέα κλάση (IntArrayRC) κληρονοµεί από µια άλλη, που ονοµάζεται συνήθως κλάση-ϐάσης (IntArray), έχει προσπέλαση στα µέλη δεδοµένων και στις συναρτήσεις-µέλη αυτής της κλάσης-ϐάσης χωρίς να απαιτείται αναπαραγωγή ταυτόσηµου κώδικα. Η νέα κλάση χρειάζεται µόνο να παρέχει εκείνα τα µέλη δεδοµένων και εκείνες τις συναρτήσεις-µέλη που είναι αναγκαίες για την υλοποίηση των επιπρόσθετων λειτουργιών που προσφέρει. 2 Μηχανισµός Εικονικών Συναρτήσεων ( Virtual functions): χειϱίϲεται κλήσεις συναρτήσεων-µελών που συµπεριφέρονται διαφορετικά, εξαρτώµενες από τον πραγµατικό τύπο του αντικειµένου που καλείται στην ιεραρχία κλάσεων/υποκλάσεων (ή τύπων/υποτύπων). 28 / 47

29 Παράδειγµα µε Κληρονοµικότητα Μία υποκλάση (subclass) έχει την ίδια διασύνδεση (interface) µε την κλάση-ϐάσης, η οποία επιτρέπει στην κλάση-ϐάσης και στην υποκλάση να χρησιµοποιούνται εναλλακτικά µέσα σε ένα πρόγραµµα. #include "IntArray.h" void swap(intarray & ia, int i, int j) int tmp = ia[i]; ia[i] = ia[j]; ia[j] = tmp; }... IntArray IA; IntArrayRC IARC; IntSortedArray IAS; string s("non-intarray");... swap(ia,0,10); // ok, IA is of type IntArray swap(iarc,0,10); // ok, IARC is a subtype of IntArray swap(ias,0,10); // ok, IAS is a subtype of IntArray swap(s,0,10); // error, string is not a subtype... // of IntArray 29 / 47

30 Οµως,... Ο τελεστής αριθµοδείκτη που καλείται από την swap πρέπει να αλλάζει δυναµικά σε κάθε κλήση και πρέπει να καθορίζεται από τον πραγµατικό τύπο του πίνακα του οποίου τα στοιχεία ανταλλάσονται. Αυτό επιτυγχάνεται µε τη δήλωση αυτού του τελεστή ως εικονικού ( virtual ). virtual int& operator[](int ix) const; Το ίδιο µπορεί να γίνει και µε κάθε άλλη συνάρτηση-µέλος η οποία είναι εξαρτώµενη από τύπους (type-dependent), π.χ. min(), max(), find(). 30 / 47

31 Πώς προετοιµάζουµε µια κλάση για κληρονοµικότητα; Οι συντακτικές αλλαγές είναι ελάχιστες: ιαχωρισµός συναρτήσεων και µεταβλητών της κλάσης-ϐάσης από αυτών που µπορεί να διαφοροποιούνται στις παράγωγες κλάσεις. Προσδιορισµός συναρτήσεων που πρέπει να δηλωθούν ως εικονικές. Σηµαντική αλλαγή, ο σχεδιασµός της κλάσης-ϐάσης: ηµιουργία ενός προστατευµένου (protected) τµήµατος για εκείνα τα µέλη δεδοµένων και συναρτήσεις-µέλη τα οποία είναι µη διαθέσιµα στο γενικό πρόγραµµα, αλλά γίνονται διαθέσιµα στις παράγωγες κλάσεις. Οτιδήποτε συµπεριληφθεί µέσα στο ιδιωτικό (private) τµήµα είναι διαθέσιµο µόνο στην κλάση-ϐάσης και σε καµία παράγωγη κλάση. Προσδιορισµός των συναρτήσεων-µελών που είναι εξαρτηµένες από τύπους και δήλωσή τους ως εικονικές ( virtual ). 31 / 47

32 Παράδειγµα class IntArray public: // constructors IntArray(int sz = DefaultArraySize) init(0,sz); } IntArray(const int * ar, int sz) init(ar,sz); } IntArray(const IntArray & other) init(other.ia,other.asize); } // virtual destructor virtual IntArray() delete[] ia; } IntArray& operator=(const IntArray&); int size() const return asize; } bool operator==(const IntArray&) const; bool operator!=(const IntArray&) const; // no range checking virtual int& operator[](int i) const return ia[i];} virtual void sort(int, int); virtual int find(int) const; virtual int min() const; virtual int max() const; protected: void init(const int*, int); static const int DefaultArraySize = 12; int asize; int * ia; }; 32 / 47

33 Τι πρέπει να κάνουµε για τις παράγωγες κλάσεις; Να τις δηλώσουµε ως παράγωγες από την κλάση-ϐάσης. Να παρέχουµε τους ορισµούς των συναρτήσεων-µελών που έχουν δηλωθεί ως εικονικές στην κλάση-ϐάση. Να παρέχουµε τις δικές τους συναρτήσεις κατασκευής (για όποια νέα µέλη προσθέτουν), επεκτείνοντας τις συναρτήσεις κατασκευής της κλάσης-ϐάσης που κληρονοµούνται. Συναρτήσεις κατασκευής: Οι συναρτήσεις κατασκευής καλούνται αυτόµατα για όλη την ιεραρχία αρχίζοντας από την κλάση που ϐρίσκεται στη ϱίζα του δένδρου κληρονοµικότητας. Κάθε παράγωγη κλάση αρκεί εποµένως να αρχικοποιεί µόνο τα πεδία που προσθέτει. Οι συναρτήσεις κατάργησης καλούνται αυτόµατα µε την αντίστροφη σειρά. Απαιτείται ένας τρόπος για να µεταβιβάζονται τα ορίσµατα στις συναρτήσεις κατασκευής της κλάσης-ϐάσης αν αυτό είναι αναγκαίο. Παράδειγµα: Πώς µεταβιβάζουµε το IA και το 7 στη συνάρτηση κατασκευής της κλάσης-ϐάσης IntArray; int IA[7] = 0,12,35,2,3,12,81}; IntArrayRC IARC(IA,7); 33 / 47

34 Είδη Πρόσβασης Οι παράγωγες κλάσεις έχουν πρόσβαση µόνο στα non-private µέλη της ϐάσης-κλάσης. Πρόσβαση public protected private κλάση ϐάση ναι ναι ναι παράγωγη κλάση ναι ναι όχι διαφορετικά ναι όχι όχι 34 / 47

35 Παράδειγµα // IntArrayRC.h - part 1 #ifndef IntArrayRC_H #define IntArrayRC_H #include "IntArray.h" #include <cassert> class IntArrayRC : public IntArray public: IntArrayRC(int sz = DefaultArraySize); IntArrayRC(const int *array, int array_size); IntArrayRC(const IntArrayRC &other); virtual int& operator[](int) const; private: void check_range(int i) const assert(i >= 0 && i < asize); } }; 35 / 47

36 Παράδειγµα // IntArrayRC.h - part 2 int& IntArrayRC::operator[](int index) check_range(index); return ia[index]; } // portion after : is called member initialisation list // it provides the mechanism by which the arguments are // passed to the IntArray constructor IntArrayRC::IntArrayRC(int sz) : IntArray(sz) } IntArrayRC::IntArrayRC(const int * iar, int sz) : IntArray(iar, sz) } IntArrayRC::IntArrayRC(const IntArrayRC &other) : IntArray(other.ia, other.asize) } // destructor is not provided, because the derived class // doesn t introduce any data member requiring destruction #endif 36 / 47

37 Είσοδος/ Εξοδος Η είσοδος/έξοδος ορίζεται µε υπερφόρτωση των τελεστών << και >>. Επειδή το πρώτο όρισµα αυτών των τελεστών πρέπει να είναι το ϱεύµα εισόδου ή εξόδου (λόγω του τρόπου κλήσης τους), δεν µπορούν να είναι µέθοδοι της κλάσης αλλά πρέπει να είναι εξωτερικές συναρτήσεις. Πρέπει να επιστρέφουν το ϱεύµα εισόδου/εξόδου ώστε να είναι δυνατή η εκτύπωση πολύπλοκων παραστάσεων. ostream &operator<<(ostream &os, const IntArray &a) for (int i = 0; i << a.size(); ++i) os << a[i] << " "; return os; }... IntArray IA; cout << "Array: " << IA << "\n"; 37 / 47

38 Φίλες Συναρτήσεις και Κλάσεις Μερικές ϕορές µπορεί να ϑέλουµε να επιτρέψουµε την προσπέλαση των ιδιωτικών µελών (δεδοµένα, συναρτήσεις) µιας κλάσης από άλλες κλάσεις ή συναρτήσεις. Αυτό µπορεί να επιτευχθεί δηλώνοντας αυτές τις κλάσεις ή συναρτήσεις ως ϕίλες ( friends). 38 / 47

39 Παράδειγµα class ClassOne friend ClassTwo; friend void set_something(classone &, int &); //... private: int i; int& foo(const int &); }; class ClassTwo; //... ClassTwo(int & z) ClassOne::foo(z)}; //... }; void set_something(classone & Obj, int & x) //... Obj.i = defaultvalue; //... } 39 / 47

40 Γενικευµένος Σχεδιασµός µε Αρχέτυπα template <typename elemtype> class Array public: Array(int sz = DefaultArraySize) init(0, sz); } Array(const elemtype *ar, int sz) init(ar, sz); } Array(const Array & other) init(other.ia, other.asize); } virtual Array() delete[] ia; } Array& operator=(const Array &); int size() const return asize; } virtual elemtype& operator[](int i) const return ia[i];} virtual void sort(int, int); virtual int find(const elemtype &) const; virtual elemtype min() const; virtual elemtype max() const; protected: void init(const elemtype *, int); static const int DefaultArraySize = 12; int asize; elemtype * ia; }; 40 / 47

41 Παράδειγµα // ArrayRC.h #ifndef ARRAYRC_H #define ARRAYRC_H #include "Array.h" template <typename elemtype> class ArrayRC : public Array<elemType> public: ArrayRC(int sz = DefaultArraySize) : Array<elemType>(sz) } ArrayRC(const ArrayRC & r) : Array<elemType>(r) } ArrayRC(const elemtype *ar, int sz) : Array<elemType>(ar, sz) } }; elemtype& operator[](int i); const elemtype& operator[](int i) const; #endif 41 / 47

42 Παράδειγµα // ArrayRC.C #include "ArrayRC.h" #include "Array.C" #include <cassert> template <typename elemtype> elemtype& ArrayRC<elemType>::operator[](int i) assert( i >= 0 && i < asize ); return ia[i]; } template <typename elemtype> const elemtype& ArrayRC<elemType>::operator[](int i) const assert( i >= 0 && i < asize ); return ia[i]; } 42 / 47

43 Τέλος Ενότητας 43 / 47

44 Σηµείωµα Ιστορικού Εκδόσεων Εργου Το παρόν έργο αποτελεί την έκδοση / 47

45 Σηµείωµα Ιστορικού Εκδόσεων Εργου Copyright Πανεπιστήµιο Πατρών, Χρήστος Ζαρολιάγκης, «Τεχνολογίες Υλοποίησης Αλγορίθµων». Εκδοση: 1.0. Πάτρα ιαθέσιµο από τη δικτυακή διεύθυνση: 45 / 47

46 Σηµείωµα Ιστορικού Εκδόσεων Εργου Το παρόν υλικό διατίθεται µε τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εµπορική Χρήση, Οχι Παράγωγα Εργα 4.0 [1] ή µεταγενέστερη, ιεθνής Εκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. ϕωτογραφίες, διαγράµµατα κ.λ.π., τα οποία εµπεριέχονται σε αυτό. [1] Ως Μη Εµπορική ορίζεται η χρήση: που δεν περιλαµβάνει άµεσο ή έµµεσο οικονοµικό όφελος από την χρήση του έργου, για το διανοµέα του έργου και αδειοδόχο που δεν περιλαµβάνει οικονοµική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανοµέα του έργου και αδειοδόχο έµµεσο οικονοµικό όφελος (π.χ. διαφηµίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος µπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιµοποιεί το έργο για εµπορική χρήση, εφόσον αυτό του Ϲητηθεί. 46 / 47

47 ιατήρηση Σηµειωµάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού ϑα πρέπει να συµπεριλαµβάνει : το Σηµείωµα Αναφοράς το Σηµείωµα Αδειοδότησης τη δήλωση ιατήρησης Σηµειωµάτων το Σηµείωµα Χρήσης Εργων Τρίτων (εφόσον υπάρχει) µαζί µε τους συνοδευόµενους υπερσυνδέσµους 47 / 47

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Εισαγωγή στην C++ 3 1 / 40 Εισαγωγή στην C++ 3 Εννοιες Αντικειµενοστρεφούς

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση - Συγχώνευση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση Συγχώνευση & απαρίθμηση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 6 η Άσκηση - DFS δένδρα Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 1: Αντικειμενοστραφής Προγραμματισμός Εισαγωγή OBJECT-ORIENTED PROGRAMMING ΔΙΔΑΣΚΟΝΤΕΣ: Iωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Γρηγόρης Πράσινος Υποψήφιος ιδάκτωρ Τµήµα Μηχ/κων Η/Υ &

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων Εισαγωγή στους Αλγορίθμους Ενότητα η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra Εισαγωγή στους Αλγορίθμους Ενότητα 1η Άσκηση Αλγόριθμος Dijkra Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upara.gr Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 10: Πρότυπα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 7: Υπερφόρτωση διμελών τελεστών Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Γρηγόρης Πράσινος Υποψήφιος ιδάκτωρ Τµήµα Μηχ/κων Η/Υ &

Διαβάστε περισσότερα

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

Διοικητική Λογιστική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διοικητική Λογιστική Ενότητα 10: Προσφορά και κόστος Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Emil: zro@ei.uptrs.r Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΜΕΤΑΒΑΤΙΚΑ ΦΑΙΝΟΜΕΝΑ ΣΤΑ ΣΗΕ Λαμπρίδης Δημήτρης Κατσανού Βάνα Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών

Διαβάστε περισσότερα

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΜΕΤΑΒΑΤΙΚΑ ΦΑΙΝΟΜΕΝΑ ΣΤΑ ΣΗΕ Λαμπρίδης Δημήτρης Κατσανού Βάνα Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών

Διαβάστε περισσότερα

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΜΕΤΑΒΑΤΙΚΑ ΦΑΙΝΟΜΕΝΑ ΣΤΑ ΣΗΕ Λαμπρίδης Δημήτρης Κατσανού Βάνα Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskl Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Emil: zro@ei.uptrs.r Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 8: Δείκτες Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

Διαβάστε περισσότερα

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

Βάσεις Περιβαλλοντικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Περιβαλλοντικών Δεδομένων Ενότητα 3: Μοντέλα βάσεων δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Μηχανολογικό Σχέδιο Ι ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Ενότητα # 8: Άτρακτοι και σφήνες Μ. Γρηγοριάδου Μηχανολόγων Μηχανικών Α.Π.Θ. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2) Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2) Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 6: Κατανομή και Δυναμική Διαχείριση Μνήμης, τελεστές new και delete, υπερφόρτωση μονομελών τελεστών Το περιεχόμενο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 12: Βάσεις Δεδομένων [βασισμένο σε σημειώσεις των Silberchatz,Korth και Sudarshan] Το περιεχόμενο του μαθήματος διατίθεται

Διαβάστε περισσότερα

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

Δομές Δεδομένων Ενότητα 4 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 4: Ουρές Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 7: Υπορουτίνες Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction)

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

Διαβάστε περισσότερα

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

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός Κεφάλαιο Γ.4: Ολοκλήρωση με Αντικατάσταση Όνομα Καθηγητή: Γεώργιος Ν. Μπροδήμας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Πληροφορική ΙΙ Θεματική Ενότητα 5

Πληροφορική ΙΙ Θεματική Ενότητα 5 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 5 Λογικοί Τελεστές Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής Ανοικτά Ακαδημαϊκά Μαθήματα Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας Πίνακες Νερού σε κατάσταση Κορεσμού Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής Διπλ. Ναυπηγός Μηχανολόγος Μηχανικός M.Sc. Διασφάλιση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 Σημειώσεις βασισμένες στο

Διαβάστε περισσότερα

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

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6: 1η εργαστηριακή άσκηση και προσομοίωση με το SPICE Χατζόπουλος Αλκιβιάδης Τμήμα Ηλεκτρολόγων Μηχανικών και

Διαβάστε περισσότερα

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

Ευφυής Προγραμματισμός Ευφυής Προγραμματισμός Ενότητα 13: Δημιουργία Βάσεων Κανόνων Από Δεδομένα- Αξιολόγηση Βάσης Κανόνων Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δημιουργία Βάσεων Κανόνων

Διαβάστε περισσότερα

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

Ευφυής Προγραμματισμός Ευφυής Προγραμματισμός Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Περιεχόμενα ενότητας Λίστες Ιδιοτήτων-Πίνακες-Δομές 1. Λίστες Ιδιοτήτων 2. Πίνακες 3. Δομές 2 Λίστες

Διαβάστε περισσότερα

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

Διοικητική Λογιστική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διοικητική Λογιστική Ενότητα 6: Μέθοδοι ς Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

Διαβάστε περισσότερα

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

Δομές Δεδομένων Ενότητα 3 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 3: Στοίβα Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 9: Μνήμη Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

Διαβάστε περισσότερα

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

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Εργαστήριο 2 Καθηγητές: Αβούρης Νικόλαος, Παλιουράς Βασίλης, Κουκιάς Μιχαήλ, Σγάρμπας Κυριάκος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Άσκηση 2 ου εργαστηρίου

Διαβάστε περισσότερα

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

Ψηφιακή Επεξεργασία Εικόνων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Ψηφιακή Επεξεργασία Εικόνων Ενότητα # 14: Τμηματοποίηση με χρήση τυχαίων πεδίων Markov Καθηγητής Γιώργος Τζιρίτας Τμήμα Επιστήμης Υπολογιστών Τμηματοποίηση εικόνων

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

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

Διδακτική Πληροφορικής Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διδακτική Πληροφορικής Ενότητα 4: Διδακτικός μετασχηματισμός βασικών εννοιών πληροφορικής Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 4: Εντολές ελέγχου ροής Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

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

Βάσεις Περιβαλλοντικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Περιβαλλοντικών Δεδομένων Ενότητα 2: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα6: Εμφωλυευμένες δομές κώδικα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 7: Πίνακες (Arrays)

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 7: Πίνακες (Arrays) ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 7: Πίνακες (Arrays) Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 7 Πίνακες (Arrays) 1-D 0 1 2 2-D 3-D 0 0 1 1 2 2 3 3 array[3][2]

Διαβάστε περισσότερα

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

Τεχνικό Σχέδιο - CAD Τεχνικό Σχέδιο - CAD Προσθήκη Διαστάσεων & Κειμένου ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Εντολές προσθήκης διαστάσεων & κειμένου Στο βασική (Home)

Διαβάστε περισσότερα

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων Εισαγωγή στην Διοίκηση Επιχειρήσεων Ενότητα 7: ΑΣΚΗΣΕΙΣ ΜΕΓΕΘΟΥΣ ΕΠΙΧΕΙΡΗΣΗΣ Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Βάσεις Περιβαλλοντικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Περιβαλλοντικών Δεδομένων Ενότητα 1: Εισαγωγή στις ΒΔ Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

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

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους. Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους. Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη Ενότητα 8: Η Οικονομική πολιτική της Ευρωπαϊκής Ένωσης Γρηγόριος Ζαρωτιάδης Άδειες Χρήσης Το

Διαβάστε περισσότερα

Τεχνολογία Πολιτισμικού Λογισμικού

Τεχνολογία Πολιτισμικού Λογισμικού Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Τεχνολογία Πολιτισμικού Λογισμικού Ενότητα 12: SQL και πολιτισμικά δεδομένα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και

Διαβάστε περισσότερα

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

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ Ενότητα 8: ΘΕΩΡΙΑ ΚΑΙ ΜΕΘΟΔΟΙ ΚΑΤΑΤΜΗΣΗΣ ΚΑΤΑΝΑΛΩΤΙΚΗΣ ΣΥΜΠΕΡΙΦΟΡΑΣ Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons

Διαβάστε περισσότερα

υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 είκτες

υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 είκτες υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: είκτες στη C++ Οι τελεστές new και delete Destructors Ορισµός τελεστών κλάσεων Ο δείκτης this ΕΠΛ 132 Αρχές Προγραµµατισµού

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα 6: Λογισμικό Υπολογιστών Γλώσσες Προγραμματισμού Πασχαλίδης Δημοσθένης Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΗΥ2, Ενότητα : Ασκήσεις και Λύσεις Άσκηση 1 Ενότητα : Υλοποίηση Λεξικών µε

Διαβάστε περισσότερα

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

Ευφυής Προγραμματισμός Ευφυής Προγραμματισμός Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Περιεχόμενα ενότητας Συναρτήσεις-Δομές Ελέγχου : 1. Συναρτήσεις Χρήστη 2. Έλεγχος Ροής Προγράμματος 3.

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. 3 η ενότητα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Προγραμματισμός Η/Υ. 3 η ενότητα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Προγραμματισμός Η/Υ 3 η ενότητα Τμήμα Τεχνολόγων Περιβάλλοντος ΤΕΙ Ιονίων Νήσων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός

Διαβάστε περισσότερα

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

Διδακτική της Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 14: Διδακτικές Προσεγγίσεις για τον Προγραμματισμό Σταύρος Δημητριάδης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

Διαβάστε περισσότερα

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εισαγωγή στην C++ Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η γλώσσα C++ Σχεδιάστηκε το 1979 από τον Bjarne Stroustrup στα Bell Laboratories Βασίζεται

Διαβάστε περισσότερα

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

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης CreativeCommons.

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

Διαβάστε περισσότερα

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων Εισαγωγή στην Διοίκηση Επιχειρήσεων Ενότητα 9: ΑΣΚΗΣΕΙΣ ΕΠΙΛΟΓΗΣ ΤΟΠΟΥ ΕΓΚΑΤΑΣΤΑΣΗΣ Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

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

Διδακτική Πληροφορικής Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διδακτική Πληροφορικής Ενότητα 7: Η πληροφορική και ο προγραμματισμός στο εκπαιδευτικό σύστημα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Συναρτήσεις 60 Ροή ελέγχου Είναι η σειρά µε την οποία εκτελούνται οι εντολές. Μέχρι τώρα, «σειριακή»,

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 3: Πίνακες, Δομές και Δυναμική Διαχείριση Μνήμης Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons

Διαβάστε περισσότερα

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

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 4: Εισαγωγή στις κλάσεις Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

Διαβάστε περισσότερα