Další příklady. Katedra softwarového inženýrství. Katedra teoretické informatiky, Fakulta informačních technologii, ČVUT v Praze. Karel Müller, 2011

Podobné dokumenty
Abstraktní datové typy

Přetěžování operátorů

Mělká a hluboká kopie

Datové struktury 2: Rozptylovací tabulky

Jazyk C++, některá rozšíření oproti C

Pole, množina, tabulka

Základní datové struktury III: Stromy, haldy

Abstraktní třídy, polymorfní struktury

Jazyk C++ II. STL knihovna kontejnery část 2

součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

Úvod do programování 6. hodina

Programování v Pythonu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Datové struktury 1: Základní datové struktury

Programování v Pythonu

Cvičení z logiky II.

Základy algoritmizace. Pattern matching

Standardní algoritmy vyhledávací.

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Programy na PODMÍNĚNÝ příkaz IF a CASE

Diskrétní matematika. DiM /01, zimní semestr 2017/2018

Rekurzivní algoritmy

II. Úlohy na vložené cykly a podprogramy

NEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Algoritmizace prostorových úloh

V případě jazyka Java bychom abstraktní datový typ Time reprezentující čas mohli definovat pomocí třídy takto:

Zadání druhého zápočtového projektu Základy algoritmizace, 2005

Datové struktury. Obsah přednášky: Definice pojmů. Abstraktní datové typy a jejich implementace. Algoritmizace (Y36ALG), Šumperk - 12.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

Programování v C++ 1, 16. cvičení

Tabulka. Datová struktura, která umožňuje vkládat a později vybírat informace podle identifikačního klíče. Mohou být:

Programování v Pythonu

Algoritmy I, složitost

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

PB161 Programování v jazyce C++ Přednáška 3

PROHLEDÁVÁNÍ GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Časová složitost algoritmů

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010

Stromy, haldy, prioritní fronty

Da D to t v o é v ty t py IB111: Datové typy

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

V t í á t V á V s ČVU V T v v P r P a r ze

Úvod do softwarového inženýrství a týmového vývoje

Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)

Vytěžování znalostí z dat

Algoritmizace prostorových úloh

IAJCE Přednáška č. 9. int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) { // nikoli 0 if (Pole[i] > max) {

Předzpracování dat. Pavel Kordík. Department of Computer Systems Faculty of Information Technology Czech Technical University in Prague

Paradigmata programování 1

Fyzické uložení dat a indexy

Hardwarová realizace konečných automatů

CODEWEEK 2014 Rozvoj algoritmického myšlení nejen pomocí programu MS Excel. Michaela Ševečková

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Množina v C++ (set, multiset).

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

OBJEKTOVÉ PROGRAMOVÁNÍ V C++ V PŘÍKLADECH 8 Proudová knihovna 8.1 Hierarchie proudů Standardně zavedené proudy

Návrh designu: Radek Mařík

Časová složitost algoritmů, řazení a vyhledávání

Programování v jazyce C a C++

Programování v C++ 2, 4. cvičení

Cvičení 5. Přednášející: Mgr. Rudolf B. Blažek, Ph.D. prof. RNDr. Roman Kotecký, DrSc.

Dynamické programování

PROGRAMOVÁNÍ V C++ CVIČENÍ. Michal Brabec

Algoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Základy vytěžování dat

Vysvětlete funkci a popište parametry jednotlivých komponent počítače a periferních zařízení.

Programování v Pythonu

Šablony, kontejnery a iterátory

Kolekce, cyklus foreach

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

Základy programování (IZP)

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

NMIN102 Programování /2 Z, Zk

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Databázové systémy úvod

Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018

Vector datový kontejner v C++.

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3

Tomáš Karel LS 2012/2013

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

Úvod do teorie grafů

VLASTNOSTI GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze. BI-GRA, LS 2010/2011, Lekce 5

INFORMATIKA. aplikační software pro práci s informacemi ODRÁŽKY A ČÍSLOVÁNÍ. Pracovní list pro žáky. Gymnázium K. V. Raise, Hlinsko, Adámkova 55

Algoritmizace a programování

Zimní semestr akademického roku 2015/ ledna 2016

Spojová implementace lineárních datových struktur

5. Vyhledávání a řazení 1

Zpracování informací

Druhá skupina zadání projektů do předmětu Algoritmy II, letní semestr 2014/2015

Šablony, kontejnery a iterátory

Vytěžování znalostí z dat

Programování v jazyce JavaScript

Konečný automat. Jan Kybic.

Transkript:

Karel Müller (ČVUT FIT) BI-PA2, 2011, Cvičení 11-13 1/5 Katedra softwarového inženýrství Katedra teoretické informatiky, Fakulta informačních technologii, ČVUT v Praze Karel Müller, 2011 Programování a algoritmizace 2, BI-PA2, 2011, Cvičení 11-13 BI-PA2 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Karel Müller (ČVUT FIT) BI-PA2, 2011, Cvičení 11-13 2/5 Následující příklady mohou být zadány u zkoušky. Na cvičení budou probrány a za domácí úkol zadány jen některé z nich. 1. Stáhněte si a vyzkoušejte příklady z adresáře p11\matrix, array, set a table. Seznamte se s přetěžováním operátoru (), které je použito v šabloně Matrix. 2. Napište šablonu třídy Array1 pro realizaci jednorozměrného pole prvků typu T, kde parametry konstruktoru budou udávat dolní a horní mez indexu. 3. Napište šablonu třídy Array2 pro realizaci dvojrozměrného pole uloženého v souvislém paměťovém úseku, pro přístup k prvkům použijte přetížený operátor (). 4. Do třídy Set (viz přednáška) doplňte metodu card, jejímž výsledkem bude počet prvků množiny. 5. Napište šablonu třídy MultiSet úpravou třídy Set tak, aby umožňovala duplicity. Nápověda: pole upravte tak, aby každý prvek pole obsahoval počet výskytů. 6. Do šablon tříd realizujících množiny doplňte kontruktor, který vytvoří množinu z prvků pole daného parametrem. 7. Do šablon tříd realizujících množiny doplňte binární operátor pro množinovou operaci diference (rozdíl).

Karel Müller (ČVUT FIT) BI-PA2, 2011, Cvičení 11-13 3/5 8. Napište šablonu třídy List1 realizující jednosměrný spojový seznam s těmito operacemi: 9. Napište šablonu třídy List2 realizující dvojsměrný spojový seznam s těmito operacemi: 10. Napište šablonu třídy SrtList1 realizující jednosměrný vzestupně uspořádaný spojový seznam s těmito operacemi:

Karel Müller (ČVUT FIT) BI-PA2, 2011, Cvičení 11-13 4/5 11. Napište šablonu třídy SrtList2 realizující dvojsměrný vzestupně uspořádaný spojový seznam s těmito operacemi: 12. Napište šablonu třídy LstSet1 realizující množinu jednosměrným spojovým seznamem. 13. Napište šablonu třídy LstSet2 realizující množinu dvojsměrným spojovým seznamem. 14. Napište šablonu třídy SrtLstSet1 realizující množinu jednosměrným vzestupně 15. Napište šablonu třídy SrtLstSet2 realizující množinu dvojsměrným vzestupně 16. Napište šablonu třídy LstTab1 realizující tabulku jednosměrným spojovým seznamem. 17. Napište šablonu třídy LstTab2 realizující tabulku dvojsměrným spojovým seznamem. 18. Napište šablonu třídy SrtLstTab1 realizující tabulku jednosměrným vzestupně 19. Napište šablonu třídy SrtLsTabt2 realizující tabulku dvojsměrným vzestupně

Karel Müller (ČVUT FIT) BI-PA2, 2011, Cvičení 11-13 5/5 20. Napište program který přečte řadu čísel zakončenou nulou a vypíše nejprve všechna vzájemně různá záporná čísla a pak všechna vzájemně různá kladná čísla. 21. Napište program, který přečte řadu celých čísel zakončenou nulou a vypíše tabulku četnosti čísel. 22. Napište program, který přečte textový soubor složený ze slov (slovo je posloupnost písmen) a vypíše seznam vzájemně různých slov seřazený podle abecedy. 23. Napište program, který přečte textový soubor složený ze slov (slovo je posloupnost písmen) a vypíše tabulku četnosti slov. 24. Pro každou implementaci množiny odhadněte složitost operací v nejlepším a nejhorším případě. 25. Pro každou implementaci tabulky odhadněte složitost operací v nejlepším a nejhorším případě. 26. Pro různé způsoby implementace tabulky napište šablonu třídy realizující tabulku, ve které se mohou vyskytovat prvky se stejným klíčem. Operaci del(k) napište tak, aby v případě více prvků s klíčem k byl odstraněn prvek naposledy (nejdříve) vložený. 27. Do šablon realizujících množinu doplňte operaci uložení množiny do souboru a konstruktor pro vytvoření množiny ze souboru. 28. Do šablon realizujících tabulku doplňte operaci uložení tabulky do souboru a konstruktor pro vytvoření tabulky čtením souboru.