Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ Ενότητα: Latex Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης Τμήμα: Οικονομικών Επιστημών
Απλή χρήση διανύσματος στη C++
Ένα απλό παράδειγμα τρήζης διανύζμαηος: ηα ηεηράγωνα ηων αριθμών [0,4]. Παραηηρείζηε πως ηοποθεηούνηαι ένα ένα ηα ζηοιτεία ζηο διάνσζμα: v.push_back(). και πως βρίζκοσμε ηο μέγεθος ηης διανύζμαηος: v.size(). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include <iostream> #include <vector> using namespace std; int main() unsigned int i; vector<int> v; for (i=0; i < 5; ++i) v.push_back(i*i); for (i=0; i < v.size(); ++i) cout << i << " " << v[i] << endl; return 0;
Εισαγωγή (insert) και διαγραφή (erase) στοιχείων διανύσματος στη C++
Αλ θαη ζπλήζωο ηα λέα ζηνηρεία ελόο δηαλύζκαηνο πξνζηίζεληαη ζην ηέινο (push_back()) ππάξρεη ε δπλαηόηεηα πξνζζήθεο λέωλ ζηνηρείωλ ζε νπνηαδήπνηε ζέζε κε ηε ζπλάξηεζε insert(). Επίζεο, ππάξρεη ε δπλαηόηεηα δηαγξαθήο ζηνηρείωλ κε ηε ζπλάξηεζε erase(). Δείηε έλα απιό παξάδεηγκα πνπ αθνινπζεί θαη θάληε δηάθνξεο παξαιιαγέο, γηα λα θαηαιάβεηε ζε βάζνο ηη ζπκβαίλεη. Πξνζέμηε πωο ρξεζηκνπνηείηαη ν επαλαιήπηεο (iterator) ν νπνίνο είλαη δείθηεο. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 #include <iostream> #include <vector> using namespace std; int main() unsigned int i; vector<char> v; // itinialize for (i=0; i < 5; ++i) v.push_back('a' + i); for (i=0; i < v.size(); ++i) cout << v[i] << " "; cout << endl << endl; vector<char>::iterator p = v.begin() + 2; // insert v.insert(p, 3, 'X'); for (i=0; i < v.size(); ++i) cout << v[i] << " "; cout << endl << endl; // erase v.erase(p, p+2); for (i=0; i < v.size(); ++i) cout << v[i] << " "; cout << endl << endl; v.erase(p, v.end()); for (i=0; i < v.size(); ++i) cout << v[i] << " "; cout << endl << endl;
48 49 return 0; Η ξνή ηνπ πξνγξάκκαηνο έρεη ωο εμήο: 1. Καηαζθεπάδεηαη έλα δηάλπζκα ραξαθηήξωλ κε 5 ζηνηρεία: a,b,c,d,e 2. Δεκηνπξγείηαη ν δείθηεο p πνπ δείρλεη ζηελ ηξίηε ζέζε ηνπ δηαλύζκαηνο 3. Γίλεηαη εηζαγωγή 3 ραξαθηήξωλ X πξηλ από ηε ζέζε p 4. Δηαγξάθνληαη δύν ζηνηρεία ζηε ζέζε p 5. Δηαγξάθνληαη ηα ζηνηρεία από ηε ζέζε p ωο ην ηέινο ηνπ δηαλύζκαηνο
Εμβαδόν ορθογωνίου, ένα απλό παράδειγμα κλάσης στη C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <iostream> using namespace std; /* οριζμός ηης κλάζης ορθογφνίοσ */ class Rectangle /* ιδιφηικές μεηαβληηές ηοσ ορθογφνίοσ */ private: double Width; double Height; /* δημόζιες ζσναρηήζεις/μέθοδοι */ public: double GetWidth(); /* ηο πλάηος */ double GetHeight(); /* ηο ύυος */ void SetWidth(double x); /* οριζμός ηοσ πλάηοσς */ void SetHeight(double x); /* οριζμός ηοσ ύυοσς */ double GetArea(); /* ηο εμβαδόν */ 19 ; /* προζοτή, θέλει ερφηημαηικό! */ 20 21 /* οριζμοί ζσναρηήζεφν */ 22 double Rectangle::GetWidth() 23 24 return Width; /* ιδιφηική μεηαβληηή ηης καηηγορίας Rectangle */ 25 26 27 double Rectangle::GetHeight() 28 29 return Height; /* ιδιφηική μεηαβληηή ηης καηηγορίας Rectangle 30 */ 31 32 33 void Rectangle::SetWidth(double x) 34 35 Width = x; 36 37 38 void Rectangle::SetHeight(double x) 39 40 Height = x; 41 42 43 44 double Rectangle::GetArea() 45 46 return Width*Height; 47 48 49 /* κσρίφς μέρος ηοσ προγράμμαηος */ 50 51 int main() 52 53 double x; /* βοηθηηική μεηαβληηή για ανάγνφζη πλάηοσς 54 και ύυοσς */ 55 Rectangle A; /* ηο A είναι ένα ορθογώνιο */ 56 57 /* Λήυη από ηο STDIN πλάηοσς και ύυοσς */ 58 cout << "Δώζε ηο πλάηος : "; 59 cin >> x; 60 A.SetWidth(x); /* πλάηος */ 61 cout << "Δώζε ηο ύυος : ";
62 63 64 65 66 67 68 69 cin >> x; A.SetHeight(x); /* ύυος */ /* ηύπφζε ζηο STDOUT ηο εμβαδόν ηοσ ορθογφνίοσ */ cout << "\n"; cout << "Ορθογώνιο Α " << A.GetWidth() << "x" << A.GetHeight(); cout << "με επιθάνεια= " << A.GetArea() << endl; return 0;
Ταξινόμηση στοιχείων διανύσματος στη C++
Με ηην πποζθήκη ηηρ βιβλιοθήκηρ αλγοπίθμων (algorithm) γίνεηαι εύκολα μια ζειπά από ππάξειρ ζε διανύζμαηα όπωρ είναι η ηαξινόμηζη. Εδώ δίνεηαι ένα απλό παπάδειγμα ειζαγωγήρ ζηοισείων από ηο STDIN και έξοδορ ηος διανύζμαηορ ππιν και μεηά ηην ηαξινόμηζη: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() unsigned int i; float x; vector<int> v; while (cin>>x) v.push_back(x); cout << endl; for (i=0; i < v.size(); ++i) cout << v[i] << " "; cout << endl << endl; sort(v.begin(), v.end()); for (i=0; i < v.size(); ++i) cout << v[i] << " "; cout << endl << endl; return 0;
Το μήκος του διανύσματος size() στη C++
Ένα απλό παπάδειγμα σπήζηρ διανύζμαηορ και ςπολογιζμόρ ηος μήκοςρ ηος (πόζα ζηοισεία έσει) με ηη μέθοδο size. Το μέγεθορ ηηρ διανύζμαηορ v.size() είναι μεηαβληηό και εξαπηάηαι από ηο πόζα ζηοισεία έσει κάθε θοπά ηο διάνςζμα. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <iostream> #include <vector> using namespace std; int main() unsigned int i; vector<int> v; for (i=0; i < 5; ++i) v.push_back(i*i); cout << (int) v.size() << endl; return 0;
Ανοικτά Ακαδημαϊκά Μαθήματα Πανεπιστήμιο Ιωαννίνων Τέλος Ενότητας
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Ιωαννίνων» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Σημειώματα Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Ιωαννίνων, Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης. «Ηλεκτρονικοί Υπολογιστές IΙΙ. Latex». Έκδοση: 1.0. Ιωάννινα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://ecourse.uoi.gr/course/view.php?id=1066. Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού - Παρόμοια Διανομή, Διεθνής Έκδοση 4.0 [1] ή μεταγενέστερη. [1] https://creativecommons.org/licenses/by-sa/4.0/.