ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language)
|
|
- Βερενίκη Ζέρβας
- 7 χρόνια πριν
- Προβολές:
Transcript
1 1 ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D. Χειµώνας 2006 ιάλεξη 10η
2 2 Ιστοσελίδα του µαθήµατος ll06.htm Θα τοποθετούνται οι διαφάνειες του επόµενου µαθήµατος Επικοινωνία:
3 3 Περιεχόµενα Templates Standard Template Library (STL)
4 4 Στόχοι εκµάθησης Templates συναρτήσεων Σύνταξη, ορισµός Ασυµβατότητες του compiler Templates κλάσεων Σύνταξη Παράδειγµα: template κλάση για πίνακα Templates και κληρονοµικότητα Παράδειγµα: template κλάση για µερικώς πληρωµένο πίνακα
5 5 Εισαγωγικά Templates στη C++ Επιτρέπουν πολύ γενικούς ορισµούς για συναρτήσεις και κλάσεις Τα ονόµατα των τύπων είναι παράµετροι αντί να δηλώνονται οι πραγµατικοί τύποι Ο ακριβής ορισµός των τύπων προσδιορίζεται κατά την εκτέλεση του κώδικα
6 6 Templates συναρτήσεων Έστω µια συνάρτηση για αντιµετάθεση τιµών, η συνάρτηση swapvalues: void swapvalues(int& var1, int& var2) { int temp; temp = var1; var1 = var2; var2 = temp; } Εφαρµόζεται µόνο για µεταβλητές τύπου int Φυσικά ο κώδικας είναι ΟΚ για οποιοδήποτε τύπο δεδοµένων!
7 Templates συναρτήσεων & υπερφόρτωση 7 Θα µπορούσαµενακάνουµε overload τη συνάρτηση ώστε να δέχεται ορίσµατα char: void swapvalues(char& var1, char& var2) { char temp; temp = var1; var1 = var2; var2 = temp; } Αλλά παρατηρήστε: οκώδικαςείναισχεδόν πανοµοιότυπος! Η µόνη διαφορά είναι ο τύπος δεδοµένων που χρησιµοποιείται σε 3 σηµεία
8 8 Σύνταξη Template συναρτήσεων Επιτρέπει την αντιµετάθεση τιµών ( swap values ) δυο µεταβλητών οποιουδήποτε τύπου δεδοµένων: template<class T> void swapvalues(t& var1, T& var2) { T temp; temp = var1; var1 = var2; var2 = temp; } Ηπρώτηγραµµή λέγεται "template prefix" Λεει στον compiler ότι αυτό που ακολουθεί είναι µια "template" Και ότι το T είναι µια παράµερος τύπου δεδοµένων
9 9 Template Prefix (1/2) Θυµηθείτε: template<class T> Σ αυτή τη χρήση, το "class" σηµαίνει "type", ή "classification" Μπορεί να γίνει σύγχυση µε άλλες γνωστές χρήσεις της λέξης "class"! Η C++ επιτρέπει λέξη-κλειδί "typename" στη θέση της λέξη-κλειδί class εδώ Αλλά συνήθως χρησιµοποιούµετηλέξη"class"
10 10 Template Prefix (2/2) Ξανά: template<class T> Το Tµπορεί να αντικατασταθεί µε οποιοδήποτε τύπο Προκαθορισµένο ή ορισµένο από το χρήστη (όπως µια κλάση) Στο σώµα της συνάρτησης: Το T χρησιµοποιείται όπως οποιοσδήποτε άλλος τύπος Σηµειώστε: µπορούµεναχρησιµοποιήσουµε οποιοδήποτε άλλο σύµβολο εκτός από το "T", αλλά το T χρησιµοποιείται παραδοσιακά
11 11 Ορισµός Template συνάρτησης Η template συνάρτησης swapvalues() είναι στην πραγµατικότητα µια συλλογή ορισµών! Ένας ορισµός για κάθε πιθανό τύπο! Ο compiler παράγει ορισµούς µόνο όταν απαιτείται Αλλά είναι σαν να είχαµε δηµιουργήσει όλους αυτούς τους ορισµούς Γράφουµεένανορισµό δουλεύει για όλους τους τύπους που µπορεί να φτιάξουµε
12 12 Κλήση µιας template συνάρτησης Θεωρήστε την επόµενη κλήση: swapvalues(int1, int2); Ο C++ compiler παράγει τον ορισµό της συνάρτησης για δυο int παραµέτρους χρησιµοποιώντας την template Το ίδιο για όλους τους άλλους τύπους εν χρειάζεται να κάνει κάτι ιδιαίτερο για την κλήση Οαπαιτούµενος ορισµός παράγεται αυτόµατα
13 13 Μια άλλη template συνάρτησης ήλωση/πρωτότυπο: Template<class T> void showstuff(int stuff1, T stuff2, T stuff3); Ορισµός: template<class T> void showstuff(int stuff1, T stuff2, T stuff3) { cout << stuff1 << endl << stuff2 << endl << stuff3 << endl; }
14 14 Κλήση showstuff Θεωρήστε την κλήση: showstuff(2, 3.3, 4.4); Ο compiler παράγει τον ορισµό της συνάρτησης Αντικαθιστά τον Tµε double Αφού η δεύτερη παράµετρος είναι τύπου double Τυπώνει στην οθόνη:
15 15 Ασυµβατότητες του compiler (1/2) ηλώσεις και ορισµοί συναρτήσεων Συνήθως τους τοποθετούµε χωριστά Για τις templates δεν υποστηρίζεται από τους περισσότερους compilers! Το ασφαλέστερο είναι να τοποθετούµετονορισµό της template συνάρτησης στο αρχείο όπου ενεργοποιείται Οι περισσότεροι compilers απαιτούν να εµφανίζεται πρώτο Συχνά κάνουµε #include όλους τους ορισµούς template
16 16 Ασυµβατότητες του compiler (2/2) Έλεγχος των απαιτήσεων του compiler Μερικοί χρειάζονται να θέσουµε ειδικές επιλογές (options) Μερικοί απαιτούν ειδική διάταξη του ορισµού των templates σε σχέση µε άλλα items του αρχείου Ο πιο συνήθης τρόπος οργάνωσης του προγράµµατος: Οορισµός της template στοίδιοαρχείοόπου χρησιµοποιείται Επιβεβαιώνουµε ότι ο ορισµός της template προηγείται όλων των χρήσεών της Μπορούµενατηνκάνουµε #include
17 17 Παράµετροι πολλαπλών τύπων Μπορούµεναέχουµε το παρακάτω: template<class T1, class T2> εν είναι πολύ συνηθισµένο Συνήθως χρειαζόµαστε µόνο έναν αντικαταστήσιµο τύπο εν µπορούµε ναέχουµε αχρησιµοποίητες παραµέτρους στην template Κάθε παράµετρος πρέπει να χρησιµοποιείται στον ορισµό ιαφορετικά σηµατοδοτείται ως Error!
18 18 Αφαίρεση σε υλοποίηση αλγορίθµων Αναφέρεται στην υλοποίηση templates Εκφράζει τους αλγορίθµους στη γενική τους µορφή: Ο αλγόριθµος εφαρµόζεται σε µεταβλητές οποιουδήποτε τύπου Επικεντρώνουµε στα ουσιαστικά κοµµάτια του αλγορίθµου Οι templates συναρτήσεων είναι ένας τρόπος µε τον οποίο η C++ υποστηρίζει την έννοια της αφαίρεσης στην υλοποίηση των αλγορίθµων
19 Στρατηγική ανάπτυξης των templates 19 Αναπτύσσουµετησυνάρτηση κανονικά Χρησιµοποιώντας τους πραγµατικούς τύπους Κάνουµε debug την κανονική συνάρτηση Κατόπιν, τη µετατρέπουµε σεtemplate Αντικαθιστούµε ταονόµατα των τύπων µε παραµέτρους τύπων, όπου χρειάζεται Πλεονεκτήµατα: Είναι ευκολότερο να επιλύσουµε την συγκεκριµένη περίπτωση Ασχολούµαστε µε τον αλγόριθµο, όχι µε τησύνταξη της template
20 20 Ακατάλληλοι τύποι σε templates Μπορούµεναχρησιµοποιήσουµεοποιονδήποτε τύπο σε µια template, υπό την προϋπόθεση ότι έχει νόηµα Ο κώδικας πρέπει να συµπεριφέρεται ορθά π.χ., η template συνάρτησης swapvalues() εν µπορεί να χρησιµοποιήσει τύπο δεδοµένων για τον οποίο ο τελεστής ανάθεσης δεν είναι ορισµένος Παράδειγµα: ένας πίνακας int a[10], b[10]; swapvalues(a, b); Οι πίνακες δεν µπορούν να ανατεθούν!
21 21 Templates κλάσεων Μπορούµε επίσηςνα γενικεύσουµε κλάσεις µε τηδήλωσηtemplate<class T> Μπορεί να εφαρµοστεί στον ορισµό µιας κλάσης Όλες οι εµφανίσεις του "T" στον ορισµό της κλάσης θα αντικατασταθούν µε τηνπαράµετρο τύπου Όπως ακριβώς και µε τιςtemplates συναρτήσεων! Αφού οριστεί η template κλάσης,µπορούµε να ορίσουµε αντικείµενα αυτής της κλάσης
22 22 Ορισµός template κλάσης template<class T> class Pair { public: Pair(); Pair(T firstval, T secondval); void setfirst(t newval); void setsecond(t newval); T getfirst() const; T getsecond() const; private: T first; T second; };
23 23 Μέλη της template κλάσης Pair template<class T> Pair<T>::Pair(T firstval, T secondval) { first = firstval; second = secondval; } template<class T> void Pair<T>::setFirst(T newval) { first = newval; }
24 24 Template κλάση Pair Τα αντικείµενα της κλάσης περιέχουν ζεύγη τιµών τύπου T Μπορούµεναδηλώσουµεαντικείµενα: Pair<int> score; Pair<char> seats; Τα αντικείµενα αυτά χρησιµοποιούνται όπως κάθε άλλο αντικείµενο Παραδείγµατα χρήσης: score.setfirst(3); score.setsecond(0);
25 Ορισµοί συναρτήσεων-µελών της Pair 25 Παρατηρήστε στους ορισµούς των συναρτήσεων- µελών: Κάθε ορισµός είναι από µόνος του µια "template" Απαιτεί να προηγείται ένα template prefix Το όνοµα της κλάσης πριν από τον τελεστή :: είναι το "Pair<T>" Όχι απλά το "Pair" Αλλά το όνοµα τουconstructor είναι απλά το "Pair" Το όνοµα τουdestructor είναι επίσης απλά το "~Pair"
26 26 Templates κλάσεων ως παράµετροι Θεωρήστε το: int addup(const Pair<int>& thepair); Οτύπος(int) παρέχεται να χρησιµοποιηθεί στη θέση του T στον ορισµό τηςπαραµέτρου τύπου κλάσης Εδώ έτυχε να είναι call-by-reference Ξανά: οι τύποι template µπορούν να χρησιµοποιηθούν οπουδήποτε µπορούν να χρησιµοποιηθούν και οι standard τύποι
27 Templates κλάσεων µέσα σε 27 templates συναρτήσεων Αντί να ορίσουµε νέαoverload συνάρτηση: template<class T> T addup(const Pair<T>& thepair); //Precondition: Operator + is defined for values of type T //Returns sum of two values in thepair Τώρα η συνάρτηση εφαρµόζεται σε όλα τα είδη αριθµών
28 28 Περιορισµοί στην παράµετρο τύπου Μόνο "reasonable" τύποι µπορούν να µπουν στη θέση του T Θεωρήστε τα: Ο τελεστής ανάθεσης πρέπει να συµπεριφέρεται ορθά Ο copy constructor πρέπει να ενεργεί ορθά Εάν η T εµπλέκει δείκτες, τότε ο destructor πρέπει να είναι ο κατάλληλος! Παρόµοια ζητήµατα όπως και στις templates συναρτήσεων
29 29 Ορισµοί τύπων Μπορούµεναορίσουµενέο όνοµα τύπου κλάσης Γιανααναπαραστήσουµε εξειδικευµένο όνοµα template κλάσης Παράδειγµα: typedef Pair<int> PairOfInt; Το όνοµα "PairOfInt" χρησιµοποιείται για να δηλώσουµεαντικείµενα τύπου Pair<int>: PairOfInt pair1, pair2; Το όνοµα µπορεί επίσης να χρησιµοποιηθεί ως παράµετρος, ή οπουδήποτε αλλού επιτρέπεται όνοµατύπου
30 30 Friends και templates Οι friend συναρτήσεις µπορούν να χρησιµοποιηθούν µε template κλάσεων Όµοια, όπως µε τις κανονικές κλάσεις Απλά απαιτεί παράµετρο τύπου Είναι σύνηθες να έχουµε friends σε template κλάσεις Ειδικά, για υπερφόρτωση τελεστών
31 31 Προκαθορισµένες template κλάσεων Η template κλάσης Vector! Μια άλλη: η template κλάσης basic_string ιαχειρίζεται αλυσίδες στοιχείων οποιουδήποτε τύπου π.χ., basic_string<char> //για char basic_string<double> //για doubles basic_string<yourclass> //για αντικείµενα YourClass
32 32 Η template κλάσης basic_string Την έχουµε χρησιµοποιήσει ήδη! Θυµηθείτε την κλάση "string" Είναι ένα άλλο όνοµα γιατηνκλάση basic_string<char> H basic_string ορίζεται στη βιβλιοθήκη <string> Οορισµός είναι στο namespace std
33 33 Templates και κληρονοµικότητα εν υπάρχει κάτι νέο Παραγόµενες template κλάσεις Μπορούν να προκύπτουν από template κλάσεις ή από µη-template κλάσεις Η παραγόµενη κλάση είναι µια template κλάση Η σύνταξη είναι όµοια µε τιςπαραγόµενες κλάσεις που προκύπτουν από κανονικές κλάσεις
34 34 Περίληψη Templates συναρτήσεων Ορίζουµε συναρτήσειςµε µια παράµετρο αντί για τύπο δεδοµένων Templates κλάσεων Ορίζουµε κλάσειςµε παράµετρο για υπο-κοµµάτια της κλάσης Οι προκαθορισµένες κλάσεις vector και basic_string είναι template κλάσεις Μπορούµεναορίσουµε template κλάση η οποία να παράγεται από µια βασική template κλάση
35 35 Περιεχόµενα Templates Standard Template Library (STL)
36 36 Στόχοι εκµάθησης Iterators Αµετάβλητοι (constant) και τροποποιήσιµοι (mutable) iterators Ανάστροφοι (reverse) iterators Containers Σειριακοί (sequential) containers Container adapters στοίβα και ουρά Γενικευµένοι αλγόριθµοι Ακολουθία, σύνολο, και αλγόριθµοι ταξινόµησης
37 37 Εισαγωγικά Θυµηθείτε τις δοµές στοίβα και ουρά Εξαιρετικά χρήσιµες Υπάρχει µεγάλη συλλογή standard δοµών δεδοµένων Είναι πρακτικό να έχουµε µια standard φορητή υλοποίηση αυτών των δοµών! Standard Template Library (STL) Περιλαµβάνει βιβλιοθήκες για πολλές τέτοιες δοµές Όπως container κλάσεις: στοίβες και ουρές
38 38 Iterators Θυµηθείτε: γενίκευση ενός δείκτη Τυπικά, υλοποιούνται µε έναδείκτη! Αφαίρεση των iterators Σχεδιασµένοι για να κρύψουν τις λεπτοµέρειες της υλοποίησής τους Παρέχουν οµοιόµορφο interface για διαφορετικές κλάσεις Each container class has "own" iterator type Similar to how each data type has own pointer type
39 39 ιαχείριση Iterators Θυµηθείτε τη χρήση των υπερφορτωµένων τελεστών: ++, --, ==,!= * Έτσι, εάν ο p είναι µια µεταβλητή τύπου iterator, ηέκφραση *p παρέχει πρόσβαση στα δεδοµένα στα οποία δείχνει ο p Template κλάση Vector Έχει όλες τις παραπάνω υπερφορτώσεις Επίσης, έχει µέλη τις begin() και end() c.begin(); //Returns iterator for 1 st item in c c.end(); //Returns "test" value for end
40 40 Ανακύκλωση µε Iterators Θυµηθείτε τη δυνατότητα ανακύκλωσης : for (p=c.begin(); p!=c.end(); p++) process *p //*p is current data item Κρατήστε στη µνήµη σας: Κάθε τύπος container στην STL έχει τους δικούς τους τύπους iterator Παρόλο που όλοι χρησιµοποιούνται παρόµοια
41 Χρήση των Iterators µε Vector (1/2) 41
42 Χρήση των Iterators µε Vector (2/2) 42
43 43 Τύποι Iterator για Vector Iterators για vectors από ints είναι τύπου: std::vector<int>::iterator Iterators για lists από ints είναι τύπου: std::list<int>::iterator Το Vector είναι στο std namespace, άρα: using std::vector<int>::iterator;
44 44 Είδη των Iterators ιαφορετικοί containers διαφορετικοί iterators Iterators για Vectors Ηπιογενικήµορφή Ο Vector container είναι σπουδαίος για παραδείγµατα µε iterator
45 Bidirectional και 45 Random-Access χρήση του Iterator
46 46 Κατηγοριοποίηση των Iterators Forward iterators: Ο τελεστής ++ δουλεύει πάνω σε iterator Bidirectional iterators: Οι τελεστές ++ και δουλεύουν πάνω σε iterator Random-access iterators: Οι ++, --, και random access, όλοι δουλεύουν πάνω σε iterator Αυτοί είναι είδη από iterators, όχι τύποι!
47 Αµετάβλητοι (constant) και 47 τροποποιήσιµοι (mutable) iterators Ησυµπεριφορά του τελεστή dereferencing (*) υπαγορεύει Αµετάβλητος iterator: Το * παράγει µια read-only έκδοση του στοιχείου Μπορούµε ναχρησιµοποιήσουµε το*p για να αναθέσουµε σεµια µεταβλητή ή για έξοδο, αλλά δεν µπορούµε να αλλάξουµε το στοιχείο στον container π.χ., *p = <anything>; είναι άκυρο Τροποποιήσιµος iterator: Στο *p µπορεί να ανατεθεί µια τιµή Αλλάζει το αντίστοιχο στοιχείο στον container ηλ., το *p επιστρέφει µια lvalue
48 48 Ανάστροφοι (reverse) Iterators Γιαναπαίρνουµεταστοιχείακαιµεανάστροφη σειρά Απαιτεί container µε bidirectional iterators Πιθανόν να εξετάζαµε µια λύση όπως η: iterator p; for( p=container.end();p!=container.begin(); p-- ) cout << *p << " " ; Αλλά θυµηθείτε: η end() είναι απλά ένας φρουρός, η begin() δεν είναι! Ίσως δουλέψει σε µερικά συστήµατα, άλλα όχι στα περισσότερα
49 49 Ο σωστός ανάστροφος Iterator Γιαναπάρουµε σωστά τα στοιχεία µε ανάστροφη σειρά: reverse_iterator p; for (rp=container.rbegin(); rp!=container.rend(); rp++) cout << *rp << " " ; rbegin() Επιστρέφει έναν iterator στο τελευταίο στοιχείο rend() Επιστρέφει έναν φρουρό σηµατοδότησης του τέλους
50 50 Προβλήµατα µε compiler Μερικοί compilers είναι προβληµατικοί µε τις δηλώσεις των iterators Θεωρήστε τη χρήση µας: using std::vector<char>::iterator; iterator p; Εναλλακτικά: std::vector<char>::iterator p;
51 51 Containers Container κλάσεις στην STL ιαφορετικά είδη δοµών δεδοµένων Όπως λίστες, ουρές, στοίβες Κάθε µια είναι µια template κλάση µε παράµετρο τον τύπο δεδοµένων που θα αποθηκευτεί π.χ., List από ints, doubles ήτύποαντικειµένων myclass Κάθε µια έχει τους δικούς της iterators Μια µπορεί να έχει bidirectional, κάποια άλλη να έχει µόνοforward iterator, κ.τ.λ. Αλλά όλοι οι τελεστές και µέλη έχουν το ίδιο νόηµα
52 52 Σειριακοί containers ιευθετεί δεδοµένα λίστας (list) 1 o στοιχείο, επόµενο στοιχείο, τελευταίο στοιχείο Ησυνδεδεµένη λίστα (linked list) είναι σειριακός container Οι προηγούµενες συνδεδεµένες λίστες ήταν απλά συνδεδεµένες λίστες ( singly linked lists ) Ένας σύνδεσµος ανά κόµβο Η STL δεν έχει singly linked list Μόνο doubly linked list : η template κλάση list
53 53 υο είδη λίστας
54 Χρήση της template κλάσης list (1/2) 54
55 Χρήση της template κλάσης list (2/2) 55
56 56 Container adapters στοίβα και ουρά Οι container adapters είναι template κλάσεις Υλοποιούνται πάνω από άλλες κλάσεις Παράδειγµα: Η template κλάση stack υλοποιείται εξ ορισµού επάνω από την template κλάση deque Θαµµένη στην υλοποίηση της stack είναι η deque όπου αποθηκεύονται όλα τα δεδοµένα Άλλες: queue, priority_queue
57 57 Καθορίζοντας container adapters Οι adapter template κλάσεις έχουν από κάτω κάποιο container που τις υποστηρίζει Αλλά, έχουµε τη δυνατότητα να καθορίσουµε διαφορετικό container Παραδείγµατα: stack template class οποιοσδήποτε σειριακός container priority_queue οεξ ορισµού είναι ο vector, θα µπορούσε να είναι κάποιος άλλος Παράδειγµακαθορισµού: stack<int, vector<int>> Κάνει την κλάση vector να είναι ο container κάτω από τη stack
58 58 Associative containers Associative container: απλή βάση δεδοµένων Αποθηκεύει δεδοµένα Κάθε δεδοµένο έχει ένα κλειδί Παράδειγµα: data: employee s record ως struct key: employee s SSN Τα items ανακτώνται µεβάσητοκλειδί
59 59 Η template κλάση set (1/2) Οαπλούστεροςδυνατόςcontainer Αποθηκεύει στοιχεία χωρίς επανάληψη Η 1 η εισαγωγή τοποθετεί ένα στοιχείο στο σύνολο Κάθε στοιχείο είναι ένα κλειδί από µόνο του υνατότητες: Προσθήκη στοιχείων ιαγραφή στοιχείων Έλεγχος εάν κάποιο στοιχείο ανήκει στο σύνολο
60 60 Η template κλάση set (2/2) Σχεδιάστηκε ώστε να είναι αποδοτική Αποθηκεύει τιµές σε ταξινοµηµένη σειρά Μπορούµε να καθορίσουµε τη διάταξη: set<t, Ordering> s; Η διάταξη λειτουργεί ορθά και επιστρέφει bool Εάν δεν καθοριστεί καµία: χρήση του σχεσιακού τελεστή <
61 61 Η template κλάση Map Μια συνάρτηση που δίνεται ως σύνολο διατεταγµένων ζευγών Για κάθε µια τιµή first, το πολύ µια τιµή second στη map Παράδειγµα δήλωσης map: map<string, int> numbermap; Αποθηκεύονται σε ταξινοµηµένη διάταξη, όπως το set Second value can have no ordering impact
62 62 Γενικευµένοι αλγόριθµοι Βασικές template συναρτήσεις Θυµηθείτε τον ορισµό τουαλγορίθµου: Σύνολο εντολών για εκτέλεση µιας λειτουργίας Μπορεί να αναπαρασταθεί σε οποιαδήποτε γλώσσα Τυπικά σε "pseudocode" Θεωρείται αφαίρεση του κώδικα ίνει σηµαντικές λεπτοµέρειες, αλλά όχι λεπτοµέρειες του κώδικα Οι αλγόριθµοι της STL σε template συναρτήσεις: Παρέχονται µερικές µόνο λεπτοµέρειες Εποµένων θεωρούνται γενικευµένοι αλγόριθµοι
63 63 Χρόνοι εκτέλεσης για container O(1) σταθερή λειτουργία: Εισαγωγές σε Vector (στην αρχή ή τέλος) Εισαγωγές σε deque Εισαγωγές σε list O(N) Εισαγωγή ή διαγραφή τυχαίου στοιχείου σε vector ή deque (N είναι ο αριθµός των στοιχείων) O(log N) Εύρεση σε set ή map
64 Αλγόριθµοι που δεν τροποποιούν 64 ακολουθίες Template συναρτήσεις που επενεργούν σε containers ΕΝ τροποποιούν τα περιεχόµενα του container Ηγενικήσυνάρτησηfind Τυπικό παράδειγµα Μπορεί να χρησιµοποιηθεί µε οποιαδήποτε σειριακή container κλάση της STL
65 65 Η συνάρτηση find (1/3)
66 66 Η συνάρτηση find (2/3)
67 67 Η συνάρτηση find (3/3)
68 68 Αλγόριθµ. τροποποίησης ακολουθίας STL συναρτήσεις που τροποποιούν τα περιεχόµενα ενός container Θυµηθείτε: προσθήκη/διαγραφή στοιχείων από containers µπορεί να επηρεάσει άλλους iterators! Οι list και slist εγγυώνται µη-τροποποίηση σε iterator Οι vector και deque ΕΝ παρέχουν τέτοια εγγύηση Πάντοτε παρακολουθούµε ποιοι iterators είναι εγγυηµένο ότι θα αλλαχτούν/δεν θα αλλαχτούν
69 69 Αλγόριθµοι συνόλων Η STL περιέχει συναρτήσεις που υλοποιούν τις γενικές λειτουργίες πάνω σε σύνολα Όλες υποθέτουν ότι τα στοιχεία των containers αποθηκεύονται σε ταξινοµηµένη διάταξη Containers set, map, multiset, multimap ΕΊΝΑΙ ταξινοµηµένοι, και συνεπώς οι συναρτήσεις συνόλων εφαρµόζονται Άλλες, όπως η vector, δεν είναι ταξινοµηµένες εν θα έπρεπε να χρησιµοποιούνται συναρτήσεις συνόλων
70 70 Αλγόριθµοι ταξινόµησης Η STL περιέχει δυο template συναρτήσεις: 1. sort (ταξινόµηση) συλλογής στοιχείων 2. merge (συγχώνευση) δυο ταξινοµηµένων συλλογών στοιχείων Εγγυηµένος χρόνος εκτέλεσης O(N log N) Κανένας αλγόριθµος ταξινόµησης δεν µπορεί να είναι ταχύτερος Η συνάρτηση εγγυάται την ταχύτερη δυνατή ταξινόµηση
Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D.
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 11η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Διαβάστε περισσότεραΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++
Πέρασμα μεταβλητών, Templates, Συσχετίσεις μεταξύ κλάσεων ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++ Μ. Ρήγκου (rigou@ceid.upatras.gr) Τι θα συζητήσουμε σήμερα Πέρασμα με τιμή και με αναφορά Template functions και classes
Διαβάστε περισσότεραStandard Template Library (STL) C++ library
Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Standard Template Library (STL) C++ library Δομές Δεδομένων Μάριος Κενδέα kendea@ceid.upatras.gr Εισαγωγή Η Standard Βιβλιοθήκη προτύπων
Διαβάστε περισσότεραΔομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ
Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ mpompotas@ceid.upatras.gr Εισαγωγή - STL Η Standard Βιβλιοθήκη προτύπων (STL) είναι μια βιβλιοθήκη λογισμικού για την C++ Δημιουργήθηκε
Διαβάστε περισσότεραStandard Template Library (STL)
Standard Template Library (STL) Η χαρά του προγραμματιστή δαίμων - τεύχος 6 Μορφονιός Κωνσταντίνος http://www.di.uoa.gr/~kmorfo K.Morfonios@di.uoa.gr Περιεχόμενα Τι είναι; Containers Algorithms Iterators
Διαβάστε περισσότεραΗ Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 4η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Διαβάστε περισσότεραΗ Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 6η: Ερωτήσεις 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm
Διαβάστε περισσότεραΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language)
1 ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D. Χειµώνας 2006 ιάλεξη 4η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall06.htm
Διαβάστε περισσότεραΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D.
1 ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D. Χειµώνας 2006 ιάλεξη 4η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall06.htm
Διαβάστε περισσότεραΤεχνολογίες Υλοποίησης Αλγορίθµων
Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Γρηγόρης Πράσινος Υποψήφιος ιδάκτωρ Τµήµα Μηχ/κων Η/Υ &
Διαβάστε περισσότεραΠρογραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and
Διαβάστε περισσότεραΗ Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 9η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Διαβάστε περισσότεραΗ Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)
Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα τοποθετούνται
Διαβάστε περισσότεραΗ Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις.
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Διαβάστε περισσότεραΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language)
1 ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D. Χειµώνας 2006 ιάλεξη 9η: Ερωτήσεις 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cp
Διαβάστε περισσότεραΜάθημα 22: Δυαδικά δέντρα (Binary Trees)
Trees Page 1 Μάθημα 22: Δυαδικά δέντρα (Binary Trees) Ένα δένδρο είναι δυαδικό αν όλοι οι κόμβοι του έχουν βαθμό (degree)
Διαβάστε περισσότεραΗ Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 3η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Διαβάστε περισσότεραΗ Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Πίνακες.
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 3η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Διαβάστε περισσότεραΜάθημα 21: Ουρές (Queues)
Queues Page 1 Μάθημα 21: Ουρές (Queues) Η ουρά (queue) είναι μια δομή δεδομένων. Η βασική λειτουργικότητα είναι η εισαγωγή στοιχείων στην πίσω θέση και η εξαγωγή-διαγραφή στοιχείων από την μπροστινή θέση.
Διαβάστε περισσότεραΤεχνολογίες Υλοποίησης Αλγορίθµων
Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Γρηγόρης Πράσινος Υποψήφιος ιδάκτωρ Τµήµα Μηχ/κων Η/Υ &
Διαβάστε περισσότεραΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί
Διαβάστε περισσότερα19. ΠΡΟΤΥΠΑ (TEMPLATES)
19. ΠΡΟΤΥΠΑ (TEMPLATES) Πρότυπα συναρτήσεων µε ένα όρισµα int abs (int n) float abs (float n) return (n
Διαβάστε περισσότεραΗ Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D.
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 9η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Διαβάστε περισσότεραΠρογραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Εισαγωγή στην C++ Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η γλώσσα C++ Σχεδιάστηκε το 1979 από τον Bjarne Stroustrup στα Bell Laboratories Βασίζεται
Διαβάστε περισσότεραΚλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )
ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 14η: 31/08/2006 1 Συλλογές
Διαβάστε περισσότεραΑντικειμενοστραφής Προγραμματισμός
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αντικειμενοστραφής Προγραμματισμός Ενότητα 9 : Τα πρότυπα (templates) Ιωάννης Τσούλος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο Τμήμα Μηχανικών Πληροφορικής
Διαβάστε περισσότεραΗ Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 7η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Διαβάστε περισσότεραΗ Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Αλφαριθµητικά Κλάση string
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 7η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Συλλογές και Επαναλήπτες. Συλλογές - Collections
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 14η: 31/08/2006 1 Συλλογές
Διαβάστε περισσότεραΔομές Δεδομένων. Λουκάς Γεωργιάδης.
Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή Δεδομένων: Μέθοδος αποθήκευσης
Διαβάστε περισσότεραJDSL Java Data Structures Library
ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ JDSL Java Data Structures Library Δομές Δεδομένων Μπαλτάς Αλέξανδρος 24 Μαρτίου 2015 ampaltas@ceid.upatras.gr Εισαγωγή Η JDSL είναι μια βιβλιοθήκη ομών εδομένων σε
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 7: C++ TEMPLATES, ΥΠΕΡΦΟΡΤΩΣΗ ΤΕΛΕΣΤΩΝ, ΕΞΑΙΡΕΣΕΙΣ Templates ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής
Διαβάστε περισσότεραWeek. 6: Java Collections
Week 6: Java Collections Συλλογές δεδοµένων [collections] Εβδοµάδα 6: Συλλογές δεδοµένων στην Java Οι συλλογές [collections] (αναφέρονται και ως «υποδοχείς δεδοµένων» [containers]) είναι κλάσεις που χρησιµοποιούνται
Διαβάστε περισσότεραΠροηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων
Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Γρηγόρης Πράσινος Υποψήφιος ιδάκτωρ Τµήµα
Διαβάστε περισσότεραΑντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT
= Αντικειμενοστραφείς Γλώσσες Προγραμματισμού Ιωάννης Παπαδόπουλος Τμήμα Φυσικής, Πανεπιστήμιο Ιωαννίνων Δεκέμβριος 2018 1/18 = 2/18 = 1 αντικειμένων Μέθοδοι αντιγράφου (copy constructor) Κατασκευή μέσω
Διαβάστε περισσότεραΤύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )
Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
Διαβάστε περισσότεραΠρότυπα και διανύσματα
Πρότυπα και διανύσματα Πρότυπα συναρτήσεων Πρότυπα κλάσεων Παραδείγματα ιανύσματα της καθιερωμένης C++ Επαναλήπτες σε διανύσματα 1 Πρότυπα συναρτήσεων Το πρότυπο (template) είναι μια αφηρημένη συνταγή
Διαβάστε περισσότεραInitialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to
Κεφάλαιο 2 Δοµές Δεδοµένων Ι Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Δοµές Δεδοµένων Ι Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε
Διαβάστε περισσότεραΒασικές Έννοιες Δοµών Δεδοµένων
Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες
Διαβάστε περισσότεραΔηµοσθένης Σταµάτης Τµήµα Πληροφορικής T.E.I. ΘΕΣΣΑΛΟΝΙΚΗΣ
Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Γραµµικές Δοµές Δεδοµένων (Linear Data Structures) Πίνακες (Arrays) Διανύσµατα (Vectors) http://aetos.it.teithe.gr/~demos/teaching_gr.html Δηµοσθένης Σταµάτης
Διαβάστε περισσότεραΣυλλογές ΣΥΛΛΟΓΕΣ. Γεώργιος Παπαϊωάννου ( )
ΣΥΛΛΟΓΕΣ Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Βασικές Συλογές της STL Η έννοια του iterator Τροποποίηση και παραμετροποίηση συλλογών της STL Έλεγχος ισοτιμίας και διάταξης Hashing Υλοποίηση
Διαβάστε περισσότεραΟνοματεπώνυμο και ΑΜ: Είχα παραδώσει εργασίες τα εξής ακαδημαϊκά έτη: Διάρκεια: 2,5 ώρες, κλειστά βιβλία και σημειώσεις ΚΑΛΗ ΕΠΙΤΥΧΙΑ!
Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Προγραμματισμός Υπολογιστών με C++ Εξεταστική περίοδος: Σεπτεμβρίου 2011. Διδάσκων: Α. Δημάκης Γράψτε όλες τις απαντήσεις σας πάνω σε αυτό το
Διαβάστε περισσότεραΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal Δοµή προγράµµατος 1. Δοµή προγράµµατος program όνοµα_προγράµµατος(αρχείο_1, αρχείο_2,...αρχείο_ν); ΕΠΙΚΕΦΑΛΙΔΑ ΒΙΒΛΙΟΘΗΚΕΣ uses όνοµα_βιβλιοθήκης,όνοµα_βιβλιοθήκης;
Διαβάστε περισσότερα17TimeThis.h function returns reference pointer to same object { return *this; }
Προαπαιτούµενη Κάθε οµάδα θα πρέπει να εµπλουτίσει το ίδιο πρόγραµµα, που έκανε την προηγούµενη φορά, προσθέτοντας στην κλάση του έναν ή περισσότερους υπερφορτωµένους τελεστές (όπως , ++, +,-,+=..)
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών με C++ Φύλλο Διαγωνίσματος Ακαδημαϊκό εξάμηνο: Χειμερινό
Προγραμματισμός Υπολογιστών με C++ Φύλλο Διαγωνίσματος Ακαδημαϊκό εξάμηνο: Χειμερινό 2013-14 Διδάσκων: Γεώργιος Παπαϊωάννου Μονογραφή επιτηρητή: Στοιχεία Φοιτητή (συμπληρώνεται από το φοιτητή) Όνομα: Αίθουσα/αμφιθέατρο:
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
Ουρές Ουρές Περίληψη Η ΟυράΑΔΤ Υλοποίηση με κυκλικό πίνακα Αυξανόμενη Ουρά βασισμένη σε πίνακα Interface ουράς στην C++ Η Ουρά ADT Η ΑΔΤ Ουρά αποθηκεύει αυθαίρετα αντικείμενα Οι εισαγωγές και διαγραφές
Διαβάστε περισσότεραΔομές δεδομένων (2) Αλγόριθμοι
Δομές δεδομένων (2) Αλγόριθμοι Παράγωγοι τύποι (struct) σύνοψη προηγουμένων Πίνακες: πολλές μεταβλητές ίδιου τύπου Παράγωγοι τύποι ή Δομές (struct): ομαδοποίηση μεταβλητών διαφορετικού τύπου struct Student
Διαβάστε περισσότεραΑναφορές, είκτες και Αλφαριθμητικά
Αναφορές, είκτες και Αλφαριθμητικά Ο τελεστής αναφοροποίησης Αναφορές είκτες Πίνακες και δείκτες Ο τελεστής new και delete υναμικοί πίνακες είκτες προς συναρτήσεις Αλφαριθμητικά της C Πίνακες Αλφαριθμητικών
Διαβάστε περισσότεραΚλάσεις και Αντικείµενα
Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 8: C++ ΒΙΒΛΙΟΗΚΗ STL, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές
Διαβάστε περισσότεραΠεριεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23
Περιεχόμενα Λίγα λόγια για αυτή την έκδοση...... 23 Κεφάλαιο 1 Εισαγωγή... 25 O στόχος του βιβλίου και σε ποιους απευθύνεται... 27 Πώς να διαβάσετε αυτό το βιβλίο... 27 Εκπαίδευση από απόσταση... 29 Ιστορική
Διαβάστε περισσότεραυναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 είκτες
υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: είκτες στη C++ Οι τελεστές new και delete Destructors Ορισµός τελεστών κλάσεων Ο δείκτης this ΕΠΛ 132 Αρχές Προγραµµατισµού
Διαβάστε περισσότεραΑντικειµενοστρεφής Προγραµµατισµός
16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη
Διαβάστε περισσότεραυναµικές οµές εδοµένων
υναµικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: υναµικές οµές εδοµένων Γενικά υναµική έσµευση Μνήµης οµή τύπου structure αυτοαναφορικές δοµές Η δήλωση typedef στη C Αναπαράσταση
Διαβάστε περισσότεραΔομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr
Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που
Διαβάστε περισσότεραΔοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης
Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα
Διαβάστε περισσότεραΥπερφόρτωση τελεστών
Υπερφόρτωση τελεστών 19 Νοεμβρίου 2012 1 Γενικά Στα προηγούμενα είδαμε ότι ορίζοντας μία κλάση, ορίζουμε ένα νέο τύπο τον οποίο μπορούμε να χρησιμοποιήσουμε για να δηλώσουμε αντικείμενα αυτής της νέας
Διαβάστε περισσότεραΑπλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή
Απλές Δοµές Δεδοµένων Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος
Διαβάστε περισσότεραΣυλλογές, Στοίβες και Ουρές
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 13η: 30/08/2006 1 Συνδεδεµένες
Διαβάστε περισσότερα5. ΣΥΝΑΡΤΗΣΕΙΣ. (Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29. 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή
(Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29 5. ΣΥΝΑΡΤΗΣΕΙΣ 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή Η συνάρτηση είναι void, δεν επιστρέφει κάποια τιµή. //Oρισµός συνάρτησης χωρίς παραµέτρους // 12.
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Διαφορές Java και C++ ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΙΑΦΟΡΕΣ JAVA C++ Η
Διαβάστε περισσότεραΚεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 8.7 Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 17-1 Εισαγωγή Στις προηγούµενες διαλέξεις µάθαµε πώς να δηλώνουµε, αρχικοποιούµε και να επεξεργαζόµαστε πίνακες. Σήµερα θα µελετήσουµε
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών με C++
Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 17η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Προσθήκη ελέγχου ορίων σε πίνακες χρησιμοποιώντας σχεδιότυπα τάξεων
Διαβάστε περισσότεραιαφάνειες παρουσίασης #5 (β)
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης
Διαβάστε περισσότεραBoost - Boost Graph Library C++ library
Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Boost - Boost Graph Library C++ library Δομές Δεδομένων Τεστέμπασης Αθανάσιος Ε.Τ.Υ. testebasis.thanos@gmail.com Boost (1/2) H Boost δεν
Διαβάστε περισσότεραΣΧΕΔΙΟΤΥΠΑ (TEMPLATES)
ΣΧΕΔΙΟΤΥΠΑ (TEMPLATES) Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Τι είναι τα σχεδιότυπα και που μας εξυπηρετούν Template συναρτήσεις Template κλάσεις Εξειδίκευση σχεδιοτύπων Σχεδιότυπα και
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΚεφάλαιο 10 ο Υποπρογράµµατα
Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,
Διαβάστε περισσότεραΓ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης
Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης Εισαγωγή Στη C++ υπάρχει η δυνατότητα να δηλώσουμε μία συμβολοσειρά ως αντικείμενο, χρησιμοποιώντας τη βιβλιοθήκη . Επειδή οι συμβολοσειρές είναι
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 12η: 30/08/2006 1 Generics
Διαβάστε περισσότεραΕντολές εισόδου - εξόδου. Εισαγωγή στη C++
Εντολές εισόδου - εξόδου Εισαγωγή στη C++ Το πρώτο πρόγραμμα //my first program #include using namespace std; int main(){ cout
Διαβάστε περισσότερα8. Μέθοδοι (Methods)
8. Μέθοδοι (Methods) Χειμερινό εξάμηνο 2012 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Μέθοδοι που παρέχονται από τη τάξη Math του Java API Χρήση στατικών μεθόδων και
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών με C++
Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 5η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Πίνακες ως ορίσματα συναρτήσεων. Τα ορίσματα argc και argv της main.
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών με C++
Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 15η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Σχεδιότυπα συναρτήσεων και τάξεων. Αναπαράσταση δυαδικού δέντρου με
Διαβάστε περισσότεραΑντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT
Αντικειμενοστραφείς Γλώσσες Προγραμματισμού Ιωάννης Παπαδόπουλος Τμήμα Φυσικής, Πανεπιστήμιο Ιωαννίνων Οκτώβριος 2018 1/28 1 (implicit) μετατροπές 2 (Functions) 3 (Pointers) 4 (Arrays) 2/28 (implicit)
Διαβάστε περισσότεραΚλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack
Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΕρώτημα Α 1. Να γράψετε τις εντολές που πραγματοποιούν τα ακόλουθα:
#2 Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος 2016-2017 ΤΕΙ Ηπείρου - Άρτα Δομές Δεδομένων και Αλγόριθμοι (εργαστήριο) Γκόγκος Χρήστος Ερώτημα Α 1. Να γράψετε τις εντολές
Διαβάστε περισσότεραΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ. Διεύθυνση μεταβλητής. Δείκτης
ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ Πρώτα να δούμε τι ακριβώς συμπεριλαμβάνει μια μεταβλητή τύπος Καθορίζει το μέγεθος στην μνήμη σε Bytes τιμή Η αριθμητική τιμή που αποθηκεύεται στην
Διαβάστε περισσότεραΦροντιςτήριο. Linked-List
Φροντιςτήριο Linked-List 1 Linked List Μια linked list είναι μια ακολουθία από ςυνδεδεμένουσ κόμβουσ Κάθε κόμβοσ περιέχει τουλάχιςτον Μια πληροφορία (ή ένα struct) Δείκτη ςτον επόμενο κόμβο τησ λίςτασ
Διαβάστε περισσότεραΕισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#
Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 10: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) Σύγκριση Συνδεδεμένων Λιστών με Πίνακες
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33
ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα
Διαβάστε περισσότεραΠροχωρημένα Θέματα ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ. Γεώργιος Παπαϊωάννου ( )
ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ Γεώργιος Παπαϊωάννου (2015-16) gepap@aueb.gr Περιγραφή: Shared Pointers Νήματα Αποκλειστική πρόσβαση σε πόρους (Mutexes) Move assignment Ο τύπος «συνάρτηση» Lambda functions Τελευταία
Διαβάστε περισσότεραalpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and
alpha Language (1/5) ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language Στην alpha δεν υπάρχει main() συνάρτηση, ο κώδικας ξεκινάει την εκτέλεση από την αρχή του
Διαβάστε περισσότεραΗ Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D.
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 6η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Διαβάστε περισσότεραΣτοίβες - Ουρές. Στοίβα (stack) Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής
Στοίβες - Ουρές Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής οµές εδοµένων 1 Στοίβα (stack) οµή τύπουlifo: Last In - First Out (τελευταία εισαγωγή πρώτη εξαγωγή) Περιορισµένος
Διαβάστε περισσότεραΗ Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 6η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως
Διαβάστε περισσότεραΚλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1
Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΣτοιχειώδης προγραμματισμός σε C++
Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.
Διαβάστε περισσότεραΣυναρτήσεις και Πίνακες
Συναρτήσεις και Πίνακες Συναρτήσεις καθιερωμένης βιβλιοθήκης της C++ Συναρτήσεις οριζόμενες από τον χρήστη Μεταβίβαση κατ αξία Συναρτήσεις void και λογικές συναρτήσεις Μεταβίβαση κατ αναφορά Επιστροφή
Διαβάστε περισσότεραHY-252 Αντικειμενοστραφής Προγραμματισμός. Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης. Ημερομηνία Παράδοσης: 16/11/2012
HY-252 Αντικειμενοστραφής Προγραμματισμός Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης 2 η Σειρά Ασκήσεων Ημερομηνία Παράδοσης: 16/11/2012 Παρακάτω σας δίνονται οι ορισμοί τεσσάρων διαφορετικών
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Δομές Ελέγχου ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές Ελέγχου Εισαγωγή Πριν
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
Λίστες Λίστες - Απλά Συνδεδεμένες Λίστες - Διπλά Συνδεδεμένες Λίστες Είδη Γραμμικών Λιστών Σειριακή Λίστα Καταλαμβάνει συνεχόμενες θέσεις κύριας μνήμης Συνδεδεμένη Λίστα Οι κόμβοι βρίσκονται σε απομακρυσμένες
Διαβάστε περισσότεραΔιάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) - Σύγκριση Συνδεδεμένων Λιστών με Πίνακες
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες
Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραWeek 7: Java Collection Classes
Week 7: Java Collection Classes Υλοποιήσεις Εβδοµάδα 7: Κλάσεις συλλογών δεδοµένων στην Java Τύποι συλλογών δεδοµένων Τεχνικές υλοποίησης linked Σχεδίαση-Ανάπτυξη Εφαρµογών Πληροφορικής Αντώνιος Συµβώνης,
Διαβάστε περισσότερα