Programovanie

Size: px
Start display at page:

Download "Programovanie 3. 2012 2013"

Transcription

1 Programovanie Prednáška STL II. Ing. František Gyárfáš, PhD. Katedra aplikovanej informatiky

2 Ako programovať reálny svet?

3 Ako to dátovo reprezentovať? class PESNICKA { string nazov; string textplusakordy; ; Výhody: Jednoduchá a jasná reprezentácia. Nevýhody: Nutnosť analyzovať pri každom čítaní.

4 Predspracovanie: Oddelenie akordov od textu Vložíme do textu oddeľovače: $-akord, #-fraza Ami$Spatřil jsem kometu, oblohou letěla,# chtěl jsem ji zaspívat, ona mi zmizela# Dmi$zmizela jako laň #G7$u lesa v remízku# C$v očích mi zbylo jen #E7$pár žlutých penízkú.# Ami$Penízky ukryl jsem do hlíny pod dubem,# až příště přiletí, my už tu nebudem,# Dmi$my už tu nebudem, #G7$ach, pýcho marnivá# spatřil jsem kometu, chtěl jsem jí zaspívat.# Ami$O vodě, o trávě, #Dmi$o lese,# G7$o smrti, se kterou smířit #C$nejde se,# Ami$o lásce, o zradě, #Dmi$o světe# E$a o všech lidech, co kdy #E7$žili na téhle#ami$planetě.# Ami$Na hvězdném nádraží cinkají vagóny,# pan Kepler rozepsal nebeské zákony# Dmi$hledal, až nalezl #G7$v hvězdářských triedrech# C$tajemství, která teď #E7$neseme na bedrech.#

5 Ukladanie po riadkoch Ami$Spatřil jsem kometu, oblohou letěla,# chtěl jsem ji zaspívat, ona mi zmizela# Dmi$zmizela jako laň #G7$u lesa v remízku# C$v očích mi zbylo jen #E7$pár žlutých penízkú.# Ami$Penízky ukryl jsem do hlíny pod dubem,# až příště přiletí, my už tu nebudem,# Dmi$my už tu nebudem, #G7$ach, pýcho marnivá# spatřil jsem kometu, chtěl jsem jí zaspívat.# Ami$O vodě, o trávě, #Dmi$o lese,# G7$o smrti, se kterou smířit #C$nejde se,# Ami$o lásce, o zradě, #Dmi$o světe# E$a o všech lidech, co kdy #E7$žili na téhle#ami$planetě.# class PESNICKA { string nazov; string riadky[100]; ; Zlepšenie: Ideálne pre načítavanie. (getline) Ami$Na hvězdném nádraží cinkají vagóny,# pan Kepler rozepsal nebeské zákony# Dmi$hledal, až nalezl #G7$v hvězdářských triedrech# C$tajemství, která teď #E7$neseme na bedrech.# Problémy: Nebezpečná manipulácia s polom.

6 Náhrada poľa čím? Ami$Spatřil jsem kometu, oblohou letěla,# chtěl jsem ji zaspívat, ona mi zmizela# Dmi$zmizela jako laň #G7$u lesa v remízku# C$v očích mi zbylo jen #E7$pár žlutých penízkú.# Ami$Penízky ukryl jsem do hlíny pod dubem,# až příště přiletí, my už tu nebudem,# Dmi$my už tu nebudem, #G7$ach, pýcho marnivá# spatřil jsem kometu, chtěl jsem jí zaspívat.# Ami$O vodě, o trávě, #Dmi$o lese,# G7$o smrti, se kterou smířit #C$nejde se,# Ami$o lásce, o zradě, #Dmi$o světe# E$a o všech lidech, co kdy #E7$žili na téhle#ami$planetě.# class PESNICKA { string nazov; vector<string> riadky; ; Zlepšenie: Nehrozí pretečenie. Ami$Na hvězdném nádraží cinkají vagóny,# pan Kepler rozepsal nebeské zákony# Dmi$hledal, až nalezl #G7$v hvězdářských triedrech# C$tajemství, která teď #E7$neseme na bedrech.# Problémy: Nutnosť analyzovať pri každom čítaní.

7 Ukladanie po frázach Ami$Spatřil jsem kometu, oblohou letěla,# chtěl jsem ji zaspívat, ona mi zmizela# Dmi$zmizela jako laň #G7$u lesa v remízku# C$v očích mi zbylo jen #E7$pár žlutých penízkú.# Ami$Penízky ukryl jsem do hlíny pod dubem,# až příště přiletí, my už tu nebudem,# Dmi$my už tu nebudem, #G7$ach, pýcho marnivá# spatřil jsem kometu, chtěl jsem jí zaspívat.# Ami$O vodě, o trávě, #Dmi$o lese,# G7$o smrti, se kterou smířit #C$nejde se,# Ami$o lásce, o zradě, #Dmi$o světe# E$a o všech lidech, co kdy #E7$žili na téhle#ami$planetě.# class PESNICKA { string nazov; vector<string> frazy; ; Zlepšenie: Zjednodušené čítanie. Ami$Na hvězdném nádraží cinkají vagóny,# pan Kepler rozepsal nebeské zákony# Dmi$hledal, až nalezl #G7$v hvězdářských triedrech# C$tajemství, která teď #E7$neseme na bedrech.# Problémy: Nutnosť oddeľovať akordy od textu pri čítaní.

8 Oddelenie akordov od textu Ami$Spatřil jsem kometu, oblohou letěla,# chtěl jsem ji zaspívat, ona mi zmizela# Dmi$zmizela jako laň #G7$u lesa v remízku# C$v očích mi zbylo jen #E7$pár žlutých penízkú.# Ami$Penízky ukryl jsem do hlíny pod dubem,# až příště přiletí, my už tu nebudem,# Dmi$my už tu nebudem, #G7$ach, pýcho marnivá# spatřil jsem kometu, chtěl jsem jí zaspívat.# Ami$O vodě, o trávě, #Dmi$o lese,# G7$o smrti, se kterou smířit #C$nejde se,# Ami$o lásce, o zradě, #Dmi$o světe# E$a o všech lidech, co kdy #E7$žili na téhle#ami$planetě.# Ami$Na hvězdném nádraží cinkají vagóny,# pan Kepler rozepsal nebeské zákony# Dmi$hledal, až nalezl #G7$v hvězdářských triedrech# C$tajemství, která teď #E7$neseme na bedrech.# class PESNICKA { string nazov; vector<string> akordy; vector<string> texty; ; Zlepšenie: Oddelenie akordov od textu sa vykoná iba raz. Problémy: Ak verš nemá akord, mám problém.

9 Spojenie akordov s textami Ami$Spatřil jsem kometu, oblohou letěla,# chtěl jsem ji zaspívat, ona mi zmizela# Dmi$zmizela jako laň #G7$u lesa v remízku# C$v očích mi zbylo jen #E7$pár žlutých penízkú.# Ami$Penízky ukryl jsem do hlíny pod dubem,# až příště přiletí, my už tu nebudem,# Dmi$my už tu nebudem, #G7$ach, pýcho marnivá# spatřil jsem kometu, chtěl jsem jí zaspívat.# Ami$O vodě, o trávě, #Dmi$o lese,# G7$o smrti, se kterou smířit #C$nejde se,# Ami$o lásce, o zradě, #Dmi$o světe# E$a o všech lidech, co kdy #E7$žili na téhle#ami$planetě.# class FRAZA { string text; string akord; ; class PESNICKA { string nazov; vector<fraza> frazy; ; Ami$Na hvězdném nádraží cinkají vagóny,# pan Kepler rozepsal nebeské zákony# Dmi$hledal, až nalezl #G7$v hvězdářských triedrech# C$tajemství, která teď #E7$neseme na bedrech.# Zlepšenie: Akordy s textami sú bezpečne spárované. Problémy: Chýba informácia o riadkoch.

10 Verše a frázy Ami$Spatřil jsem kometu, oblohou letěla,# chtěl jsem ji zaspívat, ona mi zmizela# Dmi$zmizela jako laň #G7$u lesa v remízku# C$v očích mi zbylo jen #E7$pár žlutých penízkú.# Ami$Penízky ukryl jsem do hlíny pod dubem,# až příště přiletí, my už tu nebudem,# Dmi$my už tu nebudem, #G7$ach, pýcho marnivá# spatřil jsem kometu, chtěl jsem jí zaspívat.# Ami$O vodě, o trávě, #Dmi$o lese,# G7$o smrti, se kterou smířit #C$nejde se,# Ami$o lásce, o zradě, #Dmi$o světe# E$a o všech lidech, co kdy #E7$žili na téhle#ami$planetě.# Ami$Na hvězdném nádraží cinkají vagóny,# pan Kepler rozepsal nebeské zákony# Dmi$hledal, až nalezl #G7$v hvězdářských triedrech# C$tajemství, která teď #E7$neseme na bedrech.# Zlepšenie: Dátová štruktúra odráža štruktúru textu. Problémy: class FRAZA { string text; string akord; ; class VERS { vector<fraza> frazy; ; class PESNICKA { string nazov; vector<vers> verse; ; Neviem, aký zoznam akordov pieseň obsahuje.

11 Pridanie zoznamu akordov Ami$Spatřil jsem kometu, oblohou letěla,# chtěl jsem ji zaspívat, ona mi zmizela# Dmi$zmizela jako laň #G7$u lesa v remízku# C$v očích mi zbylo jen #E7$pár žlutých penízkú.# Ami$Penízky ukryl jsem do hlíny pod dubem,# až příště přiletí, my už tu nebudem,# Dmi$my už tu nebudem, #G7$ach, pýcho marnivá# spatřil jsem kometu, chtěl jsem jí zaspívat.# Ami$O vodě, o trávě, #Dmi$o lese,# G7$o smrti, se kterou smířit #C$nejde se,# Ami$o lásce, o zradě, #Dmi$o světe# E$a Zlepšenie: o všech lidech, co kdy #E7$žili na téhle#ami$planetě.# Ami$Na hvězdném nádraží cinkají vagóny,# pan Samostatný Kepler rozepsal zoznam nebeské akordov. zákony# Dmi$hledal, až nalezl #G7$v hvězdářských triedrech# C$tajemství, která teď #E7$neseme na bedrech.# Problémy: class FRAZA { string text; string akord; ; class VERS { vector<fraza> frazy; ; class PESNICKA { string nazov; vector<vers> verse; vector<string> akordy; ; Zoznam akordov môže obsahuje duplikáty. Zoznam akordov nie je utriedený. Potrebujem: Zoznam, ktorý nepovoľuje duplikáty. Zoznam, ktorý sa automaticky usporiadava.

12 Sekvenčné kontajnery a adaptéry Zoznam, ktorý nepovoľuje duplikáty. Zoznam, ktorý sa automaticky usporiadava. vector je lineárna sekvencia objektov. deque je to fronta s dvoma koncami. list je to obojstranný zreťazený zoznam. Adaptér stack sa správa ako zásobník LIFO (last in, first out). Adaptér queue sa správa ako fronta FIFO (first in, first out). Adaptér priority_queue sa správa ako usporiadaný zásobník.

13 Môžem použiť priority_queue? Ami$Spatřil jsem kometu, oblohou letěla,# chtěl jsem ji zaspívat, ona mi zmizela# Dmi$zmizela jako laň #G7$u lesa v remízku# C$v očích mi zbylo jen #E7$pár žlutých penízkú.# Ami$Penízky ukryl jsem do hlíny pod dubem,# až příště přiletí, my už tu nebudem,# Dmi$my už tu nebudem, #G7$ach, pýcho marnivá# spatřil jsem kometu, chtěl jsem jí zaspívat.# Ami$O vodě, o trávě, #Dmi$o lese,# G7$o smrti, se kterou smířit #C$nejde se,# Ami$o lásce, o zradě, #Dmi$o světe# E$a o všech lidech, co kdy #E7$žili na téhle#ami$planetě.# Ami$Na hvězdném nádraží cinkají vagóny,# pan Kepler rozepsal nebeské zákony# Dmi$hledal, až nalezl #G7$v hvězdářských triedrech# C$tajemství, která teď #E7$neseme na bedrech.# class FRAZA { string text; string akord; ; class VERS { vector<fraza> frazy; ; class PESNICKA { string nazov; vector<vers> verse; priority_queue<string> akordy; ; Zlepšenie: Usporiadaný zoznam akordov. Problémy: Dostanem sa iba k vrchnému akordu.

14 Asociatívne kontajnery Asociatívne kontajnery používajú kľúče a umožňujú ich prostredníctvom rýchly prístup k jednotlivým položkám. set kľúč je samotná hodnota. Obsahuje max. 1 prvok tej istej hodnoty. multiset kľúč je samotná hodnota. Môže obsahovať viacero prvkov tej istej hodnoty. map obsahuje dvojice hodnôt: unikátny kľúč a hodnota. Obsahuje max. 1 prvok s tým istým kľúčom. multimap obsahuje dvojice hodnôt. Umožňuje viac hodnôt s tým istým kľúčom. Položky v asociatívnych kontajneroch sú usporiadané, preto je vždy definovaný spôsob usporiadania, ktorý si vyžaduje porovnávaciu funkciu (predikát).

15 Zoznam akordov ako množina Ami$Spatřil jsem kometu, oblohou letěla,# chtěl jsem ji zaspívat, ona mi zmizela# Dmi$zmizela jako laň #G7$u lesa v remízku# C$v očích mi zbylo jen #E7$pár žlutých penízkú.# Ami$Penízky ukryl jsem do hlíny pod dubem,# až příště přiletí, my už tu nebudem,# Dmi$my už tu nebudem, #G7$ach, pýcho marnivá# spatřil jsem kometu, chtěl jsem jí zaspívat.# Ami$O vodě, o trávě, #Dmi$o lese,# G7$o smrti, se kterou smířit #C$nejde se,# Ami$o lásce, o zradě, #Dmi$o světe# E$a o všech lidech, co kdy #E7$žili na téhle#ami$planetě.# Ami$Na hvězdném nádraží cinkají vagóny,# pan Kepler rozepsal nebeské zákony# Dmi$hledal, až nalezl #G7$v hvězdářských triedrech# C$tajemství, která teď #E7$neseme na bedrech.# class FRAZA { string text; string akord; ; class VERS { vector<fraza> frazy; ; class PESNICKA { string nazov; vector<vers> verse; set<string> akordy; ; Zlepšenie: Množina set akordov nepovoľuje duplikáty. Množina set sa automaticky usporiadava. Problémy:???

16 Problémy: Ako vytvoriť spevník? Spevník by mal obsahovať zoznam pesničiek a množinu akordov, ktoré je potrebné ovládať na zahranie všetkých pesničiek v spevníku. class SPEVNIK { vector<pesnicka> zoznam; set<string> akordy; ; Náročné vyhľadávanie pesničiek. Chýba ochrana pred duplikátmi pesničiek.

17 Čo si vybrať pre pesničky? class SPEVNIK { vector<pesnicka> zoznam; set<string> akordy; ; set kľúč je samotná hodnota. Obsahuje max. 1 prvok tej istej hodnoty. multiset kľúč je samotná hodnota. Môže obsahovať viacero prvkov tej istej hodnoty. map obsahuje dvojice hodnôt: unikátny kľúč a hodnota. Obsahuje max. 1 prvok s tým istým kľúčom. multimap obsahuje dvojice hodnôt. Umožňuje viac hodnôt s tým istým kľúčom.

18 Mapa pesničiek class SPEVNIK { map<string, PESNICKA> spevnik; set<string> akordy; ; Problémy: Nie je možné mať dve rôzne piesne s rovnakým názvom. class SPEVNIK { multimap<string, PESNICKA> spevnik; set<string> akordy; ;

19 Asociatívne kontajnery Asociatívne kontajnery používajú kľúče a umožňujú ich prostredníctvom rýchly prístup k jednotlivým položkám. Položky v asociatívnych kontajneroch sú usporiadané, preto je vždy definovaný spôsob usporiadania, ktorý si vyžaduje porovnávaciu funkciu (predikát).

20 Asociatívny kontajner set Syntax: template <class Kluc, class Predikat> class set ; kľúč Samotná trieda usporiadanie Preddefinovaný predikát: template <class Key, class Compare = less<key> > class set;

21 Konštruktory kontajnera set set<type, predicate> name; set<type, predicate> name(sourceset); Vytvorí prázdnu množinu set. Vytvorí kópiu množiny sourceset. set<type, predicate> name(prvy, posl); Skopíruje elementy zdrojovej množiny od iterátora prvy po iterátor posl.

22 Vkladanie položiek do množiny Metóda insert vkladá novú hodnotu do množiny na miesto určené predikátom. intset.insert(10); V prípade existencie položky s danou hodnotou insert novú položku ignoruje. intset.insert(10); intset.insert(10);

23 Návratová hodnota insert Metóda insert vracia dvojicu pair< set<int>::iterator, bool >. Druhá položka (second) vracia true, ak bol vložený nový prvok a false, ak už sa daný prvok v množine nachádza. Prvá položka (first) je iterátor na nový prvok, príp. iterátor na už existujúci prvok s danou hodnotou. #include <iostream> #include <set> using namespace std; int main () { set<int> myset; set<int>::iterator it; pair< set<int>::iterator, bool > ret; ret = myset.insert(10); string vlozenie = (ret.second == true)? "Prve = " : "Druhe = "; cout << vlozenie << *ret.first << endl; ret = myset.insert(10); it = ret.first; vlozenie = (ret.second == true)? "Prve = " : "Druhe = "; cout << vlozenie << *it << endl;

24 Predikát template<class T> class mensi{ public: bool operator()(t x, T y) { return x < y; ; int main(){ set<int, mensi<int> > intset; intset.insert(10); intset.insert(15); intset.insert(0); intset.insert(30); intset.insert(10); intset.insert(60); set<int, mensi<int> >::iterator it; template<class T> class vacsi{ public: bool operator()(t x, T y) { return x > y; ; int main(){ set<int, vacsi<int> > intset; intset.insert(10); intset.insert(15); intset.insert(0); intset.insert(30); intset.insert(10); intset.insert(60); set<int, vacsi<int> >::iterator it; for (it = intset.begin() ; it!=intset.end(); it++){ cout << *it << " "; for (it = intset.begin() ; it!=intset.end(); it++){ cout << *it << " ";

25 Hádanka: aký predikát pre LIFO template<class T> class LIFO{ public: bool operator()(t x, T y) { return???????????; ; int main(){ set<int, LIFO<int> > intset; intset.insert(10); intset.insert(15); intset.insert(0); intset.insert(30); intset.insert(10); intset.insert(60); set<int, LIFO<int> >::iterator it; for (it = intset.begin() ; it!=intset.end(); it++){ cout << *it << " ";

26 #include <iostream> #include <set> using namespace std; Kontajner multiset multiset množina, ktorá môže obsahovať viac elementov s tou istou hodnotou. int main(){ multiset<char> multiset; multiset.insert('a'); multiset.insert('g'); multiset.insert('0'); multiset.insert('%'); multiset.insert('w'); multiset.insert('w'); multiset.insert('a'); multiset.insert('0'); multiset<char>::iterator iter; cout << "Mnozina multiset: " << endl; for (iter = multiset.begin(); iter!=multiset.end(); iter++){ cout << *iter << " ";

27 Mapy ako asociatívne polia Normálne polia spájajú dve veličiny: index a objekt hodnoty. Mapy sú asociatívne polia. Tiež spájajú dve veličiny: objekt kľúča a objekt hodnoty. Mapy sú vždy usporiadané podľa predikátu usporiadania. template <class Key, class Val, class Predikat = less<key> class mapa; kľúč hodnota usporiadanie samotná trieda

28 Konštruktory kontajnera map map<kluc, Hod, predikat> name; map<kluc, Hod, predikat> name(source); map<kluc, Hod, predikat> name(prvy, posl); Prázdny kontajner map. Kópia kontajnera source. Skopíruje elementy zdrojového kontajnera od iterátora prvy po iterátor posl. Iterátory do kontajnera map obsahujú dvojicu hodnôt (kľúč a hodnota) : map<kluc, Hod>::iterator iter; Kluc k = (*iter).first; // iter->first Hod h = iter->second; // (*iter).second

29 Vkladanie do mapy s insert Do mapy vkladáme nový objekt pomocou metódy insert. charmap.insert(pair<int, char>(6,'v')); Metóda insert má jeden vstupný parameter: pair<kluc,hodnota>() alebo map<kluc,hodnota>::value_type()

30 Návratová hodnota insert Metóda insert vracia objekt, obsahujúci dvojicu hodnôt: iterátor ukazujúci na vloženú položku a informáciu, či bol objekt vložený. pair< map<kluc,hodnota>::iterator, bool > pair<map<int,char>::iterator, bool> ret; ret = charmap.insert(pair<int, char>(6,'v')); ret = charmap.insert(map<int, char>::value_type(6,'v')); Ak mapa už obsahuje položku s daným kľúčom, insert novú hodnotu nevloží, vráti iterátor na už existujúci prvok s daným kľúčom a false.

31 map - operator[] Asociatívny kontajner map má definovaný operator[]. Parameter tohto operátora je kľúč. mnozina[3] Ak element s daným kľúčom sa v kontajneri už nachádza, operátor vracia referenciu na tento element. Ak hodnota s daným kľúčom už existuje, táto hodnota sa prepíše. mnozina[3] = 'A'; Ak hodnota s daným kľúčom ešte neexistuje, do kontajnera sa vloží nový element s danými hodnotami. mnozina[3] = 'B';

32 Kontajner multimap multimap je mapa, ktorá môže obsahovať viac elementov s rovnakým kľúčom. #include <iostream> #include <map> using namespace std; const int MAX = 6; int main() { multimap<int, char> charmap; charmap.insert(multimap<int, char>::value_type(1,'a')); charmap.insert(multimap<int, char>::value_type(2,'x')); charmap.insert(multimap<int, char>::value_type(1,'y')); charmap.insert(multimap<int, char>::value_type(22,'x')); charmap.insert(multimap<int, char>::value_type(2,'b')); charmap.insert(multimap<int, char>::value_type(4,'b')); multimap<int, char>::iterator iter; for (unsigned int i = 0; i < MAX; i++){ iter = charmap.find(i); if (iter == charmap.end()){ cout << "Polozka " << i << " nie je." << endl; else{ while(iter->first == i) { cout << "Polozka s klucom " << i << "-" << iter->second << endl; iter++;

33 Algoritmy pre kontajnery U algoritmov hovoríme transformuj namiesto vykonaj pre všetky prvky v definovanom rozsahu. Algoritmy zvyšujú objektovosť programovania. Algoritmy zvyčajne očakávajú iterátory ukazujúce na prvý a posledný prvok spracovávaného úseku kontajnera. Šanca, že algoritmus je naprogramovaný správne a neobsahuje chyby, je podstatne vyššia, ako u priameho použitia cyklov for, while a pod. Pravidlo rozumného sebapodceňovania Bezpečné Uprednostňujte programovanie volanie algoritmov je krásny pred sen. písaním vlastných cyklov.

34 Generické algoritmy Nemodifikujúce algoritmy Meniace algoritmy Odstraňujúce algoritmy Usporadúvajúce algoritmy Numerické algoritmy Všetky algoritmy sa nachádzajú v namespace std a ich hlavičky sa nachádzajú v: #include <algorithm>

35 Nemodifikujúce algoritmy #include <algorithm> int count(first, last, val); int count_if(first, last, pred); Spočíta výskyt vyhovujúcich elementov od iterátora first po last podľa hodnoty alebo predikátu. Ďalšie algoritmy vracajú iterátor prvého nájdeného elementu podľa zvoleného kritéria: iter = find(first, last, val); iter = find_if(first,last,pred); iter = min(first, last); iter = max(first, last); Vykoná funkciu pre každý element: for_each(first, last, func); Vráti iterátor na prvý element s hodnotou val alebo podľa predikátu pred medzi iterátormi first a last. Vráti iterátor na najmenší (min) alebo najväčší (max) element. Zbehne funkciu func nad všetkými elementami medzi iterátormi first a last. Nemení hodnoty kontajnera.

36 Meniace algoritmy fill(first, last, val); fill_n(first, n, val); generate(first, last, gen); generate_n(first, n, gen); copy(first, last, target); Vloží hodnotou val od first po last. Vloží hodnotou val do n prvkov počínajúc first. Vloží hodnotou od first po last generovanú funkciou gen. Vloží hodnotou do n prvkov počínajúc first generovanú funkciou gen. Skopíruje hodnoty od iterátora first po last do novej pozície od iterátora target. Iterátor target môže byť v tom istom kontajneri, alebo aj v inom.

37 Meniace algoritmy II. replace(first,last,val1,val2); reverse(first, second); random_shuffle(first, second); Nahradí hodnotu val1 s val2 Vymení hodnoty Náhodne prehádže hodnoty

38 Odstraňujúce algoritmy remove(first, last, val); remove_if(first, last, pred); remove_copy(first, last, target, val); remove_copy_if(first, last, target, pred); Odstráni elementy s hodnotou val, ale nezmenší kontajner. Odstráni elementy vyhovujúce predikátu pred, ale nezmenší kontajner. Skopíruje obsah s odstránením kópií elementu s val, ale nezmenší kontajner. Odstráni kópie elementu vyhovujúce predikátu pred, ale nezmenší kontajner. Všetky algoritmy remove_x vracajú iterátor na nový posledný prvok. new_last= remove(first,last,val); new_last je iterátor ukazujúci za nový posledný prvok

39 Úplné odstránenie položiek Je možné privolať metódu kontajnerov erase, ktorá úplne odstráni prvky odstránené algoritmom remove a zmení veľkosť kontajnera. vector<int>::iterator last_iter; last_iter = remove(vect.begin(), vect.end(), 10); vect.erase(last_iter, vect.end()); vect.erase(remove(vect.begin(), vect.end(), 10), vect.end());

40 Usporadúvajúce algoritmy sort(first, last); sort(first,last,greater<int>()) nth_element(first, n_ty, last); partial_sort(first, n_ty,last); merge(first1, last1, first2, last2, result); Usporiada podľa hodnôt. Usporiada s explicitným predikátom. Všetky pred n_ty sú menšie ako n_ty a ostatné väčšie alebo rovne. Usporiada toľko elementov, koľko sa ich zmestí po n_ty element. Spojí dva usporiadané kontajnery do usporiadaného kontajneru result. Väčšina usporadúvajúcich algoritmov má aj verziu s predikátom.

41 Numerické algoritmy #include <numeric> accumulate(first,last,result); accumulate(first,last,result, f); Pripočíta do hodnoty result hodnoty prvkov od first po last. Pripočíta do hodnoty result hodnoty funkcie f aplikovanej od first po last. partial_sum(first,last,vystup); adjacent_difference(first,last, vystup); Vkladá do kontajnera vystup postupné sumy. Vkladá do kontajnera vystup rozdiely susedných hodnôt, pričom prvá hodnota sa nemení.

42 Skúška Podmienka pripustenia ku skúške: Úspešné získanie min. 80 bodov z cvičení (do termínu skúšky). Po vykonaní úspešnej skúšky už nie je dovolené odovzdávať cvičenia. Úspešné spravenie skúšky: Úspešné vyriešenie písomnej skúšky (min. 60 % úspešných testov) Úspešné okamžité ústne obhájenie písomky Odovzdanie a ohodnotenie semestrálneho projektu. Projekt je dovolené odovzdať aj po úspešnej skúške (do ).

43 Hodnotenie na skúške Skúška sa koná vo forme písomnej skúšky za počítačom. Obsahom skúšky je vypracovanie riešenia zadanej úlohy. Forma zadania je podobná forme, akou boli zadané všetky úlohy na cvičeniach. Rozdiel bude v tom, že súčasťou zadanie nebude návod na riešenie úlohy. Minimum na úspešné zvládnutie skúšky bude úspešné zvládnutie 60 % všetkých testov z úlohy (tri skupiny testov). Pri dosiahnutí menej ako 60 % úspešných testov je skúška neúspešná.

44 Termíny skúšok Termíny skúšok budú počas skúšobného obdoba vždy v stredu popoludní od Prihlasovanie sa na skúšku sa bude diať na stránke predmetu a počet účastníkov skúšky bude cca. 25 študentov. Má niekto záujem o vypísanie predtermínu na o 13.00?

45

46 Kontajner set - príklad #include <iostream> #include <set> using namespace std; int main(){ set<int> intset; intset.insert(10); intset.insert(15); intset.insert(0); intset.insert(30); intset.insert(10); intset.insert(60); set<int>::iterator iter; cout << "Prvky mnoziny: " << endl; for (iter=intset.begin(); iter!=intset.end(); iter++){ cout << *iter << endl; getchar();

47 Usporiadanie podľa vloženia #include <iostream> #include <set> using namespace std; template<class T> class Porovnaj{ public: bool operator()(t x, T y) { return false; ; int main(){ multiset<char, Porovnaj<char> > multiset; multiset.insert('a'); multiset.insert('g'); multiset.insert('0'); multiset.insert('&'); multiset.insert('a'); multiset.insert('w'); multiset.insert('&'); multiset.insert('0'); multiset<char, Porovnaj<char> >::iterator iter; cout << "Prvky mnoziny multiset: " << endl; for (iter = multiset.begin(); iter!=multiset.end(); iter++){ cout << *iter << endl; getchar();

48 Príklad na insert #include <iostream> #include <map> using namespace std; void vypis(pair<map<char,int>::iterator,bool> ret){ if (ret.second) { cout << "Vlozil hodnotu " << ret.first->second; cout << " s klucom " << ret.first->first << endl; else { cout << "Hodnota " << ret.first->second; cout << " sa uz nachadza s klucom " << ret.first->first << endl; int main () { map<char,int> mapa; pair<map<char,int>::iterator,bool> ret; ret = mapa.insert(pair<char, int>('a', 10) ); vypis(ret); ret = mapa.insert(pair<char, int>('b', 20) ); vypis(ret); ret = mapa.insert(pair<char, int>('b', 40) ); vypis(ret); ret = mapa.insert(pair<char,int>('a', 30) ); vypis(ret); getchar();

49 Pozor na operator[] #include <iostream> #include <map> using namespace std; int main() { map<int, string> mapa; mapa.insert(pair<int, string>(0, "prva")); mapa.insert(pair<int, string>(2, "druha")); mapa.insert(pair<int, string>(4, "tretia")); cout << "Velkost mapy = " << mapa.size() << endl; map<int, string>::iterator iter; for (iter = mapa.begin(); iter!= mapa.end(); iter++) { cout << " [" << iter->first << "] = " << iter->second; cout << endl; cout << endl << "Velkost mapy = " << mapa.size() << endl; unsigned int SIZE = mapa.size(); for (unsigned int i = 0; i < SIZE; i++){ cout << " [" << i << "] = " << mapa[i] << endl; cout << endl << "Velkost mapy = " << mapa.size() << endl; for (iter = mapa.begin(); iter!= mapa.end(); iter++) { cout << " [" << iter->first << "] = " << iter->second; cout << endl; getchar();

50 Príklad používania mapy #include <iostream> #include <map> using namespace std; int main() { map<string, int> charmap; charmap["prva"] = 1; charmap["druha"] = 2; charmap.insert(map<string, int>::value_type("prva", 11)); charmap["druha"] = 22; charmap["druha"]++; cout << "Obsah mapy: " << endl; map<string, int>::iterator iter; for (iter = charmap.begin(); iter!= charmap.end(); iter++) { cout << iter->first << " --> "; cout << iter->second << endl; getchar(); V akom pôjdu poradí? Aké budú mať hodnoty?

51 #include <iostream> #include <map> using namespace std; Kontajner multimap multimap je mapa, ktorá môže obsahovať viac elementov s rovnakým kľúčom. const int MAX = 6; int main() { multimap<int, char> charmap; charmap.insert(multimap<int, char>::value_type(1,'a')); charmap.insert(multimap<int, char>::value_type(2,'x')); charmap.insert(multimap<int, char>::value_type(1,'y')); charmap.insert(multimap<int, char>::value_type(22,'x')); charmap.insert(multimap<int, char>::value_type(2,'b')); charmap.insert(multimap<int, char>::value_type(4,'b')); multimap<int, char>::iterator iter; for (unsigned int i = 0; i < MAX; i++){ iter = charmap.find(i); if (iter == charmap.end()){ cout << "Polozka " << i << " nie je." << endl; else{ while(iter->first == i) { cout << "Polozka s klucom " << i << "-" << iter->second << endl; iter++; getchar();

52 Príklad: count,find,for_each #include <iostream> #include <set> #include <algorithm> using namespace std; template<class T> void vypis(t iter){ cout << iter << " "; const int MAX = 5; int main(){ multiset<int> kopa; for(unsigned int i = 0; i < MAX; i++){ kopa.insert(i * 10); kopa.insert(i * 20); for_each(kopa.begin(), kopa.end(), vypis<int>); cout << endl<< "Pocet = 0: " << count(kopa.begin(), kopa.end(), 0) << endl; cout << "Pocet = 30: " << count(kopa.begin(), kopa.end(), 30) << endl; cout << "Pocet < 30: " << count_if(kopa.begin(), kopa.end(), bind2nd(less<int>(),30)) << endl; set<int>::iterator iter; iter = find(kopa.begin(), kopa.end(), 30); cout << "Dalsi element za 30:" << *(++iter) << endl; iter = find_if(kopa.begin(), kopa.end(), bind2nd(greater<int>(),50)); cout << "Element > 50:" << *iter << endl; cout << "Dalsi element za > 50:" << *(++iter) << endl; getchar();

53 Príklad meniacich algoritmov #include <iostream> #include <set> #include <algorithm> using namespace std; const int MAX = 5; template<class T> void vypis(t iter){ cout << iter << " "; int main(){ multiset<int> kopa; for(unsigned int i = 0; i < MAX; i++){ kopa.insert(0); multiset<int> kopa2(kopa); fill(kopa.begin(), kopa.end(), 1); for_each(kopa.begin(), kopa.end(), vypis<int>); cout << endl; fill_n(kopa.begin(), 3, 2); for_each(kopa.begin(), kopa.end(), vypis<int>); cout << endl; generate(kopa.begin(), kopa.end(), std::rand); for_each(kopa.begin(), kopa.end(), vypis<int>); cout << endl; copy(kopa.begin(), kopa.end(), kopa2.begin()); for_each(kopa2.begin(), kopa2.end(), vypis<int>); getchar();

54 Príklad meniacich algoritmov #include <iostream> #include <vector> #include <algorithm> using namespace std; const int MAX = 10; template<class T> void vypis(t iter){ cout << iter << " "; int nexti() { static int element = -5; return element++; int main() { vector<int> vect(max, 0); generate(vect.begin(), vect.end(), nexti); cout << "Zoznam: "; for_each(vect.begin(), vect.end(), vypis<int>); reverse(vect.begin(), vect.end()); cout << endl << "Opacne: "; for_each(vect.begin(), vect.end(), vypis<int>); cout << endl << "Nahoda: "; random_shuffle(vect.begin(), vect.end()); for_each(vect.begin(), vect.end(), vypis<int>); getchar();

55 Príklad odstraňovania #include <iostream> #include <vector> #include <algorithm> using namespace std; const int MAX = 8; template<class T> void vypis(t iter){ cout << iter << " "; int main () { int myints[] = {10,20,30,30,20,10,40,20; vector<int> vystup(max); remove(myints, myints + MAX, 30); vector<int>::iterator it; remove_copy(myints, myints + MAX, vystup.begin(), 20); cout << "Vystup obsahuje: " << endl; for (it = vystup.begin(); it!= vystup.end(); ++it) { cout << *it << " "; getchar();

56 Príklad úplného odstránenia #include <iostream> #include <vector> #include <algorithm> using namespace std; const int MAX = 5; template<class T> void vypis(t iter){ cout << iter << " "; int main() { vector<int> vect(max); for(int i = 0; i < MAX; i++){ vect[i] = i; for_each(vect.begin(), vect.end(), vypis<int>); cout << endl << endl; vector<int>::iterator last_iter; last_iter = remove(vect.begin(), vect.end(), 3); for_each(vect.begin(), last_iter, vypis<int>); cout << endl << endl; for_each(vect.begin(), vect.end(), vypis<int>); cout << endl << endl; vect.erase(last_iter, vect.end()); for_each(vect.begin(), vect.end(), vypis<int>); cout << endl << endl; getchar();

57 Príklad pre usporiadania #include <iostream> #include <vector> #include <algorithm> using namespace std; const int MAX = 10; template<class T> void vypis(t iter){ cout << iter << " "; int main() { vector<int> vect(max); for(int i = 0; i < MAX; i++){ vect[i] = i; for_each(vect.begin(), vect.end(), vypis<int>); cout << endl << "Nahoda: "; random_shuffle(vect.begin(), vect.end()); for_each(vect.begin(), vect.end(), vypis<int>); cout << endl << "Po 5 mensie: "; nth_element(vect.begin(), vect.begin() + 5, vect.end()); for_each(vect.begin(), vect.end(), vypis<int>); cout << endl << "Cast usporiadana: "; partial_sort(vect.begin(), vect.begin() + 5, vect.end()); for_each(vect.begin(), vect.end(), vypis<int>); cout << endl << "Cele usporiadane: "; sort(vect.begin(), vect.end()); for_each(vect.begin(), vect.end(), vypis<int>); cout << endl << endl; getchar();

58 Príklad pre spájanie #include <iostream> #include <vector> #include <algorithm> using namespace std; const int MAX = 10; template<class T> void vypis(t iter){ cout << iter << " "; int main() { vector<int> vect(max), vect2(max), vystup(max*2); for(int i = 0; i < MAX; i++){ vect[i] = i * 2; vect2[i] = i * 2 + 1; cout << "Prvy: "; for_each(vect.begin(), vect.end(), vypis<int>); cout << endl << "Druhy: "; for_each(vect2.begin(), vect2.end(), vypis<int>); merge(vect.begin(), vect.end(), vect2.begin(), vect2.end(),vystup.begin()); cout << endl << "Spolu: "; for_each(vystup.begin(), vystup.end(), vypis<int>); random_shuffle(vect.begin(), vect.end()); cout << endl << "Mix: "; for_each(vect.begin(), vect.end(), vypis<int>); merge(vect.begin(), vect.end(), vect2.begin(), vect2.end(),vystup.begin()); cout << endl << "Spolu: "; for_each(vystup.begin(), vystup.end(), vypis<int>); getchar();

Sprievodca aktiváciou zariadenia HikVision

Sprievodca aktiváciou zariadenia HikVision Sprievodca aktiváciou zariadenia HikVision Možnosti aktivácie zariadenia HikVision Aktivácia pomocou web prehliadača: Zariadenia HikVision (IP kamery od verzie firmvéru 5.3.0 a DVR + NVR od verzie firmvéru

More information

Data Structures. value. key. 5 Alpha. 3 Beta. 7 Gamma

Data Structures. value. key. 5 Alpha. 3 Beta. 7 Gamma Data Structures key value 5 Alpha 10 2 7 5 1 4 9 3 6 8 3 Beta 7 Gamma Sequence Associative e.g., C-Arrays, std::vector, std::deque, std::list e.g., C-Arrays, std::map, std::set, std::unordered_map Data

More information

Príručka na vyplňovanie

Príručka na vyplňovanie UniCredit Bank Czech Republic and Slovakia, a.s., organizačná zložka: UniCredit Bank Czech Republic and Slovakia, a.s., pobočka zahraničnej banky Príručka na vyplňovanie Príkazu na úhradu a Hromadného

More information

Sledovanie čiary Projekt MRBT

Sledovanie čiary Projekt MRBT VYSOKÉ UČENÍ TECHNIC KÉ V BRNĚ BRNO UNIVERSITY OF T ECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNO LOGIÍ ÚSTAV AUTOMATIZA CE A MĚŘÍCÍ TECHNIKY FACULTY OF ELECTRICAL ENGINEERING AND COMUNICATION

More information

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STAVEBNÍ ÚSTAV BETONOVÝCH A ZDĚNÝCH KONSTRUKCÍ FACULTY OF CIVIL ENGINEERING INSTITUTE OF CONCRETE AND MASONRY STRUCTURES PRIESTOROVÝ

More information

Rychlý průvodce instalací Rýchly sprievodca inštaláciou

Rychlý průvodce instalací Rýchly sprievodca inštaláciou CZ SK Rychlý průvodce instalací Rýchly sprievodca inštaláciou Intuos5 Poznámka: chraňte svůj tablet. Vyměňujte včas hroty pera. Bližší informace najdete v Uživatelském manuálu. Poznámka: chráňte svoj

More information

: Architectural Lighting : Interiérové svietidlá

: Architectural Lighting : Interiérové svietidlá SEC Lighting : Architectural Lighting : nteriérové svietidlá : Shape Harmony : Tradition The company SEC accepts with enthusiasm the challenges of continuously changing world. n our opinion, luminaries

More information

Bevezetés a C++ Standard Template Library-be

Bevezetés a C++ Standard Template Library-be C++, 1/ 33 Bevezetés a C++ Standard Template Library-be Pataki Norbert 2013. május 17. C++, 2/ 33 STL STL vs. STL implementáció Konténerek Funktorok Algoritmusok Iterátorok STL Konténerek C++, 3/ 33 Szekvenciális:

More information

LV5WDR Wireless Display Receiver Rýchla príručka

LV5WDR Wireless Display Receiver Rýchla príručka LV5WDR Wireless Display Receiver Rýchla príručka 1 1. Predstavenie Wireless display receiver S Wireless display receiver (ďalej len WDR) môžete jednoducho zobrazovať multimediálny obsah (videá, fotografie,

More information

CENOVÁ NABÍDKA. jednatc~ Krmivo pro laboratorní zvířata" k veřejné soutěži. Krnov, 17.09.2014. Ing. Jiří Bauer. Předmět zakázky:

CENOVÁ NABÍDKA. jednatc~ Krmivo pro laboratorní zvířata k veřejné soutěži. Krnov, 17.09.2014. Ing. Jiří Bauer. Předmět zakázky: CENOVÁ NABÍDKA k veřejné soutěži Předmět zakázky: Krmivo pro laboratorní zvířata" Krnov, 17.09.2014 Ing. Jiří Bauer jednatc~ Obsah cenové nabídky:!.identifikace uchazeče výběrového řízení str.2 2.Cenová

More information

How to program a MapReduce cluster

How to program a MapReduce cluster How to program a MapReduce cluster TF-IDF step by step Ján Súkeník xsukenik@is.stuba.sk sukenik08@student.fiit.stuba.sk TF-IDF potrebujeme pre každý dokument počet slov frekvenciu každého slova pre každé

More information

C++ tutorial. C++ tutorial

C++ tutorial. C++ tutorial Introduction I I will assume that you know some basics of C++: # include < iostream > int main ( void ) { std :: cout

More information

Integrating the C++ Standard Template Library Into the Undergraduate Computer Science Curriculum

Integrating the C++ Standard Template Library Into the Undergraduate Computer Science Curriculum Integrating the C++ Standard Template Library Into the Undergraduate Computer Science Curriculum James P. Kelsh James.Kelsh@cmich.edu Roger Y. Lee lee@cps.cmich.edu Department of Computer Science Central

More information

Kozmické poasie a energetické astice v kozme

Kozmické poasie a energetické astice v kozme Kozmické poasie a energetické astice v kozme De otvorených dverí, Košice 26.11.2008 Ústav experimentálnej fyziky SAV Košice Oddelenie kozmickej fyziky Karel Kudela kkudela@kosice.upjs.sk o je kozmické

More information

Môže sa to stať aj Vám - sofistikované cielené hrozby Ján Kvasnička

Môže sa to stať aj Vám - sofistikované cielené hrozby Ján Kvasnička Môže sa to stať aj Vám - sofistikované cielené hrozby Ján Kvasnička Territory Account Manager Definícia cielených hrozieb Široký pojem pre charakterizovanie hrozieb, cielených na špecifické entity Často

More information

Search Algorithms. 2501ICT/7421ICTNathan. René Hexel. Semester 1, School of Information and Communication Technology Griffith University

Search Algorithms. 2501ICT/7421ICTNathan. René Hexel. Semester 1, School of Information and Communication Technology Griffith University 2501ICT/7421ICTNathan School of Information and Communication Technology Griffith University Semester 1, 2012 Outline 1 Overview Many Search Methods Exist choose one that meets time/space requirements

More information

An Incomplete C++ Primer. University of Wyoming MA 5310

An Incomplete C++ Primer. University of Wyoming MA 5310 An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages

More information

!T =!Mobile=== Nastavenia dátových a multimediálnych služieb pre multifunkčné zariadenia s operačným systémom Windows Mobile 5.0 NASTAVENIE MMS 1 /18

!T =!Mobile=== Nastavenia dátových a multimediálnych služieb pre multifunkčné zariadenia s operačným systémom Windows Mobile 5.0 NASTAVENIE MMS 1 /18 Nastavenia dátových a multimediálnych služieb pre multifunkčné zariadenia s operačným systémom Windows Mobile 5.0 Nastavenie je možné vykonať manuálnym resetom zariadenia, pričom všetky nastavenie sa vrátia

More information

C++ - Advanced Programming with STL

C++ - Advanced Programming with STL C++ - Advanced Programming with STL Length: 5 days Description: With this course students will learn the advanced features of the C++ standard template library (STL). The course covers techniques for extending

More information

Creating a Standard C++ Program in Visual Studio C January 2013

Creating a Standard C++ Program in Visual Studio C January 2013 Creating a Standard C++ Program in Visual Studio C++ 10.0 January 2013 ref: http://msdn.microsoft.com/en-us/library/ms235629(v=vs.100).aspx To create a project and add a source file 1 1. On the File menu,

More information

Object-Oriented Programming. Lecture 8 Dr Piotr Cybula

Object-Oriented Programming. Lecture 8 Dr Piotr Cybula Object-Oriented Programming Lecture 8 Dr Piotr Cybula Standard Template Library (STL) input/output streams: iostream, fstream, sstream, iomanip string management: string standard

More information

University of Illinois at Urbana-Champaign Department of Computer Science. First Examination

University of Illinois at Urbana-Champaign Department of Computer Science. First Examination University of Illinois at Urbana-Champaign Department of Computer Science First Examination CS 225 Data Structures and Software Principles Fall 2007 7p-9p, Thursday, October 4 Name: NetID: Lab Section

More information

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 2: Basic Elements of C++

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 2: Basic Elements of C++ C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 2: Basic Elements of C++ Objectives In this chapter, you will: Become familiar with the basic components of a C++ program,

More information

CSI33 Data Structures

CSI33 Data Structures Outline Department of Mathematics and Computer Science Bronx Community College November 25, 2015 Outline Outline 1 Chapter 12: C++ Templates Outline Chapter 12: C++ Templates 1 Chapter 12: C++ Templates

More information

Introduction to Data Structures Using the Standard Template Library

Introduction to Data Structures Using the Standard Template Library 17 Introduction to Data Structures Using the Standard Template Library To appreciate the distinction between the Standard Template Library (STL) and data structures in the abstract sense. To understand

More information

FORM 1 (Please put your name, section # (10am- 001/2pm-002, and form # on the scantron!!!!) CS 161 Exam I:

FORM 1 (Please put your name, section # (10am- 001/2pm-002, and form # on the scantron!!!!) CS 161 Exam I: FORM 1 (Please put your name, section # (10am- 001/2pm-002, and form # on the scantron!!!!) CS 161 Exam I: True (A)/False(B) (2 pts each): 1. The following statement is legal: cout >> Hello, my name is

More information

Comp181 Midterm Examination, Fall Name Surname: Number: 90 min. 18/11/09

Comp181 Midterm Examination, Fall Name Surname: Number: 90 min. 18/11/09 Comp181 Midterm Examination, Fall 09 10 Name Surname: Number: 90 min. 18/11/09 Answer ALL off the following questions. 1.What does the term hardware refer to? a. The relative difficulty of programming

More information

CONTEMPORARY POSSIBILITIES OF MODELING OF THE PROBLEMS OF VEHICLE TRACK INTERACTION

CONTEMPORARY POSSIBILITIES OF MODELING OF THE PROBLEMS OF VEHICLE TRACK INTERACTION ROCZNIKI INŻYNIERII BUDOWLANEJ ZESZYT 8/2008 Komisja Inżynierii Budowlanej Oddział Polskiej Akademii Nauk w Katowicach CONTEMPORARY POSSIBILITIES OF MODELING OF THE PROBLEMS OF VEHICLE TRACK INTERACTION

More information

CS1020E: DATA STRUCTURES AND ALGORITHMS I

CS1020E: DATA STRUCTURES AND ALGORITHMS I CS1020E: DATA STRUCTURES AND ALGORITHMS I Tutorial 1 Basic C++, OOP Problem Solving (Week 3, starting 22 August 2016) 1. Evaluation Order (Note: You can use any other C++ code editor/compiler). Examine

More information

Searching and Sorting Arrays

Searching and Sorting Arrays L E S S O N S E T 8 Searching and Sorting Arrays PURPOSE PROCEDURE 1. To introduce the concept of a search routine 2. To introduce the linear and binary searches 3. To introduce the concept of a sorting

More information

Cpt S 223. School of EECS, WSU

Cpt S 223. School of EECS, WSU Abstract Data Types 1 Topics Abstract Data Types (ADTs) Some basic ADTs: Lists Stacks Queues 2 Primitive Data Type vs. Abstract Data Types Primitive DT: ADT: programmer progra ammer Interface (API) e.g.,

More information

Engineering Problem Solving with C++, Etter/Ingber

Engineering Problem Solving with C++, Etter/Ingber Engineering Problem Solving with C++, Etter/Ingber Chapter 3 Control Structures 1 Control structures Algorithm Development Conditional Expressions Selection Statements Repetition Statements Structuring

More information

WLA-5000AP. Quick Setup Guide. English. Slovensky. Česky. 802.11a/b/g Multi-function Wireless Access Point

WLA-5000AP. Quick Setup Guide. English. Slovensky. Česky. 802.11a/b/g Multi-function Wireless Access Point 802.11a/b/g Multi-function Wireless Access Point Quick Setup Guide 1 5 Česky 9 Important Information The AP+WDS mode s default IP address is 192.168.1.1 The Client mode s default IP is 192.168.1.2 The

More information

Data Structures and Algorithms. Lab 1. Hands on Data Structures Using C++ Stacks and Queues

Data Structures and Algorithms. Lab 1. Hands on Data Structures Using C++ Stacks and Queues Data Structures and Algorithms Lab 1 Hands on Data Structures Using C++ Stacks and Queues Dr. Rabie A. Ramadan Notes: Students must read this document before the lab and make their code ready for compilation.

More information

Návod k použití: Boxovací stojan DUVLAN s pytlem a hruškou kód: DVLB1003

Návod k použití: Boxovací stojan DUVLAN s pytlem a hruškou kód: DVLB1003 Návod na použitie: Boxovací stojan DUVLAN s vrecom a hruškou kód: DVLB1003 Návod k použití: Boxovací stojan DUVLAN s pytlem a hruškou kód: DVLB1003 User manual: DUVLAN with a boxing bag and a speed bag

More information

Tutorial 9 Income Tax Calculator Application: Introducing the switch Multiple-Selection Statement

Tutorial 9 Income Tax Calculator Application: Introducing the switch Multiple-Selection Statement Tutorial 9 Income Tax Calculator Application: Introducing the switch Multiple-Selection Statement Outline 9.1 Test-Driving the Income Tax Calculator Application 9.2 Introducing the switch Multiple-Selection

More information

Advanced C++ Programming

Advanced C++ Programming Advanced C++ Programming Course ID CPP110 Course Description The comprehensive, five-day course consists of three modules. A preliminary module reviews topics, including inheritance, the ANSI C++ Standard

More information

My Passport Ultra Metal Edition

My Passport Ultra Metal Edition My Passport Ultra Metal Edition Prvotriedne úložisko Príručka používateľa Externý pevný disk Príručka používateľa My Passport Ultra Metal Edition Servis a technická podpora spoločnosti WD Ak narazíte na

More information

PORUCHY A OBNOVA OBALOVÝCH KONŠTRUKCIÍ BUDOV - Podbanské 2012

PORUCHY A OBNOVA OBALOVÝCH KONŠTRUKCIÍ BUDOV - Podbanské 2012 PORUCHY A OBNOVA OBALOVÝCH KONŠTRUKCIÍ BUDOV Podbanské 2012 CIEĽ A ZAMERANIE KONFERENCIE : Cieľom konferencie je poskytnúť priestor pre prezentovanie nových a aktuálnych výsledkov vedeckej a výskumnej

More information

Engineering Problem Solving with C++, Etter

Engineering Problem Solving with C++, Etter Engineering Problem Solving with C++, Etter Chapter 7 Strings 12-11-13 1 Strings Character Strings The string Class. 2 C style strings functions defined in cstring CHARACTER STRINGS 3 C Style Character

More information

Case Study: Intersection of Sets

Case Study: Intersection of Sets Case Study: Intersection of Sets In algebra, the intersection of two sets is defined as a new set that contains all the values common to both sets. For instance, consider the following two sets, A and

More information

Rogue Wave Standard C++ Library User's Guide, Tutorial, and Class Reference

Rogue Wave Standard C++ Library User's Guide, Tutorial, and Class Reference Rogue Wave Standard C++ Library User's Guide, Tutorial, and Class Reference Rogue Wave Software Corvallis, Oregon USA i Rogue Wave Standard C++ Library User's Guide and Tutorial for Rogue Wave's implementation

More information

Not exactly C (NXC) Príručka programátora

Not exactly C (NXC) Príručka programátora Not exactly C (NXC) Príručka programátora Manuál k verzii 1.0.1 b33 10. októbra, 2007 John Hansen preklad: 3. augusta 2009 Pavel Petrovič robotika.sk Obsah 1 Úvod...1 2 Jazyk NXC...2 2.1 Lexikálne pravidlá...2

More information

Standard C++ Library User Guide and Tutorial

Standard C++ Library User Guide and Tutorial Copyright 1996 Rogue Wave Software If you are accessing this for the first time, please read the licensing statement. Standard C++ Library also has a Class Reference. Standard C++ Library User Guide and

More information

Postup pre zistenie adries MAC a vytvorenie pripojenia. v OS Windows

Postup pre zistenie adries MAC a vytvorenie pripojenia. v OS Windows 1 Postup pre zistenie adries MAC a vytvorenie pripojenia v OS Windows Obsah: a) Zistenie hardwarovych adries MAC Windows 10 str. 2 Windows 8.1 str. 4 Windows 7 str. 6 Windows Vista str. 8 Windows XP str.

More information

Cours de C++ Utilisations des conteneurs

Cours de C++ Utilisations des conteneurs Cours de C++ Utilisations des conteneurs Cécile Braunstein cecile.braunstein@lip6.fr 1 / 18 Introduction Containers - Why? Help to solve messy problems Provide useful function and data structure Consistency

More information

Singly Linked Lists and Chains

Singly Linked Lists and Chains Chapter 4 Linked Lists Lecture 7-1 Singly Linked Lists and Chains Representing Chains in C++ Template Class Chain Circular Lists Available Space Lists Linked Stacks and Queues Polynomials Equivalence Classes

More information

Control Structures in C++: Selection and Repetition Statements

Control Structures in C++: Selection and Repetition Statements Control Structures in C++: Selection and Repetition Statements 1. Log in to your account as usual and start up the Bloodshed Dev C/C++ System as described in Lab No. 1. Click on File New Source File. 2.

More information

Viega Visign Cenník 2014

Viega Visign Cenník 2014 Viega Visign Cenník 2014 Ceny sú uvedené vrátane DPH Viega Eco Plus: Podomietková splachovacia nádržka na zabudovanie do odľahčených stien. Akčný balík Viega Eco Plus: prvok Viega Eco Plus + biela ovládacia

More information

A modest STL tutorial

A modest STL tutorial A modest STL tutorial By Jak Kirman I am using a software tool called hyperlatex to create this document. The tutorial is also available in compressed postscript form. For those wanting to install a copy

More information

Lecture 4 Notes: Arrays and Strings

Lecture 4 Notes: Arrays and Strings 6.096 Introduction to C++ January 10, 2011 Massachusetts Institute of Technology John Marrero Lecture 4 Notes: Arrays and Strings 1 Arrays So far we have used variables to store values in memory for later

More information

Comp151. Definitions & Declarations

Comp151. Definitions & Declarations Comp151 Definitions & Declarations Example: Definition /* reverse_printcpp */ #include #include using namespace std; int global_var = 23; // global variable definition void reverse_print(const

More information

Pracovná skupina 1 Energetický management a tvorba energetických plánov mesta

Pracovná skupina 1 Energetický management a tvorba energetických plánov mesta Pracovná skupina 1 Energetický management a tvorba energetických plánov mesta Metodológia a podpora poskytovaná v rámci Dohovoru primátorov a starostov Skúsenosti českých miest Skúsenosti mesta Litoměřice

More information

Object-Oriented Programming, Iouliia Skliarova

Object-Oriented Programming, Iouliia Skliarova Object-Oriented Programming, Iouliia Skliarova Data types define the way you use the storage (memory) in the programs. By specifying a data type, you tell the sompiler how to create a particular piece

More information

Web of Science a ďalšie nástroje na Web of Knowledge

Web of Science a ďalšie nástroje na Web of Knowledge Web of Science a ďalšie nástroje na Web of Knowledge Enikő Tóth Szász, Customer Education Specialist eniko.szasz@thomsonreuters.com http://webofknowledge.com http://wokinfo.com Cyklus výskumu Nápad Objavenie

More information

ARP,TCP,IP utility -zjednodusene a rychle Jiri Kubina jiri.kubina@osu.cz Ver. 1.0 leden 2006

ARP,TCP,IP utility -zjednodusene a rychle Jiri Kubina jiri.kubina@osu.cz Ver. 1.0 leden 2006 ARP,TCP,IP utility -zjednodusene a rychle Jiri Kubina Ver. 1.0 leden 2006 Obsah 1.ip 2.ifconfig 3.route 4.arp 5.arping 6.netstat 7.ethtool Upozorneni: U popisovanych prikazu nejsou uvedeny vsechny parametry

More information

Iterators. node UML diagram. function objects. MCS 360 Lecture 12 Introduction to Data Structures Jan Verschelde, 20 September 2010

Iterators. node UML diagram. function objects. MCS 360 Lecture 12 Introduction to Data Structures Jan Verschelde, 20 September 2010 Iterators s 1 s 2 MCS 360 Lecture 12 Introduction to Data Structures Jan Verschelde, 20 September 2010 Iterators s 1 s 2 Linked s s A linked list is a sequence of nodes connected by pointers. We distinguish

More information

Programming Fundamental. Instructor Name: Lecture-2

Programming Fundamental. Instructor Name: Lecture-2 Programming Fundamental Instructor Name: Lecture-2 Today s Lecture What is Programming? First C++ Program Programming Errors Variables in C++ Primitive Data Types in C++ Operators in C++ Operators Precedence

More information

KONTAKT CHEMIE Kontakt PCC

KONTAKT CHEMIE Kontakt PCC Cleaner and flux remover for printed circuit boards KONTAKT CHEMIE Kontakt PCC Technical Data Sheet KONTAKT CHEMIE Kontakt PCC Page 1/2 Description: Mixture of organic solvents. General properties and

More information

aneb Perfektní minulost.

aneb Perfektní minulost. aneb Perfektní minulost. 2013 se v angličtině nazývá Past Perfect. Používáme jej tehdy, potřebujeme-li jasně vyjádřit, že nějaký děj proběhl ještě dříve než minulý děj, o kterém hovoříme. Podívejme se

More information

JEDNOFÁZOVÝ STATICKÝ ELEKTROMER NA VIACSADZBOVÉ MERANIE ČINNEJ ENERGIE

JEDNOFÁZOVÝ STATICKÝ ELEKTROMER NA VIACSADZBOVÉ MERANIE ČINNEJ ENERGIE JEDNOFÁZOVÝ STATICKÝ ELEKTROMER NA VIACSADZBOVÉ MERANIE ČINNEJ ENERGIE AMS B1x-xAx Applied Meters, a. s. Budovateľská 50, 080 01 Prešov Tel.: +421-51-758 11 69, Fax: +421-51-758 11 68 Web: www.appliedmeters.com,

More information

! " # $ %& %' ( ) ) *%%+, -..*/ *%%+ - 0 ) 1 2 1

!  # $ %& %' ( ) ) *%%+, -..*/ *%%+ - 0 ) 1 2 1 !" #$%&%'())*%%+,-..*/*%%+- 0 )12 1 *!" 34 5 6 * #& ) 7 8 5)# 97&)8 5)# 9 : & ; < 5 11 8 1 5)=19 7 19 : 0 5)=1 ) & & >) ) >) 1? 5)= 19 7 19 : # )! #"&@)1 # )? 1 1#& 5)=19719:# 1 5)=9 7 9 : 11 0 #) 5 A

More information

C++ String Variables. 12. C++ Strings. The standard C++ library provides an object string type to complement the string literals used earlier:

C++ String Variables. 12. C++ Strings. The standard C++ library provides an object string type to complement the string literals used earlier: C++ String Variables 1 The standard C++ library provides an object string type to complement the string literals used earlier: string Name1, Name2; // must #include A string variable may be assigned

More information

Summary of basic C++-commands

Summary of basic C++-commands Compiling Summary of basic C++-commands To compile a C++-program, you can use either g++ or c++. e.g. g++ -o executable filename.out sourcefilename.cc c++ -o executable filename.out sourcefilename.cc g++

More information

Data Structures and Algorithms(3)

Data Structures and Algorithms(3) Ming Zhang Data Structures and Algorithms Data Structures and Algorithms(3) Instructor: Ming Zhang Textbook Authors: Ming Zhang, Tengjiao Wang and Haiyan Zhao Higher Education Press, 2008.6 (the "Eleventh

More information

Adjusted/Modified by Nicole Tobias. Chapter 2: Basic Elements of C++

Adjusted/Modified by Nicole Tobias. Chapter 2: Basic Elements of C++ Adjusted/Modified by Nicole Tobias Chapter 2: Basic Elements of C++ Objectives In this chapter, you will: Become familiar with functions, special symbols, and identifiers in C++ Explore simple data types

More information

Selection: if Statement

Selection: if Statement : if Statement The simplest selection structure in C++ is the if statement. Syntactically: 1 if The Boolean expression must be enclosed in parentheses, and

More information

Last not not Last Last Next! Next! Line Line Forms Forms Here Here Last In, First Out Last In, First Out not Last Next! Call stack: Worst line ever!

Last not not Last Last Next! Next! Line Line Forms Forms Here Here Last In, First Out Last In, First Out not Last Next! Call stack: Worst line ever! ECE 551 C++ Programming, Data structures, and Algorithms Abstract Data Type: Stack Last In First Out (LIFO) 1 2 2 1 4 3 1 3 4 Stacks in Programming Worst line ever! 5 3 1 5 Stacks are not useful for waiting

More information

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON PROBLEM SOLVING WITH SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON Addison Wesley Boston San Francisco New York London

More information

Podpora počas behu. Runtime Environments. Ján Šturc. Zima 2010

Podpora počas behu. Runtime Environments. Ján Šturc. Zima 2010 Podpora počas behu Runtime Environments Ján Šturc Zima 2010 Zahrnuje: Správu pamäti Volanie funkcií a procedúr Adresáciu dátových štruktúr Štandardné (zabudované funkcie) Podporu pre tabuľku symbolov Zima

More information

LEG BANDAGE Bandáž dolných končatín

LEG BANDAGE Bandáž dolných končatín LEG BANDAGE Bandáž dolných končat atín AIM OF THE LESSON Being able to manage the communication with the patient while applying leg bandage. Zvládnu dnuť komunikáciu s pacientom pri prikladaní bandáže

More information

Short Notes on Dynamic Memory Allocation, Pointer and Data Structure

Short Notes on Dynamic Memory Allocation, Pointer and Data Structure Short Notes on Dynamic Memory Allocation, Pointer and Data Structure 1 Dynamic Memory Allocation in C/C++ Motivation /* a[100] vs. *b or *c */ Func(int array_size) double k, a[100], *b, *c; b = (double

More information

Kontejnery. Březen 2008

Kontejnery. Březen 2008 Seminář Java Kontejnery Radek Kočí Fakulta informačních technologií VUT Březen 2008 Radek Kočí Seminář Java Kontejnery 1/ 53 Téma přednášky Kontejnery For-each loop Autoboxing Radek Kočí Seminář Java Kontejnery

More information

Why you shouldn't use set (and what you should use instead) Matt Austern

Why you shouldn't use set (and what you should use instead) Matt Austern Why you shouldn't use set (and what you should use instead) Matt Austern Everything in the standard C++ library is there for a reason, but it isn't always obvious what that reason is. The standard isn't

More information

Basic rules for programming in C++

Basic rules for programming in C++ Basic rules for programming in C++ Professors of Programming 1 September 1st 2015 1 Preamble These rules were originally written for the subject Programming 1, and have been applied (with changes) since

More information

The American University in Cairo Computer Science & Engineering Department CSCE 106 Fundamentals of Computer Science

The American University in Cairo Computer Science & Engineering Department CSCE 106 Fundamentals of Computer Science Dr. KHALIL The American University in Cairo Computer Science & Engineering Department CSCE 106 Fundamentals of Computer Science Problem Solving & Assignment (2) Programming in C++ Group 1 Write a C++ program

More information

ING (L) Société d Investissement à Capital Variable 3, rue Jean Piret, L-2350 Luxembourg R.C.S.: Luxembourg B č. 44.873 (ďalej ako spoločnosť )

ING (L) Société d Investissement à Capital Variable 3, rue Jean Piret, L-2350 Luxembourg R.C.S.: Luxembourg B č. 44.873 (ďalej ako spoločnosť ) ING (L) Société d Investissement à Capital Variable 3, rue Jean Piret, L-2350 Luxembourg R.C.S.: Luxembourg B č. 44.873 (ďalej ako spoločnosť ) Oznam pre akcionárov 1) Správna rada spoločnosti rozhodla

More information

A First Book of C++ Chapter 2 Data Types, Declarations, and Displays

A First Book of C++ Chapter 2 Data Types, Declarations, and Displays A First Book of C++ Chapter 2 Data Types, Declarations, and Displays Objectives In this chapter, you will learn about: Data Types Arithmetic Operators Variables and Declarations Common Programming Errors

More information

Fill in the Blanks: ACTS National Resource Center, Pune Question Bank Advanced C++ & Data Structures (Solved)

Fill in the Blanks: ACTS National Resource Center, Pune Question Bank Advanced C++ & Data Structures (Solved) Fill in the Blanks: 1. A is a special member function used to initialize the data members of a class. (constructor) 2. The default access for members of a class is. (private) 3. Member functions of a class

More information

Each statement is ended by a semi-colon (;). The formatting is free.

Each statement is ended by a semi-colon (;). The formatting is free. Example 1 cout x; double err, tol=1e-12, x1; int it, maxit=100; it = 0; err = tol + 1; while( err > tol && it < maxit ) x1 = x - (x-cos(x))/(1+sin(x)); err = fabs(

More information

Python to C/C++ Fall 2011

Python to C/C++ Fall 2011 Python to C/C++ Fall 2011 1. Main Program Python: Program code is indented after colon : def main(): body of program C/C++: Have more setup overhead. C: Both require #include directives to access libraries

More information

Creating and Using a Library with Microsoft Visual C Matthew B. Gately

Creating and Using a Library with Microsoft Visual C Matthew B. Gately Creating and Using a Library with Microsoft Visual C++ 2005 Matthew B. Gately February 27, 2007 Table of Contents Introduction... 3 What Is a Library... 3 Why Use a Library... 3 The Two File Strategy...

More information

Online C++ FAQ/Tutorial and Advanced Questions

Online C++ FAQ/Tutorial and Advanced Questions Online C++ FAQ/Tutorial and Advanced Questions Alexis Angelidis January 11, 2005 1 Quick notes to C programmers instead of macros use const or enum to define constants inline to prevent function call overload

More information

Quiz 4 Solutions EECS 211: FUNDAMENTALS OF COMPUTER PROGRAMMING II. 1 Q u i z 4 S o l u t i o n s

Quiz 4 Solutions EECS 211: FUNDAMENTALS OF COMPUTER PROGRAMMING II. 1 Q u i z 4 S o l u t i o n s Quiz 4 Solutions Q1: What value does function mystery return when called with a value of 4? int mystery ( int number ) { if ( number

More information

Simple C++ Programs. Engineering Problem Solving with C++, Etter/Ingber. Dev-C++ Dev-C++ Windows Friendly Exit. The C++ Programming Language

Simple C++ Programs. Engineering Problem Solving with C++, Etter/Ingber. Dev-C++ Dev-C++ Windows Friendly Exit. The C++ Programming Language Simple C++ Programs Engineering Problem Solving with C++, Etter/Ingber Chapter 2 Simple C++ Programs Program Structure Constants and Variables C++ Operators Standard Input and Output Basic Functions from

More information

Sports tournament. Introduction to Programming (in C++) Advanced examples. Sports tournament. Sports tournament

Sports tournament. Introduction to Programming (in C++) Advanced examples. Sports tournament. Sports tournament Introduction to Programming (in C++) Advanced examples Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC Design a program that reads the participants in a knockout tournament

More information

Which of the following is the correct operator to compare two variables? A. := B. = C. equal D. ==

Which of the following is the correct operator to compare two variables? A. := B. = C. equal D. == Group 1 Question 1. What is the correct value to return to the operating system upon the successful completion of a program? A. -1 B. 1 C. 0 D. Programs do not return a value. Question 2. What is the only

More information

and Queues 13.1 Using Linked Lists 2 Random Fact 13.1: Reverse Polish Notation Implementing Linked Lists 6

and Queues 13.1 Using Linked Lists 2 Random Fact 13.1: Reverse Polish Notation Implementing Linked Lists 6 C h a p t e r 13 Lists, Stacks, and Queues C h a p t e r G o a l s To become familiar with the list, stack, and queue data types To understand the implementation of linked lists To understand the efficiency

More information

Unit 4. Sorting, Searching, and Complexity 4.1 Sorting and Searching

Unit 4. Sorting, Searching, and Complexity 4.1 Sorting and Searching Unit 4. Sorting, Searching, and Complexity 4.1 Sorting and Searching With this module, the course introduces some of the basic concepts of sorting and searching. Readings: Required: Weiss, chapter 9 and

More information

CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team

CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we learned about the ADT Priority Queue. A

More information

Distinguishing STL Search Algorithms

Distinguishing STL Search Algorithms This is a pre-publication draft of the article I wrote for the December 2001 issue of C/C++ Users Journal. Pre-publication means this is what I sent to CUJ, but it may not be exactly the same as what appeared

More information

CSCI-1200 Data Structures Fall 2015 Lecture 10 Vector Iterators & Linked Lists

CSCI-1200 Data Structures Fall 2015 Lecture 10 Vector Iterators & Linked Lists CSCI-1200 Data Structures Fall 2015 Lecture 10 Vector Iterators & Linked Lists Review from Lecture 9 Explored a program to maintain a class enrollment list and an associated waiting list. Unfortunately,

More information

! instance variable: a member variable in a class. ! static variable: one variable shared among all. ! static member function:

! instance variable: a member variable in a class. ! static variable: one variable shared among all. ! static member function: Ch 14: More About Classes 14.1 Instance and Static Members instance variable: a member variable in a class. Each object (instance) has its own copy. CS 2308 Spring 2014 Jill Seaman 1 static variable: one

More information

COS 397 Programming competitions (week 01) Prerequisites: Programming in C++ Fundamental Data Structure COS 460 Algorithms ()

COS 397 Programming competitions (week 01) Prerequisites: Programming in C++ Fundamental Data Structure COS 460 Algorithms () COS 397 Programming competitions (week 01) Prerequisites: Programming in C++ Fundamental Data Structure COS 460 Algorithms () Some Books: Steven Halim, Felix Halim. Completive Programming. A Handbook for

More information

WK29B / WK29W. Bluetooth Wireless Slim Keyboard. User manual ( 2 5 ) Uživatelský manuál ( 6 10) Užívateľský manuál (11 15)

WK29B / WK29W. Bluetooth Wireless Slim Keyboard. User manual ( 2 5 ) Uživatelský manuál ( 6 10) Užívateľský manuál (11 15) WK29B / WK29W Bluetooth Wireless Slim Keyboard User manual ( 2 5 ) Uživatelský manuál ( 6 10) Užívateľský manuál (11 15) 1. Installing the batteries The EVOLVEO WK29B / WK29W keyboard uses two AAA alkaline

More information

Reading and Writing to Files

Reading and Writing to Files PIC 10A File I/O Reading and Writing to Files Good news! If you understand cin/cout you are already halfway to understanding reading and writing to files. cin and cout are examples of stream objects that

More information

8.2 Transformace, množinové operace

8.2 Transformace, množinové operace 8.2. TRANSFORMACE, MNOŽINOVÉ OPERACE 8.2 Transformace, množinové operace 8.2.1 Transformace Posunutí, otočení a změna rozměrů umožňují efektivní práci s objekty. Je jednodušší umístit objekt v požadovaných

More information

CpSc212 Goddard Notes Chapter 6. Yet More on Classes. We discuss the problems of comparing, copying, passing, outputting, and destructing

CpSc212 Goddard Notes Chapter 6. Yet More on Classes. We discuss the problems of comparing, copying, passing, outputting, and destructing CpSc212 Goddard Notes Chapter 6 Yet More on Classes We discuss the problems of comparing, copying, passing, outputting, and destructing objects. 6.1 Object Storage, Allocation and Destructors Some objects

More information

Common Syntax and Semantic Errors

Common Syntax and Semantic Errors C H A P T E R 2 Common Syntax and Semantic Errors 2.1 CHAPTER OBJECTIVES To understand the fundamental characteristics of syntax and semantic errors To be able to identify specific common syntax and semantic

More information

Final Exam Review. CS 1428 Fall Jill Seaman. Final Exam

Final Exam Review. CS 1428 Fall Jill Seaman. Final Exam Final Exam Review CS 1428 Fall 2011 Jill Seaman 1 Final Exam Friday, December 9, 11:00am to 1:30pm Derr 241 (here) Closed book, closed notes, clean desk Comprehensive (covers entire course) 25% of your

More information