programátorský manuál

Rozměr: px
Začít zobrazení ze stránky:

Download "programátorský manuál"

Transkript

1 programátorský manuál Marek Polák 1. ročník, studijní skupina 41 zimní semestr 2012/2013 Programování I NPRG030

2 1. Úvod Vítejte v programátorském manuálu k programu Hádej zvíře. Tento manuál by Vám měl pomoci pochopit, jak program Hádej zvíře funguje, jaké algoritmy používá, a jak by se případně dal modifikovat. 2. Stručná specifikace Program Hádej zvíře je napsán v programovacím jazyce Pascal ve vývojovém prostředí Lazarus Program Hádej zvíře je vlastně drobná hříčka. Databáze programu obsahuje několik otázek, zvířat a odpovědí na tyto otázky. Program vyzve uživatele, aby si myslel libovolné zvíře, a poté se jej snaží uhodnout položením co nejmenšího počtu otázek ze své databáze. Pokud uhodne, oznámí své vítězství a zeptá se, zda chce uživatel pokračovat ve hře. Jestliže program z nějakého důvodu zvíře neuhodne, požádá uživatele, zda by mu nesdělil, o jaké zvíře šlo, a v případě, že ho ještě neměl ve své databázi, ho do ní přidá. Pokud dojde k nerozlišitelnosti dvou zvířat, požádá uživatele o zadání nové otázky, kterou též přidá do své databáze. Podrobněji je fungování programu popsáno v uživatelském manuálu. 3. Kód programu Veškerý kód programu a soubory vývojového prostředí Lazarus se nachází v podsložce code. V případě, že programátorský manuál neposkytne dostatečné informace, je možné se orientovat podle poznámek přímo v kódu programu. 3.I Soubory Program využívá dva binární soubory, otazky.dat a zvire.dat, uložené ve stejném adresáři, jako spustitelný soubor. otazky.dat je soubor záznamů typu otazkasoubor (viz níže), slouží k uložení znění jednotlivých otázek a jejich pořadových čísel (bylo by možné i nahradit pořadová čísla pozicí otázky v souboru, čímž by se ušetřilo místo v souboru) zvire.dat je soubor záznamů typu zviresoubor (viz níže), slouží k uložení jmen jednotlivých zvířat a polí trojic (viz níže), která obsahují odpovědi na všechny otázky pro konkrétní zvíře, v indexu podle pořadového čísla otázky. Program si bohužel zatím neumí sám vytvořit soubory otazky.dat a zvire.dat, a neumí ani detekovat jejich nepřítomnost, což by se v budoucnu mělo změnit. V případě, že tyto soubory nebudou v adresáři se spustitelným souborem, bude nyní program hlásit běhové chyby. 2

3 3.II Globální konstanty, typy a proměnné konstanta max Číselná konstanta vyjadřující maximální možný počet otázek a odpovědí u každého zvířete, v základu nastavená na Bylo by možné ji i zvýšit, ale musel by se vytvořit nový soubor zvire.dat s delšími poli trojic. typ trojice Typ funguje jako rozšířený boolean, slouží k uložení informace ano, ne nebo nevim. To je důležité např. pro uložení odpovědi na otázku, která ještě nebyla položena, klasický boolean by toto nebyl schopen reprezentovat. typ poletrojic Typ je pole o max položkách obsahujících typ trojice. Slouží k ukládání odpovědí na jednotlivé otázky, ať už u každého zvířete v souboru zvire.dat, nebo v průběhu hádání na ukládání průběžných odpovědí. typ zvireseznam a zviresoubor Typy jsou záznamy sloužící k uložení jmen zvířat a odpovědí na jednotlivé otázky. Obsahují řetězec jmenozvirete pro uložení jména zvířete, o maximální délce 20 znaků (kvůli uložení v binárním souboru), a pole odpovedi typu poletrojic, pro uložení odpovědí na otázky. Typ zvireseznam navíc obsahuje ukazatel dalsi na další zvireseznam. To proto, že zvireseznam slouží k uchovávání zvířat v lineárním spojovém seznamu (dále LSS), zatímco zviresoubor k uchovávání v binárním souboru (kde by ukazatele byly bezúčelné). typ otazkaseznam a otazkasoubor Typy jsou záznamy sloužící k uložení znění otázky a pořadového čísla této otázky. Obsahují řetězec textotazky pro uložení znění, o maximální délce 250 znaků (kvůli uložení v binárním souboru), a integer poradiotazky pro uložení pořadového čísla otázky. Typ otazkaseznam navíc obsahuje ukazatel dalsi na další otazkaseznam. To proto, že otazkaseznam slouží k uchovávání otázek v LSS, zatímco otazkasoubor k uchovávání v binárním souboru (kde by ukazatele byly bezúčelné). proměnná seznamzvirat Proměnná je ukazatel na zvireseznam. Funguje ve vlastním těle programu jako ukazatel na začátek LSS všech zvířat. Je předávána dalším funkcím a procedurám. proměnná seznamotazek Proměnná je ukazatel na otazkaseznam. Funguje ve vlastním těle programu jako ukazatel na začátek LSS všech otázek. Je předávána dalším funkcím a procedurám. proměnná pocetotazek Proměnná je integer udávající celkový počet otázek v databázi. Slouží k tomu, aby program případně nekontroloval odpovědi v poletrojic, které ve skutečnosti zatím neodpovídají žádné otázce. Proměnná pocetotazek je nastavena vždy při zavolání funkce NactiOtazky (viz níže), může být zvýšena o 1 procedurou PridejOtazku (viz níže). 3

4 3.III Funkce a procedury funkce LowCase Jednoduchá funkce, která parametrem dostane řetězec a vrátí ten samý řetězec, napsaný pouze malými písmeny. Funkce je volána pouze procedurou ProhralJsem, nevolá žádnou jinou funkci ani proceduru. procedura Napis Procedura parametrem dostane řetězec, na standardním výstupu přeskočí řádek, napíše >> a přijatý řetězec. Procedura je volána procedurami VypisDatabazi, Vyuka, Privitej, PridejOtazku, VyhralJsem, ProhralJsem, ZkusHadat a ZeptejSe, sama nevolá žádnou jinou funkci ani proceduru. funkce Precti Funkce na standardním výstupu přeskočí řádek, napíše << a poté ze standardního vstupu přečte řetězec, který vrátí. Funkce je volána procedurami Vyuka, Privitej, PridejOtazku, VyhralJsem, ProhralJsem, ZkusHadat a ZeptejSe, sama nevolá žádnou jinou funkci ani proceduru. funkce Interpretuj Funkce parametrem dostane řetězec, který se podle výskytu klíčových slov pokusí interpretovat jako typ trojice (ano, ne nebo nevím). Tuto hodnotu vrátí. Chování funkce je přesněji popsáno v uživatelském manuálu. Funkce je volána procedurami Vyuka, Privitej, PridejOtazku, VyhralJsem, ProhralJsem, ZkusHadat a ZeptejSe, sama nevolá žádnou jinou funkci ani proceduru. funkce StandardizujOtazku Funkce parametrem dostane řetězec, načež vrátí ten samý řetězec s prvním písmenem velkým a zakončený otazníkem (pokud tak nevypadal už předtím). Funkce je volána pouze procedurou PridejOtazku, sama nevolá žádnou jinou funkci ani proceduru. procedura SmazSeznamOtazek Procedura parametrem dostane ukazatel na záznam typu otazkaseznam, načež smaže celý LSS počínaje tímto záznamem. Procedura je volána procedurami VypisDatabazi, Vyuka, PridejOtazku a PtejSe, sama nevolá žádnou jinou funkci ani proceduru. procedura SmazSeznamZvirat Procedura parametrem dostane ukazatel na záznam typu zvireseznam, načež smaže celý LSS počínaje tímto záznamem. Procedura je volána procedurami VypisDatabazi, Vyuka, PridejZvire, ProhralJsem a ZkusHadat, sama nevolá žádnou jinou funkci ani proceduru. funkce NactiOtazky Funkce parametrem dostane globální proměnnou pocetotazek (pravděpodobně neinicializovanou), načež přiřadí soubor otazky.dat proměnné souborotazek a nastaví proměnnou pocetotazek podle počtu záznamů v tomto souboru. Poté všechny záznamy typu otazkasoubor z tohoto souboru postupně uloží do pomocného souboru pomocnyotazkasoubor typu otazkasoubor, ze kterého je přeuloží do typu otazkaseznam (tzn. přibude položka ukazatel na další záznam), načež je zapojí na konec LSS, který vytvoří. Návratová hodnota funkce je ukazatel na začátek tohoto LSS. Funkce je volána procedurami VypisDatabazi, Vyuka, PridejOtazku 4

5 a také ve vlastním těle programu, sama nevolá žádnou jinou funkci ani proceduru. funkce NactiZvirata - Funkce přiřadí soubor zvire.dat proměnné souborzvirat. Poté všechny záznamy typu zviresoubor z tohoto souboru postupně uloží do pomocného souboru pomocnyzviresoubor typu zviresoubor, ze kterého je přeuloží do typu zvireseznam (tzn. přibude položka ukazatel na další záznam). Řetězec jmenozvirete přeuloží nezměněný, pole odpovedi typu poletrojic přeuloží pouze do indexu pocetotazek, všechny vyšší indexy nastaví na nevím (odpovídají totiž zatím neexistujícím otázkám). Nakonec zapojí tento záznam typu zvireseznam na konec LSS, který vytvoří. Návratová hodnota funkce je ukazatel na začátek tohoto LSS. Funkce je volána procedurami VypisDatabazi, Vyuka, PridejZvire, ProhralJsem a také ve vlastním těle programu, sama nevolá žádnou jinou funkci ani proceduru. procedura UlozZvirata Procedura parametrem dostane ukazatel na záznam typu zvireseznam, načež přiřadí soubor zvire.dat proměnné souborzvirat a vymaže jeho obsah. Poté všechny záznamy typu zvireseznam z LSS počínaje ukazatelem přeuloží do typu zviresoubor (tzn. ukazatel na další prvek je zahozen), načež je zapíše do souboru zvire.dat. Procedura je volána procedurami Vyuka, DoplnZvire a PridejZvire, sama nevolá žádnou jinou funkci ani proceduru. procedura VypisDatabazi Procedura pomocí funkcí NactiOtazky a NactiZvirata načte veškerá data ze souborů otazky.dat a zvire.dat do dvou LSS. Poté po jednom projde všechny záznamy typu zvireseznam z LSS, pro každý po jednom projde všechny záznamy typu otazkaseznam z LSS a vypíše na standardní výstup vždy na jeden řádek řetězec jmenozvirete záznamu zvireseznam, řetězec textotazky záznamu otazkaseznam a obsah pole odpovedi záznamu zvireseznam z indexu odpovídajícímu integeru poradiotazky záznamu OtazkaSeznam. Po vypsání všech záznamů procedura pomocí procedur SmazSeznamZvirat a SmazSeznamOtazek smaže oba LSS a zavolá proceduru Privitej (viz níže). Procedura je volána pouze procedurou Privitej, sama volá procedury Napis, SmazSeznamZvirat, SmazSeznamOtazek a Privitej a funkce NactiZvirata a NactiOtazky. procedura Vyuka Procedura pomocí funkcí NactiOtazky a NactiZvirata načte veškerá data ze souborů otazky.dat a zvire.dat do dvou LSS. Poté po jednom projde všechny záznamy typu zvireseznam z LSS, pro každý po jednom projde všechny záznamy typu otazkaseznam z LSS a v případě, že obsah pole odpovedi záznamu zvireseznam na indexu odpovídajícím integeru poradiotazky záznamu otazkaseznam bude nevim, vypíše pomocí procedury Napis řetězec jmenozvirete záznamu zvireseznam, řetězec textotazky záznamu otazkaseznam a počká na vstup od uživatele, který pomocí funkce Interpretuj interpretuje jako typ trojice a uloží do pole odpovedi záznamu 5

6 zvireseznam na index odpovídající integeru poradiotazky záznamu otazkaseznam. Po projití celého LSS zvířat (nebo v případě, že uživatel na kteroukoliv otázku odpoví řetězcem konec ) procedura pomocí procedury UlozZvirata uloží celý LSS zvířat do souboru zvire.dat, načež pomocí procedur SmazSeznamZvirat a SmazSeznamOtazek smaže oba LSS a zavolá proceduru Privitej (viz níže). Procedura je volána pouze procedurou Privitej, sama volá procedury Napis, SmazSeznamOtazek, SmazSeznamZvirat a UlozZvirata a funkce Precti, Interpretuj, NactiOtazky a NactiZvirata. procedura Privitej Procedura přivítá uživatele řetězcem a zeptá zda, zda chce pokračovat, poté počká na vstup od uživatele. Pokud je vstupní řetězec vyuka, zavolá proceduru Vyuka, pokud je vstupní řetězec vypis, zavolá proceduru VypisDatabazi. V ostatních případech je vstupní řetězec funkcí Interpretuj interpretován jako typ trojice a v případě, že je různý od ano, ukončí celý program. Pokud je ano, napíše procedura další řetězec a opět interpretuje vstup od uživatele jako typ trojice, přičemž ano ukončí proceduru Privitej, ne a nevim počká na další vstup od uživatele (tudíž vznikne smyčka, přerušitelná pouze vstupem ano). Procedura je volána procedurami VypisDatabazi, Vyuka a také ve vlastním těle programu, sama volá procedury Napis, Vyuka a VypisDatabazi a funkce Precti a Interpretuj. procedura DoplnZvire - Procedura parametrem dostane pole znameodpovedi typu poletrojic, obsahující odpovědi pro myšlené zvíře, které ze hry vyplynuly, a ukazatele na začátek LSS všech zvířat a na jeden konkrétní záznam typu zvireseznam z tohoto LSS. Poté projde všechny indexy pole odpovedi tohoto záznamu a pole znameodpovedi do celkového počtu otázek (globální proměnná pocetotazek), a v případě, že na nějakém indexu bude v poli odpovedi nevim a v poli znameodpovedi ano nebo ne, dosadí do pole odpovedi hodnotu z pole znameodpovedi. Nakonec pomocí procedury UlozZvirata uloží celý LSS zvířat do souboru zvire.dat. Procedura je volána pouze procedurou ProhralJsem, sama volá proceduru UlozZvirata. procedura VyhazejZvirata Procedura parametrem dostane ukazatel zvirata na začátek LSS zvířat, proměnnou odpoved typu trojice a integer poradi, který odpovídá pořadovému číslu nějaké otázky. Pokud odpoved obsahuje hodnotu nevim, procedura skončí. V opačném případě procedura odstraní z LSS všechny záznamy, které v poli odpovedi na indexu poradi obsahují jinou odpověď než parametr odpoved a přitom neobsahují nevim. Provede to ve dvou cyklech. V prvním odstraní ze začátku LSS všechny nevyhovující záznamy a v případě, že LSS zůstane prázdný, procedura skončí. V druhém předpokládá, že ukazatel nyní ukazuje na první vyhovující záznam (tudíž pro každý další záznam má smysl hovořit o předchozím záznamu) a odstraní všechny nevyhovující záznamy až do konce LSS. Procedura je volána pouze procedurou ZeptejSe, sama nevolá žádnou jinou funkci ani proceduru. 6

7 funkce VyberNejlepsi Jedna z klíčových funkcí programu. Má za úkol vrátit integer značící pořadové číslo otázky, jejíž položení by i v horším případě mohlo vyřadit maximální počet zvířat z LSS. V případě, že by existovaly pouze odpovědi ano nebo ne, by stačilo nalézt otázku, počet jejíchž odpovědí ano a ne je co nejvyrovnanější, tzn. rozdíl počtu odpovědí ano a ne je co nejbližší nule. Přítomnost odpovědi nevim tuto možnost vylučuje. Je tudíž pravděpodobně nejjednodušší spočítat u každé otázky zvlášť počet odpovědí ano a ne, u každé vybrat ten nižší počet a poté nalézt nejvyšší z těchto nižších počtů. Funkce parametrem dostane ukazatel zvirata na začátek LSS zvířat a ukazatel otazky na začátek LSS otázek. Využívá pole testovacipole délky max (konstanta) záznamů, obsahujících integery ano a ne (pro uložení počtu odpovědí ano a ne) a boolean platne (pro uložení informace, zda je tato otázka ještě v LSS, nebo již byla položena). Nejprve funkce projde celý LSS zbývajících otázek a podle jejich poradiotazky nastaví boolean platne v poli testovacipole na indexu poradiotazky na true. Pak projde celý LSS zbývajících zvířat a u každého zaznemaná počty odpovědí ano a ne v jejich poli odpovedi. Nakonec projde celé testovacipole (bere v úvahu jen indexy s položkou platne na true), zvolí nižší z integerů ano a ne a pokud je vyšší než předchozí maximum (proměnná nejlepsihodnota), uloží ho jako nové maximum a zaznamená jeho index (proměnná index). Nakonec vrátí hodnotu proměnné index. Funkce je volána pouze procedurou PtejSe, sama nevolá žádnou jinou funkci ani proceduru. procedura PridejOtazku Procedura parametrem dostane pole znameodpovedi typu poletrojic, obsahující odpovědi pro myšlené zvíře, které ze hry vyplynuly, řetězec zvire obsahující jméno zvířete a ukazatel na jeden záznam typu zvireseznam v LSS zvířat. Pomocí funkce NactiOtazky načte všechny otázky do LSS. Poté požádá uživatele o zadání znění nové otázky, načež ho porovná s řetězcem textotazky všech otázek v LSS. Pokud nenalezne shodu, zvýší hodnotu globální proměnné pocetotazek o jedna a na stejnou hodnotu nastaví i poradiotazky nové otázky, pokud shodu nalezne, zaznamená si její poradiotazky. Pak se zeptá uživatele, jaká je správná odpověď pro nové zvíře, odpověď zaznamená do pole znameodpovedi na index odpovídající poradiotazky nové otázky a opačnou odpověď do pole odpovedi ukazatele na stejný index. Nakonec, pokud otázka v LSS (a tudíž v souboru otazky.dat) nebyla, přidá ji na konec souboru otazky.dat, načež pomocí procedury SmazSeznamOtazek smaže celý LSS otázek. Procedura je volána pouze procedurou PridejZvire, sama volá procedury Napis, NactiOtazky a SmazSeznamOtazek a funkce Precti, Interpretuj a StandardizujOtazku. procedura PridejZvire Procedura parametrem dostane pole znameodpovedi typu poletrojic, obsahující odpovědi pro myšlené zvíře, které ze hry vyplynuly, a řetězec zvire obsahující jméno nového zvířete. Pomocí funkce NactiZvirata 7

8 načte do LSS všechna zvířata. Po jednom je projde a porovná jejich pole odpovedi s polem znameodpovedi. Pokud se někde liší (tzn. jedno obsahuje ano a druhé ne na libovolném indexu), nastaví boolean OK na true, což znamená, že tato zvířata jsou rozlišitelná i bez toho, aby musela být přidána nová otázka. Pokud se ani na jednom indexu neliší (OK zůstane na false), je zavolána procedura PridejOtazku. Nakonec je celý LSS zvířat pomocí procedury UlozZvirata uložen do souboru a pomocí procedury SmazSeznamZvirat smazán a řetězec zvire obsahující jméno nového zvířete a pole ZnameOdpovedi jsou uloženy na konec souboru zvire.dat. Procedura je volána pouze procedurou ProhralJsem, sama volá procedury PridejOtazku, UlozZvirata a SmazSeznamZvirat a funkci NactiZvirata. procedura VyhralJsem Procedura řetězcem na standardní výstup oznámí výhru a zeptá se uživatele, zda si přeje pokračovat. Pokud je vstupní řetězec interpretován jinak než jako ano, bude program ukončen, v opačném případě skončí procedura. Procedura je volána pouze procedurou ZkusHadat, sama volá proceduru Napis a funkce Precti a Interpretuj. procedura ProhralJsem Procedura parametrem dostane pole znameodpovedi typu poletrojic, obsahující odpovědi pro myšlené zvíře, které ze hry vyplynuly. Poté řetězcem oznámí svou prohru a zeptá se uživatele, zda si přeje nové zvíře sdělit. Pokud je vstupní řetězec interpretován jinak než jako ano, zeptá se program, zda chce uživatel pokračovat. V opačném případě se program zeptá uživatele na jméno zvířete a zaznamená ho do řetězce zvire. Pak pomocí procedury NactiZvirata načte všechna zvířata ze souboru do LSS a porovná řetězec zvire s řetězcem jmenozvirete každého záznamu v LSS. Pokud nenalezne shodu (zvíře v souboru nebylo), zavolá proceduru PridejZvire, pokud shodu nalezne, zavolá proceduru DoplnZvire. Pak pomocí procedury SmazSeznamZvirat smaže celý LSS zvířat. Nakonec se uživatele zeptá, zda chce pokračovat. Pokud je vstupní řetězec interpretován jinak než jako ano, bude program ukončen, v opačném případě skončí procedura. Procedura je volána procedurami ZkusHadat a PtejSe, sama volá procedury Napis, PridejZvire, DoplnZvire a SmazSeznamZvirat a funkce Precti, Interpretuj, LowCase a NactiZvirata. procedura ZkusHadat - Procedura parametrem dostane pole znameodpovedi typu poletrojic, obsahující odpovědi pro myšlené zvíře, které ze hry vyplynuly, ukazatel zvirata na LSS zbývajících zvířat a boolean prerusit. Postupně projde všechna zvířata v LSS a zeptá se na ně uživatele. Pokud uživatel na nějaké odpoví ano, pomocí procedury SmazSeznamZvirat smaže celý LSS zvířat a spustí proceduru VyhralJSem, načež nastaví prerusit na true. Pokud projde celý LSS a uživatel neodpoví ano, spustí proceduru ProhralJsem a nastaví prerusit na true. Boolean prerusit je zde proto, aby dal proceduře PtejSe najevo, že program vyhrál nebo prohrál, a tudíž cyklus kladení otázek končí. 8

9 Procedura je volána procedurami ZeptejSe a PtejSe, sama volá procedury Napis, SmazSeznamZvirat, VyhralJsem a ProhralJsem a funkce Precti a Interpretuj. procedura ZeptejSe Procedura parametrem dostane ukazatel otazky na začátek LSS otázek, integer poradi značící pořadové číslo nějaké otázky, pole znameodpovedi typu poletrojic, ukazatel zvířata na začátek LSS zvířat a boolean prerusit. Poté projde LSS otázek, ve kterém se pokusí najít otázku s poradiotazky rovnou poradi. Pokud nenajde, zavolá proceduru ZkusHadat. Pokud najde, vypojí tuto otázku z LSS, vypíše její znění na standardní výstup a přečte odpověď od uživatele, kterou zaznamená do pole znameodpovedi na index poradi. Nakonec spustí proceduru VyhazejZvirata, která z LSS zvířat odstraní všechna zvířata s nevyhovující odpovědí na tuto otázku. Procedura je volána pouze procedurou PtejSe, sama volá procedury Napis, VyhazejZvirata a ZkusHadat a funkce Precti a Interpretuj. procedura PtejSe Procedura parametrem dostane ukazatele na začátek LSS zvířat a otázek. Poté nastaví boolean prerusit na false a všechny indexy pole znameodpovedi, které bude sloužit k průběžnému ukládání uživatelových odpovědí, na nevim. Pak spustí nekonečný cyklus. Pokud je LSS zvířat prázdný, smaže pomocí procedury SmazSeznamOtazek LSS otázek, zavolá proceduru ProhralJsem a následně se ukončí. Pokud v LSS zvířat zbývá poslední zvíře nebo je LSS otázek prázdný, smaže pomocí procedury SmazSeznamOtazek LSS otázek, zavolá proceduru ZkusHadat a v závislosti na hodnotě prerusit se ukončí. Pokud zbývá v LSS poslední otázka, zavolá proceduru ZeptejSe s pořadím této konkrétní otázky, načež se v závislosti na hodnotě prerusit ukončí. Ve zbylých případech (pokud zbývá ještě několik zvířat a několik otázek), zavolá proceduru ZeptejSe s pořadím otázky určeným funkcí VyberNejlepsi, načež se v závislosti na hodnotě prerusit ukončí. Procedura je volána pouze ve vlastním těle programu, sama volá procedury ZeptejSe, ZkusHadat, ProhralJsem a SmazSeznamOtazek. 3.IV Vlastní tělo programu Vlastní tělo programu tvoří nekonečný cyklus o čtyřech krocích: 1. procedura Privitej 2. načtení otázek funkcí NactiOtazky 3. načtení zvířat funkcí NactiZvirata 4. začátek hádání procedurou PtejSe 9

10 4. Nedostatky programu Do budoucna by bylo dobré, kdyby bylo odstraněno omezení počtu otázek (konstanta max), kvůli čemuž by bylo potřeba změnit způsob ukládání otázek a zvířat do binárních souborů. Hodila by se možnost exportu celé databáze do textového souboru (např. procedura Vypis, ale s výstupem do souboru), případně i výpis na standardní výstup pouze některých dat (např. pouze jednoho zvířete a všech otázek nebo pouze jedné otázky a všech zvířat). Zatím není možné prakticky nijak editovat již uložené záznamy v binárních souborech. Hodila by se procedura na jejich úpravu. 10

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

Více

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

Programování v C++, 2. cvičení Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule

Více

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni! Java práce s řetězci Trochu povídání.. Řetězce jsou v Javě reprezentovány instancemi tříd StringBuffer a String. Tyto třídy jsou součástí balíčku java.lang, tudíž je možno s nimi pracovat ihned bez nutného

Více

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové

Více

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce Universita Pardubice Fakulta elektrotechniky a informatiky Mikroprocesorová technika Semestrální práce Jméno: Chmelař Pavel Datum: 14. 5. 2008 Úkol: Příklad č. 1 V paměti dat je uložen blok 8 b čísel se

Více

Popis rozšířujících funkcí JScriptu

Popis rozšířujících funkcí JScriptu Popis rozšířujících funkcí JScriptu Tato příloha obsahuje stručný popis funkcí, které rozšiřují základní funkce JScriptu. Ty usnadňují komunikaci s jádrem programu, takže není potřeba pokaždé sestavovat

Více

Popis funkcí exportovaných z knihovny nddbe.dll

Popis funkcí exportovaných z knihovny nddbe.dll Popis funkcí exportovaných z knihovny nddbe.dll Tato příloha obsahuje stručný popis jednotlivých funkcí dynamické knihovny nddbe.dll určené pro práci s datovými soubory aplikace Dorg. NDBAddEntry, NDBAddAEntry,

Více

VISUAL BASIC. Práce se soubory

VISUAL BASIC. Práce se soubory VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit

Více

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8 Přednáška 8 Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. 1 Proměnné Jména nových proměnných by neměly kolidovat se jmény předdefinovaných proměnných.

Více

Programování v jazyce C a C++

Programování v jazyce C a C++ Programování v jazyce C a C++ Richter 1 Petyovský 2 1. března 2015 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno 2 Ing. Petyovský Petr, UAMT FEKT VUT Brno C++ Stručná charakteristika Nesdíĺı normu

Více

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

Semestrální práce 2 znakový strom

Semestrální práce 2 znakový strom Semestrální práce 2 znakový strom Ondřej Petržilka Datový model BlockFileRecord Bázová abstraktní třída pro záznam ukládaný do blokového souboru RhymeRecord Konkrétní třída záznamu ukládaného do blokového

Více

Konvertor diakritiky 3. Instalace

Konvertor diakritiky 3. Instalace OBSAH Popis... 2 Ovládání aplikace... 3 Odstranění diakritických znamének... 4 Operace s textem... 4 Nastavení aplikace... 4 Písmo... 4 Jazyk... 4 Přidání dalšího jazyka do aplikace... 5 Znaky... 5 Instalace

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

DUM 06 téma: Tvorba makra pomocí VBA

DUM 06 téma: Tvorba makra pomocí VBA DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie

Více

Manuál. Omluvenky online

Manuál. Omluvenky online Manuál Omluvenky online Jan Čižmár Chlupac.com Brno 2013 Obsah 1 Přihlášení 2 2 Student 2 2.1 Výpis absencí........................... 3 2.2 Nastavení............................. 3 3 Zákonný zástupce

Více

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Celostátní kolo soutěže Mladý programátor 2016, kategorie C

Celostátní kolo soutěže Mladý programátor 2016, kategorie C Pokyny: 1. Řešení úloh ukládejte do složky, která se nachází na pracovní ploše počítače. Její název je stejný, jako je kód, který váš tým dostal přidělený (C05 apod.). Řešení, uložené v jiné složce, nebude

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

63. ročník Matematické olympiády 2013/2014

63. ročník Matematické olympiády 2013/2014 63. ročník Matematické olympiády 2013/2014 Úlohy ústředního kola kategorie P 2. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Při soutěži je zakázáno používat jakékoliv pomůcky kromě psacích

Více

Popis programu EnicomD

Popis programu EnicomD Popis programu EnicomD Pomocí programu ENICOM D lze konfigurovat výstup RS 232 přijímačů Rx1 DIN/DATA a Rx1 DATA (přidělovat textové řetězce k jednotlivým vysílačům resp. tlačítkům a nastavovat parametry

Více

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

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová

Více

Microsoft. Word. Hromadná korespondence. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Microsoft. Word. Hromadná korespondence. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie Microsoft Word Hromadná korespondence Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie Hromadná korespondence Funkce hromadná korespondence umožňuje vytvoření malé databáze (tabulky)

Více

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:

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: Plán předmětu Název předmětu: Algoritmizace a programování (PAAPK) Školní rok: 2007/2008 Forma studia: Kombinovaná Studijní obory: DP, DI, PSDPI, OŽPD Ročník: I Semestr: II. (letní) Typ předmětu: povinný

Více

Opravy a prodej. Uživatelská příručka. Milan Hradecký.

Opravy a prodej. Uživatelská příručka. Milan Hradecký. Opravy a prodej Uživatelská příručka Milan Hradecký. 2 1. ÚVOD : Program slouží k evidenci dílenských oprav, k prodeji náhradních dílů a k fakturaci. Pracuje v prostředí WINDOWS 95 až WINDOWS XP. K rychlému

Více

Abstraktní datové typy FRONTA

Abstraktní datové typy FRONTA Abstraktní datové typy FRONTA Fronta je lineární datová struktura tzn., že ke každému prvku s výjimkou posledního náleží jeden následník a ke každému prvku s výjimkou prvního náleží jeden předchůdce. Do

Více

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové soubory

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové soubory Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Typové a netypové

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Standardní algoritmy vyhledávací.

Standardní algoritmy vyhledávací. Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární

Více

Aplikace BSMS. Uživatelská příručka - 1 -

Aplikace BSMS. Uživatelská příručka - 1 - Aplikace BSMS Uživatelská příručka - 1 - Obsah 1. O aplikaci BSMS... 3 2. Základní předpoklady pro používání BSMS... 3 3. Instalace aplikace... 3 3.1. Samotná instalace... 3 3.2. Možné problémy při instalaci...

Více

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 7

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 7 UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 7 Využití knihoven podprogramů, displej Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál vznikl

Více

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN RESEARCH / DATA

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN RESEARCH / DATA Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN RESEARCH / DATA Modul FADN RESEARCH je určen pro odborníky z oblasti zemědělské ekonomiky. Modul neomezuje uživatele pouze na předpřipravené

Více

2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013

2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013 2. úkol MI-PAA Jan Jůna (junajan) 3.11.2013 Specifikaci úlohy Problém batohu je jedním z nejjednodušších NP-těžkých problémů. V literatuře najdeme množství jeho variant, které mají obecně různé nároky

Více

Pole a kolekce. v C#, Javě a C++

Pole a kolekce. v C#, Javě a C++ Pole a kolekce v C#, Javě a C++ C# Deklarace pole typ_prvku_pole[] jmeno_pole; Vytvoření pole jmeno_pole = new typ_prvku_pole[pocet_prvku_pole]; Inicializace pole double[] poled = 4.8, 8.2, 7.3, 8.0; Java

Více

Úvod do programování. Lekce 1

Úvod do programování. Lekce 1 Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -

Více

27 Evidence kasiček. Popis modulu. Záložka Organizované sbírky

27 Evidence kasiček. Popis modulu. Záložka Organizované sbírky 27 Evidence kasiček Uživatelský modul Evidence kasiček realizuje evidenci všech pořádaných sbírek, jednotlivých kasiček sbírky, dále pak evidenci výběrů kasiček s návazností na pokladnu (příjem výběru

Více

MAXScript výukový kurz

MAXScript výukový kurz MAXScript výukový kurz Díl čtvrtý jazyk MAXScript, část I. Jan Melichar, březen 2008 Jan Melichar (aka JME) strana 1 OBSAH ÚVOD... 4 ZÁKLADNÍ PŘÍKAZY... 5 OPERÁTORY... 6 PROMĚNNÉ... 6 POLE... 7 ZÁVĚREM...

Více

Kreslící program. V této lekci se naučíš vytvořit si vlastní kreslící program! Následujte postupně tyto INSTRUKCE

Kreslící program. V této lekci se naučíš vytvořit si vlastní kreslící program! Následujte postupně tyto INSTRUKCE Scratch 1 Kreslící program Všechny Kódovací kluby - Code Clubs musí být registrovány. Tím, že zaregistrujete váš klub, můžeme měřit náš dosah, a můžeme tak pokračovat s poskytováním zdrojů pro výuku programování

Více

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN BASIC

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN BASIC Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN BASIC Modul FADN BASIC je určen pro odbornou zemědělskou veřejnost bez větších zkušeností s internetovými aplikacemi a bez hlubších

Více

PODPROGRAMY PROCEDURY A FUNKCE

PODPROGRAMY PROCEDURY A FUNKCE PODPROGRAMY PROCEDURY A FUNKCE Programy bez podprogramů Příklady: a) Napište program, který na obrazovku nakreslí čáru složenou ze znaků pomlčka. program Cara; b) Napište program, který na obrazovku nakreslí

Více

[APLIKACE PRO PŘEHRÁVÁNÍ VIDEA - PROJEKT MIAMI - SERVEROVÁ ČÁST]

[APLIKACE PRO PŘEHRÁVÁNÍ VIDEA - PROJEKT MIAMI - SERVEROVÁ ČÁST] [APLIKACE PRO PŘEHRÁVÁNÍ VIDEA - PROJEKT MIAMI - SERVEROVÁ ČÁST] [Aktualizace dokumentu: 27.8.2011 3:02:37 Verze dokumentu: 1.0 Obsah Obsah... 2 1. Struktura databáze a souborů... 3 2. Soubor registerdevice.php...

Více

Reranking založený na metadatech

Reranking založený na metadatech České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství Reranking založený na metadatech MI-VMW Projekt IV - 1 Pavel Homolka Ladislav Kubeš 6. 12. 2011 1

Více

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy jazyka Pascal

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy jazyka Pascal Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy

Více

Datové typy a struktury

Datové typy a struktury atové typy a struktury Jednoduché datové typy oolean = logická hodnota (true / false) K uložení stačí 1 bit často celé slovo (1 byte) haracter = znak Pro 8-bitový SII kód stačí 1 byte (256 možností) Pro

Více

Android Elizabeth. Verze: 1.1

Android Elizabeth. Verze: 1.1 Android Elizabeth Program pro měření mezičasů na zařízeních s OS Android Verze: 1.1 Naposledy upraveno: 15. února 2013 Aleš Razým Historie verzí Verze Datum Popis 1.0 7.1.2013 Původní verze pro OS Android

Více

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Základy programování Úloha: Eratosthenovo síto Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Obsah 1 Zadání úkolu: 3 1.1 Zadání:............................... 3 1.2 Neformální zápis:.........................

Více

Prohlížení a editace externích předmětů

Prohlížení a editace externích předmětů Prohlížení a editace externích předmětů 1. Spuštění modulu Externí předměty 2. Popis prostředí a ovládacích prvků 2.1. Rozbalovací seznamy 2.3. Seznamy 2.3.1. Definice předmětů 2.3.2. Vypsané předměty

Více

Program pro tvorbu technických výpočtů. VIKLAN - Výpočty. Uživatelská příručka. pro seznámení se základními možnostmi programu. Ing.

Program pro tvorbu technických výpočtů. VIKLAN - Výpočty. Uživatelská příručka. pro seznámení se základními možnostmi programu. Ing. Program pro tvorbu technických výpočtů VIKLAN - Výpočty Uživatelská příručka pro seznámení se základními možnostmi programu Ing. Josef Spilka VIKLAN - Výpočty Verse 1.10.5.1 Copyright 2010 Ing. Josef Spilka.

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel

Více

C2110 Operační systém UNIX a základy programování

C2110 Operační systém UNIX a základy programování C2110 Operační systém UNIX a základy programování 5. lekce Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Masarykova univerzita, Kotlářská 2, CZ-61137 Brno C2110 Operační systém

Více

Operační systémy 2: Zápočtové úkoly

Operační systémy 2: Zápočtové úkoly Operační systémy 2: Zápočtové úkoly 18. listopad 2010 1 Paralelní Mergesort Implementujte paralelní verzi algoritmu Merge sort, který bude řadit celá čísla uložená v textovém souboru. Program bude mít

Více

Implementace LL(1) překladů

Implementace LL(1) překladů Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku

Více

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5 Obsah Obsah 1 Řídicí struktury 1 2 Podmínka 1 2.1 Podmínka typu case......................... 2 3 Příkaz skoku 3 4 Cykly 4 4.1 Cyklus s podmínkou na začátku................... 4 4.2 Cyklus s podmínkou

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 07. Základní příkazy vstup a výstup hodnot Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

Úvodem... 9 Kapitola 1 Karetních

Úvodem... 9 Kapitola 1 Karetních Úvodem... 9 Základní znalosti o programovacích jazycích...10 Jazyk C# a platforma.net...10 Visual C# 2010 Express...11 Instalace platformy.net 4.0 a Visual C# 2010 Express...11 Zdrojový kód aplikací...12

Více

Střední odborná škola a Střední odborné učiliště, Hořovice

Střední odborná škola a Střední odborné učiliště, Hořovice Kód DUM : VY_32_INOVACE_DYN.1.17 Název materiálu: Anotace Autor Jazyk Očekávaný výstup 17 PHP- komplexní úloha Výpočet obsahu trojúhelníku pomocí Heronova vzorce DUM prohloubí dovednosti žáků v postupu

Více

Lekce 01 Úvod do algoritmizace

Lekce 01 Úvod do algoritmizace Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním

Více

NPRG030 Programování I, 2017/18 1 / :22:16

NPRG030 Programování I, 2017/18 1 / :22:16 NPRG030 Programování I, 2017/18 1 / 26 20. 10. 2017 11:22:16 Ordinální typy standardní: integer, char, boolean Vlastnosti ordinálních typů: 1. hodnot je konečný počet a hodnoty jsou uspořádány 2. ke každé

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 13. Práce s řetězci - palindrom Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona:

Více

Spojové struktury. Spojová struktura (linked structure):

Spojové struktury. Spojová struktura (linked structure): Spojová struktura (linked structure): Spojové struktury množina objektů propojených pomocí spojů (odkazů, referencí, ukazatelů) Spoj často vyjadřuje vztah předchůdce následník Lineární spojové struktury

Více

Odstranění řádků (na základě hodnoty)

Odstranění řádků (na základě hodnoty) Odstranění řádků (na základě hodnoty) patří k častým dotazům v diskusích. Úlohu je třeba rozdělit na dvě části nalezení požadovaných buněk a následné odmazání řádků, na kterých leží. Výběr buněk lze provádět

Více

Řídicí příkazy KAPITOLA 3. Vstup znaků z klávesnice

Řídicí příkazy KAPITOLA 3. Vstup znaků z klávesnice Řídicí příkazy V této kapitole se seznámíte s příkazy, které řídí postup provádění programu Příkazy řízení programu se řadí do třech kategorií: příkazy výběru, kam patří příkazy if a switch, příkazy iterace,

Více

C# konzole Podíl dvou čísel, podmínka IF

C# konzole Podíl dvou čísel, podmínka IF C# konzole Podíl dvou čísel, podmínka IF Tematická oblast Datum vytvoření 2013 Ročník 3 Stručný obsah Způsob využití Autor Kód Internetové technologie, programování Výpočet podílu v konzolové aplikaci

Více

7. Datové typy v Javě

7. Datové typy v Javě 7. Datové typy v Javě Primitivní vs. objektové typy Kategorie primitivních typů: integrální, boolean, čísla s pohyblivou řádovou čárkou Pole: deklarace, vytvoření, naplnění, přístup k prvkům, rozsah indexů

Více

DSA, První krok: máme dokázat, že pro left = right vrátí volání f(array, elem, left, right)

DSA, První krok: máme dokázat, že pro left = right vrátí volání f(array, elem, left, right) Indukcí dokažte následující výrok: pokud lef t a right jsou parametry funkce f a platí left right, pak volání f(array, left, right) vrátí minimální hodnotu z hodnot všech prvků v poli array na indexech

Více

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004 Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.

Více

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

Úvod do programování 6. hodina

Úvod do programování 6. hodina Úvod do programování 6. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Algoritmy Třídění pole: Selection

Více

3. ANTAGONISTICKÉ HRY

3. ANTAGONISTICKÉ HRY 3. ANTAGONISTICKÉ HRY ANTAGONISTICKÝ KONFLIKT Antagonistický konflikt je rozhodovací situace, v níž vystupují dva inteligentní rozhodovatelé, kteří se po volbě svých rozhodnutí rozdělí o pevnou částku,

Více

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

Programování v C++ 3, 3. cvičení Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového

Více

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

Druhá skupina zadání projektů do předmětu Algoritmy II, letní semestr 2014/2015 Druhá skupina zadání projektů do předmětu Algoritmy II, letní semestr 2014/2015 doc. Mgr. Jiří Dvorský, Ph.D. 6. dubna 2015 Verze zadání 6. dubna 2015 První verze 1 1 Sledování elektroměrů V panelovém

Více

Grantové projekty. V současné době jsou zpracovány tyto části:

Grantové projekty. V současné době jsou zpracovány tyto části: Grantové projekty V současné době jsou zpracovány tyto části: - konzultace záměru grantového projektu - registrace grantového projektu - zahájeni realizace grantového projektu 1. Schéma konzultace záměru

Více

Programování v jazyce JavaScript

Programování v jazyce JavaScript Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Operátory a příkazy BI-JSC Evropský sociální fond

Více

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox 02. HODINA Obsah: 1. Typy souborů a objektů 2. Ovládací prvky Label a TextBox 3. Základní příkazy a vlastnosti ovládacích prvků 4. Práce s objekty (ovládací prvky a jejich vlastnosti) 2.1 Typy souborů

Více

Knihovna XmlLib TXV 003 63.01 druhé vydání říjen 2012 změny vyhrazeny

Knihovna XmlLib TXV 003 63.01 druhé vydání říjen 2012 změny vyhrazeny Knihovna XmlLib TXV 003 63.01 druhé vydání říjen 2012 změny vyhrazeny 1 TXV 003 63.01 Historie změn Datum Vydání Popis změn Prosinec 2010 1 První vydání, popis odpovídá XmlLib_v13 Říjen 2012 2 Druhé vydání,

Více

17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/

17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/ 17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/ Úvod 1 Úvod Nedávno jsem zveřejnil návod na vytvoření návštěvní knihy bez nutnosti použít databázi. To je výhodné tehdy, kdy na serveru

Více

Databáze prodejců. Tlačítka. Vytvoří kartu nového prodejce (Alt+N); Změní vybraného prodejce Uloží nového prodejce nebo změnu (Alt+U);

Databáze prodejců. Tlačítka. Vytvoří kartu nového prodejce (Alt+N); Změní vybraného prodejce Uloží nového prodejce nebo změnu (Alt+U); Databáze prodejců Tlačítka Vytvoří kartu nového prodejce (Alt+N); Změní vybraného prodejce (Alt+E); Uloží nového prodejce nebo změnu (Alt+U); Při zakládání nového prodejce zadejte jeho číslo (musí to být

Více

1. ESO9 MAJETEK ZÁKLADNÍ VLASTNOSTI DOPORUČENÝ HW... 3

1. ESO9 MAJETEK ZÁKLADNÍ VLASTNOSTI DOPORUČENÝ HW... 3 Zpracoval: Zabořil Jaroslav U Mlýna 2305/22, 141 Praha 4 Záběhlice Dne: 12.9.2017 tel.: +420 585 203 370-2 e-mail: info@eso9.cz Revize: Zabořil Jaroslav www.eso9.cz Dne: 27.6.2018 Obsah 1. ESO9 MAJETEK...

Více

Správa paměti. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016

Správa paměti. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016 Správa paměti Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016 Objektové modelování, B36OMO 10/2016, Lekce 2 https://cw.fel.cvut.cz/wiki/courses/xxb36omo/start

Více

Sekvenční a podmíněné provádění

Sekvenční a podmíněné provádění Programování v Bourne shellu Sekvenční a podmíněné provádění Sekvenční provádění znamená vykonávání jednoho příkazu za druhým bez ohledu na okolnosti. Pro oddělení příkazů při sekvenčním provádění se používá

Více

Práce se soubory. Úvod do programování 2 Tomáš Kühr

Práce se soubory. Úvod do programování 2 Tomáš Kühr Práce se soubory Úvod do programování 2 Tomáš Kühr Soubory z pohledu C u Soubor chápeme jako posloupnost bytů uložených na disku u Datový proud (anglicky stream) u Ještě obecnější přístup u Sjednocuje

Více

Programování v jazyce JavaScript

Programování v jazyce JavaScript Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe 1. část BI-JSC Evropský sociální fond

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout.   tel: Skripta ke školení Základy VBA vypracoval: Tomáš Herout e-mail: herout@helpmark.cz tel: 739 719 548 2016 Obsah TROCHA TEORIE VBA...2 ZPŮSOB ZÁPISU VE VBA...2 CO JE TO FUNKCE...2 CO JE TO PROCEDURA...2

Více

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Assembler pro Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zápis instrukcí umíme už zapisovat instrukce v binárním tvaru to je silně nešikovné pro snazší vývoj

Více

Lineární spojový seznam (úvod do dynamických datových struktur)

Lineární spojový seznam (úvod do dynamických datových struktur) Lineární spojový seznam (úvod do dynamických datových struktur) Jan Hnilica Počítačové modelování 11 1 Dynamické datové struktury Definice dynamické struktury jsou vytvářeny za běhu programu z dynamicky

Více

Binární soubory (datové, typované)

Binární soubory (datové, typované) Binární soubory (datové, typované) - na rozdíl od textových souborů data uložena binárně (ve vnitřním tvaru jako v proměnných programu) není čitelné pro člověka - všechny záznamy téhož typu (může být i

Více

6. Příkazy a řídící struktury v Javě

6. Příkazy a řídící struktury v Javě 6. Příkazy a řídící struktury v Javě Příkazy v Javě Příkazy v Javě Řídicí příkazy (větvení, cykly) Přiřazovací příkaz = Řízení toku programu (větvení, cykly) Volání metody Návrat z metody - příkaz return

Více

VY_32_INOVACE_08_2_04_PR

VY_32_INOVACE_08_2_04_PR Ing. Petr Stránský VY_32_INOVACE_08_2_04_PR Příkazy vstupu - definice Výstupním zařízením může být obrazovka, tiskárna nebo soubor. Jednotlivé údaje se zapisují pomocí příkazu WRITE nebo WRITELN. Příkaz

Více

Sada 1 - PHP. 03. Proměnné, konstanty

Sada 1 - PHP. 03. Proměnné, konstanty S třední škola stavební Jihlava Sada 1 - PHP 03. Proměnné, konstanty Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2 - inovace a

Více

Programujeme v softwaru Statistica

Programujeme v softwaru Statistica Programujeme v softwaru Statistica díl druhý Newsletter Statistica ACADEMY Téma: Programování, makra, skripty Typ článku: Návody V tomto článku si ukážeme další možnosti při psaní maker v softwaru Statistica.

Více

Uživatelské příkazy: false - dialog ukončen IDCANCEL. Vytvoří nové okno. title - titulek okna

Uživatelské příkazy: false - dialog ukončen IDCANCEL. Vytvoří nové okno. title - titulek okna Uživatelské příkazy: CMD CRW MDA Popis Vytvoří nové okno Odpověď na požadavek uzavření okna SWT Nastaví titulek okna text MVW Přesune okno na pozici x;y SZW Změní velikost okna width;height style SWP MSB

Více

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování Vypracování bude ve formě ručně napsaného zdrojového textu programu na papír se zadáním. Program dle zadání si

Více