Seminář C++ 11. cvičení STL, Trolltech Ing. Jan Mikulka.

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Standardní knihovní funkce pro práci s textovými řetězci
ÚVOD DO C++ 3 TŘÍDY a objekty - POKRAČOVÁNÍ
Vstup a výstup Ing. Lumír Návrat  katedra informatiky, A-1018 
Programování v C jazyku - SEMINÁŘ
Vlastní skript může být umístěn: v hlavičce stránky v těle stránky
Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka.
Vstup a výstup doc. Dr. Ing. Miroslav Beneš  katedra informatiky, A-1007 
Pascal - příklady.
Programování 2 Cvičení 5.
Rozdělení registrů.
Pole, ukazatele a odkazy
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Algoritmy I. Cvičení č. 10.
Algoritmy I Cvičení č. 1.
Otázky k absolutoriu HW 1 - 5
Programování v C++ Cvičení.
Principy překladačů Běhová podpora Jakub Yaghob. Běhová podpora Statická podpora jazyka Překladač Interface na knihovny Hlavičkové soubory Dynamická podpora.
● SWIG - Simplified Wrapper and Interface Generator ● + google a diskusní fóra ● nástroj zjednodušující (a sjednocující)
Algoritmizace a programování
C++0x stručný náhled na nadcházející revizi standardu programovacího jazyka C++ (ISO/IEC 14882) Jan Ringoš.
Seminář C++ Zadání projektů.
Seminář C++ 9. cvičení Šablony Ing. Jan Mikulka. Šablony ► template – vzory, podle kterých může překladač tvořit skupiny podobných tříd nebo funkcí, které.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
PB161 – Programování v jazyce C++ Objektově Orientované Programování
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
Současný svět Projekt č. CZ /3. 1
Ing. Jan Mittner Základy MVC 2. Rozšíření layoutu 3. helpery 4. Bootstrap a přepis URL adres 2.
Seminář C++ 4. cvičení Objekty Ing. Jan Mikulka. Co je objekt ► obraz třídy i instance ► třída – definovaná za pomocí klíčového slova class ► instance.
6. cvičení Polymorfismus
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Rozdělení registrů.
Cvičení.
B. Miniberger, BIVŠ Praha 2009
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze
Objektově orientované programování - cvičení 1
Gymnázium prof. Jana Patočky Jindřišská Praha 1 „Praha & EU: Investujeme do vaší.
Metodika objektového přístupu při tvorbě překladačů. Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
STRING A UKAZATELE. Co to je řetězec? Řetězec v Javě je samostatný objekt. Je konstantní, co znamená, že jednou vytvořený řetězec nelze změnit. Chceme-li.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Pokročilé programování v C++ (část B)
Ukazatele, řetězce Přednáška č. 3. Ukazatele  Ukazatel (pointer) – typ o velikosti 4 bajty (v 32bit. systémech) pro uložení adresy objektu na který ukazuje.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
ZÁKLADNÍ POJMY. ZDROJOVÝ TEXT PROGRAMU Tvoří: klíčová slova komentáře identifikátory.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Práce se soubory a řetězci Přednáška č. 9. Práce se soubory v C (1)  Knihovna #include  Knihovna #include  Ukazatel FILE *stream;  Otevření souboru.
POSLOUPNOST test. ZKUSTE ODPOVĚDĚT Co je to komentář? Poznámky, které nám pomohou pochopit, když se k programu vrátíme po delší době, co jsme chtěli tou,
PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA:
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
SOFTWAROVÁ PODPORA PRO VYTVÁŘENÍ FUZZY MODELŮ Knihovna fuzzy procedur Ing. Petr Želasko, VŠB-TU Ostrava.
Počítače a programování 2
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Y36PJC Programování v jazyce C/C++
Výukový materiál zpracován v rámci projektu
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Programování v jazyce C++
Oblast platnosti identifikátoru (1)
Informatika pro ekonomy přednáška 4
Programování v jazyce C++
C# přehled vlastností.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Informatika pro ekonomy přednáška 4
Transkript prezentace:

Seminář C cvičení STL, Trolltech Ing. Jan Mikulka

STL ► Standard Template Library ► makra, globální proměnné, datové typy

Funkce podle hlavičkových souborů ► ►  nabízí funkce sloužící k provádění operací na prvcích kontejnerů pomocí iterátorů ► ►  makro testující podmínku, není-li splněna, přeruší program ► ►  funkce pro operace v komplexním oboru čísel ► ►  test znaků na písmena / čísla / malá / velká /...

Funkce podle hlavičkových souborů ► ►  funkce, které slouží ke zpracování chyb ► ►  funkční objekty (instance tříd) s přetíženým operátorem (), lze použít jako typ ► ►  obsahuje manipulátory s parametrem sloužící k formátování vstupu a výstupu ► ►  obsahuje manipulátory bez parametru pro formátování vstupu a výstupu a proudové třídy

Funkce podle hlavičkových souborů ► ►  obsahuje proudovou třídu istream ► ►  obsahuje šablony iterátorů a funkce s iterátory ► ►  funkce a makra určující národní prostředí ► ►  přetížené funkce pro klasifikaci a konverzi znaků

Funkce podle hlavičkových souborů ► ►  matematické funkce ► ►  alokace dočasné paměti, iterátory ► ►  dynamické přidělování paměti ► ►  numerické výpočty pomocí operátorů

Funkce podle hlavičkových souborů ► ►  obsahuje třídu ostream a několik manipulátorů ► ►  makra a datové typy pro nelokální skoky ► ►  funkce a konstanty pro zpracování signálů ► ►  makra pro práci s funkcemi s proměnným počtem parametrů

Funkce podle hlavičkových souborů ► ►  funkce pro práci s proudy / datovými proudy ► ►  alokace paměti, operace s programem, převody znaků ► ►  funkce pro práci s řetězci ► ►  funkce času, počet tiků od startu procesu

Funkce podle hlavičkových souborů ► ►  matematické funkce pro množiny prvků ►, ►,  nástroje pro práci s 16-bitovými znaky

STL - třídy ► Kontejnery – implementují nejpoužívanější modely zpracování a ukládání dat – množiny, zásobníky. ► Iterátory – slouží k jednoduchému přístupu k prvkům v kontejnerech ► Proudové třídy – řízení datových proudů ► Locale – přizpůsobení národním zvyklostem ► Matematické třídy – valarray (paralelní výpočty), complex ► Diagnostické třídy – umožňují identifikaci typu v době běhu programu (výhodné u ukazatelů a referencí, zpracování výjimek) ► Další pomocné třídy – dynamická alokace paměti,...

Příklad na třídu valarray #include #include using namespace std; void printarray(ostream &s, valarray &array) { for (int i = 0; i < array.size(); i++) for (int i = 0; i < array.size(); i++) s << array[i] << " "; s << array[i] << " "; s<<endl; s<<endl;} int main(int argc, char* argv[]) { int ibuf1[10] = {0,1,2,3,4,5,6,7,8,9}; int ibuf1[10] = {0,1,2,3,4,5,6,7,8,9}; int ibuf2[10] = {0,1,2,3,4,5,6,7,8,9}; int ibuf2[10] = {0,1,2,3,4,5,6,7,8,9}; valarray array1(ibuf1,10); valarray array1(ibuf1,10); valarray array2(ibuf2,10); valarray array2(ibuf2,10); printarray(cout, array1); printarray(cout, array1); printarray(cout, array2); printarray(cout, array2); valarray sum = array1 + array2; valarray sum = array1 + array2; printarray(cout, sum); printarray(cout, sum); getchar(); getchar(); return 0; return 0;}

Příklad na třídu queue int main(int argc, char* argv[]) { queue Q; queue Q; Q.push(8); Q.push(8); Q.push(7); Q.push(7); Q.push(6); Q.push(6); Q.push(2); Q.push(2); cout << "Pocet prvku ve fronte: " << Q.size() << endl; cout << "Pocet prvku ve fronte: " << Q.size() << endl; cout << "Vybiram element : " << Q.front() << " z fronty." << endl; cout << "Vybiram element : " << Q.front() << " z fronty." << endl; Q.pop(); Q.pop(); cout << "Pocet prvku ve fronte: " << Q.size() << endl; cout << "Pocet prvku ve fronte: " << Q.size() << endl; getchar(); getchar(); return 0; return 0;}

Příklad na třídu string int main(int argc, char* argv[]) { string test; string test; while(test.empty() || test.size() <= 5) while(test.empty() || test.size() <= 5) { cout << "Type a string between 5 and 100 characters long. " << endl; cout << "Type a string between 5 and 100 characters long. " << endl; cin >> test; cin >> test; } cout << "Changing the third character from " cout << "Changing the third character from " << test[2] << " to * " << endl; << test[2] << " to * " << endl; test[2] = '*'; test[2] = '*'; cout << "now its: " << test << endl << endl; cout << "now its: " << test << endl << endl; cout << "Identifying the middle: "; cout << "Identifying the middle: "; test.insert(test.size() / 2, "(the middle is here!)"); test.insert(test.size() / 2, "(the middle is here!)"); cout << test << endl << endl; cout << test << endl << endl; cout << "I didn't like the word 'middle',so " cout << "I didn't like the word 'middle',so " "instead, I'll say:" << endl; "instead, I'll say:" << endl; test.replace(test.find("middle",0), 6, "center"); test.replace(test.find("middle",0), 6, "center"); cout << test << endl; cout << test << endl; cin >> test; cin >> test; return 0; return 0;}

Příklad na třídu complex int main(int argc, char* argv[]) { complex a(1.2, 3.4); complex a(1.2, 3.4); complex b(-9.8, -7.6); complex b(-9.8, -7.6); a += b; a += b; a /= sin(b) * cos(a); a /= sin(b) * cos(a); b *= log(a) + pow(b, a); b *= log(a) + pow(b, a); cout << "a = " << a << ", b = " << b << endl; cout << "a = " << a << ", b = " << b << endl; getchar(); getchar(); return 0; return 0;}

Zadání cvičení ► Napište program s využitím STL (valarray, complex, string a stream). V programu vygenerujte 2 pole po 10 komplexních číslech a ty pomocí valarray sečtěte. Napište funkci print, která bude jednotlivá pole vypisovat. Dodržte následující deklaraci: void print(ostream &os, valarray array, string head) kde cpx_double je typ complex kde cpx_double je typ complex ► Za bonusový bod nahraďte funkci print přetíženým operátorem << ► Výstupem programu bude: