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

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

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

: 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

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

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

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

!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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

! " # $ %& %' ( ) ) *%%+, -..*/ *%%+ - 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Jazyk C# (seminář 8)

Jazyk C# (seminář 8) Jazyk C# (seminář 8) Pavel Procházka KMI 12. listopadu 2014 Na co je dobré XML? Deklarativní jazyk reprezentující čitelně data Snadná práce s konfiguračními soubory a ukládání do souboru Human readeble

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

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

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

! 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

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

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

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

Prestige 660HN-T3A Príručka k rýchlej inštalácii splittra a smerovača (routra)

Prestige 660HN-T3A Príručka k rýchlej inštalácii splittra a smerovača (routra) Prestige 660HN-T3A Príručka k rýchlej inštalácii splittra a smerovača (routra) Volajte na našu zákaznícku linku: 02/208 28 208 Prestige 660HN-T3A Príručka k rýchlej inštalácii splittra a smerovača (routra)

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

Chapter 2: Basic Elements of C++

Chapter 2: Basic Elements of C++ 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 Discover how a program evaluates

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

CS101 Computer programming and utilization

CS101 Computer programming and utilization CS101 Computer programming and utilization Dr Deepak B Phatak Subrao Nilekani Chair Professor Department of CSE, Kanwal Rekhi Building IIT Bombay Lecture 3, Basic features of C++ Tuesday, 2 August 2011

More information

Basics of I/O Streams and File I/O

Basics of I/O Streams and File I/O Basics of This is like a cheat sheet for file I/O in C++. It summarizes the steps you must take to do basic I/O to and from files, with only a tiny bit of explanation. It is not a replacement for reading

More information

Basics of C++ and object orientation in OpenFOAM

Basics of C++ and object orientation in OpenFOAM Basics of C++ and object orientation in OpenFOAM To begin with: The aim of this part of the course is not to teach all of C++, but to give a short introduction that is useful when trying to understand

More information

Queue Implementations

Queue Implementations Queue Implementations as double 1 2 as double MCS 360 Lecture 17 Introduction to Data Structures Jan Verschelde, 1 October 2010 Queue Implementations as double 1 2 as double a circular as double A can

More information

Splicing Maps and Sets

Splicing Maps and Sets Document number: N3586 Date: 2013-03-17 Project: Programming Language C++ Reference: N3485 Reply to: Alan Talbot cpp@alantalbot.com Howard Hinnant howard.hinnant@gmail.com Related Documents Splicing Maps

More information

Chapter 2: Problem Solving Using C++

Chapter 2: Problem Solving Using C++ Chapter 2: Problem Solving Using C++ 1 Objectives In this chapter, you will learn about: Modular programs Programming style Data types Arithmetic operations Variables and declaration statements Common

More information

Chapter 3 Basic Input & Output

Chapter 3 Basic Input & Output Chapter 3 Basic Input & Output 3-1 Basic Output in C++ cout is a predefined variable in C++ that indicates you are going to output a stream of characters to an output device. cout uses an operator called

More information

CSCI 123 INTRODUCTION TO PROGRAMMING CONCEPTS IN C++

CSCI 123 INTRODUCTION TO PROGRAMMING CONCEPTS IN C++ Brad Rippe CSCI 123 INTRODUCTION TO PROGRAMMING CONCEPTS IN C++ Recursion Recursion CHAPTER 14 Overview 14.1 Recursive Functions for Tasks 14.2 Recursive Functions for Values 14.3 Thinking Recursively

More information

Timetable MSR+CEZ CIRCUIT TROPHY & FIA GT SERIES 2014

Timetable MSR+CEZ CIRCUIT TROPHY & FIA GT SERIES 2014 FIA CENTRAL EUROPEAN ZONE CIRCUIT TROPHY 2014 (CEZ) SLOVAKIA RING 21. 24.8.2014 ZÁKLADNÉ INFORMÁCIE GENERAL INFORMATION CONTACT INFORMATION SLOVAKIA RING AGENCY, s.r.o. Orechová Potôň 800 930 02 Slovakia

More information

Stacks & Queues. Data structures and Algorithms

Stacks & Queues. Data structures and Algorithms Stacks & Queues Data structures and Algorithms Acknowledgement: These slides are adapted from slides provided with Data Structures and Algorithms in C++ Goodrich, Tamassia and Mount (Wiley, 2004) Outline

More information

Upozorňujeme,že můžete formáty pro čtečky převádět ON-LINE na internetu do formátu PDF apod.

Upozorňujeme,že můžete formáty pro čtečky převádět ON-LINE na internetu do formátu PDF apod. Dobrý den, děkujeme za Nákup,níže máte odkazy pro bezplatné stažení.knihy jsou v archivech PDF(nepotřebujete čtečku e-knih),txt(nepotřebujete čtečku e-knih), a dále pro čtečky : soubory typu: PDB,MOBI,APNX

More information

The University of Alabama in Huntsville Electrical and Computer Engineering CPE 112 01 Test #4 November 20, 2002. True or False (2 points each)

The University of Alabama in Huntsville Electrical and Computer Engineering CPE 112 01 Test #4 November 20, 2002. True or False (2 points each) True or False (2 points each) The University of Alabama in Huntsville Electrical and Computer Engineering CPE 112 01 Test #4 November 20, 2002 1. Using global variables is better style than using local

More information

CSCI 123 Introduction to Programming Concepts in C++

CSCI 123 Introduction to Programming Concepts in C++ CSCI 123 Introduction to Programming Concepts in C++ Brad Rippe Functions Top Down Design Applications Top-Down Design Browser Program Top Down Design Browser User Interface Thread Pool Cache Manager Update

More information

CSCI-B 565 DATA MINING Project Report for K-means Clustering algorithm Computer Science Core Fall 2012 Indiana University

CSCI-B 565 DATA MINING Project Report for K-means Clustering algorithm Computer Science Core Fall 2012 Indiana University CSCI-B 565 DATA MINING Project Report for K-means Clustering algorithm Computer Science Core Fall 2012 Indiana University Jayesh Kawli jkawli@indiana.edu 09/17/2012 1. Examining Wolberg s breast cancer

More information

()A Crash Course in Programming with C++ and the Ubuntu O.S. June 8, / 47

()A Crash Course in Programming with C++ and the Ubuntu O.S. June 8, / 47 A Crash Course in Programming with C++ and the Ubuntu O.S. Dr. Daniel A. Ray MCS Dept UVa-Wise June 8, 2010 ()A Crash Course in Programming with C++ and the Ubuntu O.S. June 8, 2010 1 / 47 Outline What

More information

Programmer-defined Functions

Programmer-defined Functions Programmer-defined Functions Development of simple functions using value and reference parameters JPC and JWD 2002 McGraw-Hill, Inc. Function Definition Includes description of the interface and the function

More information

C++ Support for Abstract Data Types

C++ Support for Abstract Data Types Topics C++ Support for Abstract Data Types Professor Department of EECS d.schmidt@vanderbilt.edu Vanderbilt University www.cs.wustl.edu/schmidt/ (615) 343-8197 Describing Objects Using ADTs Built-in vs.

More information

Shunyata research MOC s DPH

Shunyata research  MOC s DPH Shunyata research www.shunyata.com MOC s DPH Power Distributor Sieťové filtre 240V CE EUR Séria Hydra - α Alpha series V1 Hydra α M 6 v1 skladom 6 EU Schuko, C19/ 20A/100A, Peak 80kA 2 750 Séria HYDRA

More information

Boolean Expressions, Conditions, Loops, and Enumerations. Precedence Rules (from highest to lowest priority)

Boolean Expressions, Conditions, Loops, and Enumerations. Precedence Rules (from highest to lowest priority) Boolean Expressions, Conditions, Loops, and Enumerations Relational Operators == // true if two values are equivalent!= // true if two values are not equivalent < // true if left value is less than the

More information

Helpful C++ Transitions. Systems Programming

Helpful C++ Transitions. Systems Programming Helpful C++ Transitions A Few Helpful Slides #ifndef Objects using Classes 2 Avoiding Duplicate Headers #ifndef PRODUCT_H #define PRODUCT_H #endif 3 A Node Class Class Node { public: Node (string s); private:

More information

C++ Basics. C++ Basics: Names: Identifiers. Names: Identifiers. Display 2.1 A C++ Program (1 of 2) Display 2.1 A C++ Program (2 of 2)

C++ Basics. C++ Basics: Names: Identifiers. Names: Identifiers. Display 2.1 A C++ Program (1 of 2) Display 2.1 A C++ Program (2 of 2) C++ Basics C++ Basics: 2.1 Variables and Assignments Variables and Assignments Input and Output Data Types and Expressions Simple Flow of Control Program Style A C++ variable can hold a number or other

More information

IBM Security Framework: Identity & Access management, potreby a riešenia.

IBM Security Framework: Identity & Access management, potreby a riešenia. Juraj Polak IBM Security Framework: Identity & Access management, potreby a riešenia. Nová doba inteligentná infraštruktúra Globalizácia a globálne dostupné zdroje Miliardy mobilných zariadení s prístupom

More information

Chapter 8. Arithmetic in C++

Chapter 8. Arithmetic in C++ Christian Jacob Chapter 8 Arithmetic in C++ 8.1 The C++ Vocabulary 8.2 Variables and Types 8.2.1 Data Objects 8.2.2 Variables 8.2.3 Declaration of Variables 8.3 Elementary C++ Data Types 8.3.1 Integers

More information

A linear structure is an ordered (e.g., sequenced) arrangement of elements.

A linear structure is an ordered (e.g., sequenced) arrangement of elements. Lists, Stacks, and Queues 1 A linear structure is an ordered (e.g., sequenced) arrangement of elements. There are three common types of linear structures: list stack queue random insertion and deletion

More information

CHAPTER 4 ESSENTIAL DATA STRUCTRURES

CHAPTER 4 ESSENTIAL DATA STRUCTRURES CHAPTER 4 ESSENTIAL DATA STRUCTURES 72 CHAPTER 4 ESSENTIAL DATA STRUCTRURES In every algorithm, there is a need to store data. Ranging from storing a single value in a single variable, to more complex

More information

Pohlavné choroby v SR 2005

Pohlavné choroby v SR 2005 E D Í C I A Z D R A V O T N Í C K A Š T A T I S T I K A Pohlavné v SR 2005 Venereal Diseases in the Slovak Republic 2005 Ročník 2006 ZŠ-1/2006 Obsah Úvod...5 Vývoj počtu ochorení na pohlavné... 9 Vývoj

More information

1. Constants. 2. Variables. 3. Reserved words or key words. 4. Constants. Character set in C

1. Constants. 2. Variables. 3. Reserved words or key words. 4. Constants. Character set in C Character set in C We should use only the following characters in writing a C program. These characters can be combined to create C words. Alphabet: A, B, C, D.. Z, a, b, c, d..z Numeric digits: 0, 1,

More information

Passing 1D arrays to functions.

Passing 1D arrays to functions. Passing 1D arrays to functions. In C++ arrays can only be reference parameters. It is not possible to pass an array by value. Therefore, the ampersand (&) is omitted. What is actually passed to the function,

More information

7.7 Case Study: Calculating Depreciation

7.7 Case Study: Calculating Depreciation 7.7 Case Study: Calculating Depreciation 1 7.7 Case Study: Calculating Depreciation PROBLEM Depreciation is a decrease in the value over time of some asset due to wear and tear, decay, declining price,

More information

Qt Signals and Slots. Olivier Goffart. October 2013

Qt Signals and Slots. Olivier Goffart. October 2013 Qt Signals and Slots Olivier Goffart October 2013 About Me About Me QStyleSheetStyle Itemviews Animation Framework QtScript (porting to JSC and V8) QObject, moc QML Debugger Modularisation... About Me

More information

The Fundamentals of C++

The Fundamentals of C++ The Fundamentals of C++ Basic programming elements and concepts JPC and JWD 2002 McGraw-Hill, Inc. Program Organization Program statement Definition Declaration Action Executable unit Named set of program

More information