}w!"#$%&'()+,-./012345<ya

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

Download "}w!"#$%&'()+,-./012345<ya"

Transkript

1 MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY }w!"#$%&'()+,-./012345<ya Nástroj pro vizualizaci a kreslení konečných automatů BAKALÁŘSKÁ PRÁCE Jiří Kůs Brno, jaro 2009

2 Prohlášení Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Vedoucí práce: RNDr. Vojtěch Forejt ii

3 Shrnutí Cílem práce je vytvořit nástroj, který uživateli umožní nakreslit konečný automat. K tomuto účelu má uživatel k dispozici textový a grafický režim. Vytvořený automat lze uložit do textové podoby, případně ho z ní opětovně načíst. Nástroj je implementován jako Java applet, který je pomocí JavaScriptu propojen s odpovědníky předmětu IB102 Automaty a gramatiky. Formát načítaných a ukládaných automatů odpovídá formátu používaném vyhodnocovací službou pro tento předmět. Součástí práce je také program, který automaticky doplní potřebný kód do souboru se sadou otázek. iii

4 Klíčová slova Java, automat, JavaScript, graf, vizualizace, kreslení iv

5 Obsah 1 Úvod Základní pojmy Abeceda Slovo Jazyk Konečný automat Zápis konkrétních konečných automatů Tabulka přechodové funkce Přechodový graf Použité technologie Java Java SE API verze Java Swing HTML Java Applet JavaScript LiveConnect NetBeans IDE Subversion Adobe Flash Notepad Popis programu Grafické uživatelské rozhraní Ovládání grafického režimu Režim přidávání/editace stavů Režim odstraňování stavů Režim přidávání/editace přechodů Režim odstraňování přechodů Undo a redo Zápis pomocí textového režimu Iniciální stav Přechodová funkce deterministického konečného automatu Přechodová funkce nedeterministického konečného automatu Koncové stavy Stavy a znaky vstupní abecedy konečného automatu Načtení automatu Ukládání automatu Vložení appletu do odpovědníku Spuštění programu a2qdef Návrh v

6 5.1 Návrh základních objektů Požadavky na kreslení automatů Návrh GUI Požadavky na vizualizaci automatů Návrh formátu textové reprezentace automatu pro načítání a odesílání Komunikace mezi appletem a odpovědníkem Implementace Třída AutomatonApplet Architektura grafického rozhraní Třída AutomatonPanel Balíček undo Třída UndoTool Rozhraní Action Třída TabbedPaneListener Třída Automaton Třída State void drawstate(graphics g) boolean containspoint(point p) boolean equals(object o) Třída Transition Třída Tools Třída TransformMethods Třída AutomaticAutomatonDrawer Vytvoření částečné matice sousednosti Uspořádání do vrstev Opravení přetečení Vytvoření kompletní matice sousednosti Redukce hranových průsečíků Přiřazení souřadnic Balíček exceptions Závěr Literatura A A vi

7 Kapitola 1 Úvod Studium teoretické informatiky poskytuje teoretické základy pro rešení praktických úloh a zároveň rozvíjí u studentů abstraktní myšlení a formální vyjadřování. Studenti vysokých škol se zaměřením na informatiku se proto s teoretickou informatikou setkávají velmi brzy a mnoho z nich považuje tyto předměty za obtížné. Je proto snahou vyučujících poskytnout studentům takové studijní materiály, které budou názorné a pochopitlené. Práce na zlepšení výuky probíhá i v rámci předmětu IB102 Automaty a gramatiky. Výsledkem by měla být sada odpovědníků pro e-learningový systém Masarykovy Univerzity, které využijí jak studenti, tak vyučující. Student si bude moci vyzkoušet své znalosti dle vlastního uvážení a učitelům poslouží jako nástroj na pohodlné zkoušení studentů. Cílem této bakalářské práce bylo vytvořit nástroj pro kreslení automatů, který bude komunikovat s touto sadou odpověníků. Na jedné straně umožní vizualizovat automaty reprezentované textem a na druhé straně dokáže automaty nakreslené prostřednictvím programu transformovat do textové podoby a předat zpět odpovědníku. 1

8 Kapitola 2 Základní pojmy V této kapitole jsou pro úplnost stručně vysvětleny některé základní pojmy z teorie formálních jazyků, jejichž znalost je nutná k pochopení činnosti programu. 2.1 Abeceda Abecedou se rozumí libovolná konečná množina Σ, jejíž prvky nazýváme znaky (případně také písmena nebo symboly) abecedy. Příkladem abecedy je třeba množina {a, b}, nebo množina číslic {0, 1,..., 9}. [1] 2.2 Slovo Slovo (též řetězec) v nad abecedou Σ je libovolná konečná posloupnost znaků této abecedy (např. aabb je slovo nad abecedou {a, b}). Prázdné posloupnosti znaků odpovídá tzv. prázdné slovo, označované ε, které má nulovou délku. Množinu všech slov nad abecedou Σ značíme Σ*. [1] 2.3 Jazyk Jazyk nad abecedou Σ je libovolná množina slov nad Σ (jazyky nad Σ jsou tedy právě podmnožiny Σ*). Například {10, 1, , 01} je jazyk nad abecedou {0, 1}, prázdná množina je jazyk nad libovolnou abecedou, atd. Jazyky ovšem mohou být i nekonečné, příkladem takového jazyku by mohl být jazyk nad abecedou {a, b}, který obsahuje všechna slova, která mají stejný počet symbolů a i b. [1] 2.4 Konečný automat Konečný automat je matematický model jednoduchého zařízení s konečnou pamětí, který je schopen rozpoznat určitý jazyk. Je vybaven konečně stavovou řídicí jednotkou (tj. konečnou pamětí), čtecí hlavou a páskou, na které je zapsané vstupní slovo. Na začátku výpočtu je hlava umístěna na nejlevějším políčku pásky. Automat na základě přečteného symbolu a momentálního stavu svůj stav změní a posune čtecí hlavu o jedno políčko vpravo. Výpočet končí, pokud se automat zablokuje, nebo přečte celé vstupní slovo. Slovo zapsané na 2

9 2.5. ZÁPIS KONKRÉTNÍCH KONEČNÝCH AUTOMATŮ pásce je automatem akceptováno, pokud je celé přečteno a výsledný stav je některý z předem určených koncových stavů. Množina slov, která daný konečný automat akceptuje, tvoří jazyk akceptovaný automatem M. Jazyky, které je možné popsat pomocí konečného automatu, se nazývají regulární. [1] Formálně je konečný automat (Finite Automaton, FA, též FSM z anglického finite state machine) M definován jako pětice(s, Σ, δ, q 0, F) [1] S je neprázdná konečná množina stavů. Σ je vstupní abeceda. δ: S Σ S je parciální přechodová funkce. q 0 S je počáteční stav. F S je množina koncových stavů. Automaty lze dále rozdělit na deterministické a nedeterministické. Rozdíl tkví v definici přechodové funkce. Deterministický automat povoluje přechod pod jedním symbolem pouze do jediného stavu, zatímco nedeterministický může přecházet pod jedním symbolem do více stavů. Vyjadřovací síla se však nemění, oba typy automatů popisují stále třídu regulárních jazyků. 2.5 Zápis konkrétních konečných automatů Úplná definice konkrétního automatu musí zahrnovat popis všech složek pětice z formální definice. Není však nutné tyto složky vždy reprezentovat standardní množinovou sybolikou. V praxi se často používají i jiné (přehlednější) způsoby reprezentace konečných automatů. Předvedem si dva z nich na automatu M. Necht M=({q0, q1, q2}, {a, b}, δ, q0, {q2}) je FA, kde δ(q0, a) = q1 δ(q1, b) = q0 δ(q0, b) = q2 δ(q2, a) = q0 δ(q1, a) = q2 δ(q2, b) = q1 Příklad 2.5.1: Formální definice automatu M Tabulka přechodové funkce Automat M je možné reprezentovat pomocí tabulky tak, že stavy automatu vypíšeme v záhlaví řádků, vstupní symboly v záhlaví sloupců, přechodová funkce je určena obsahem vnitřních polí tabulky (znak - značí, že je funkce nedefinována), počáteční stav je označen znakem a koncové stavy znakem. 3

10 2.5. ZÁPIS KONKRÉTNÍCH KONEČNÝCH AUTOMATŮ a b q0 q1 q2 q1 q2 q0 q2 q0 q1 Tabulka 2.1: Tabulka přechodové funkce pro automat M Přechodový graf Ještě přehlednější, a proto nejčastěji používaný, způsob. Stavy odpovídají uzlům, přechodová funkce je znázorněna hranami, vstupní abeceda je tvořena symboly, kterými jsou hrany ohodnoceny. Počáteční stav je označen šipkou a koncové stavy jsou dvojitě zakroužkovány. Obrázek 2.1: Přechodový graf automatu M 4

11 Kapitola 3 Použité technologie Nástroj pro vizualizaci automatů byl napsaný jako Applet v programovacím jazyce Java, ve vývojovém prostředí NetBeans. Komunikace mezi HTML stránkou a programem je zajištěna prostřednictvím JavaScriptu a knihoven LiveConnect. Ikony byly vytvořeny ve zkušební verzi programu Adobe Flash. Všechny použité technologie jsou podrobněji popsány dále v této kapitole. 3.1 Java Typovaný objektově orientovaný programovací jazyk vysoké úrovně. Hlavní vlastností, kterou se Java vyznačuje, je její přenositelnost a nezávislost na hardware či operačním systému. Zdrojové soubory se totiž nekompilují do nativního kódu procesoru, ale do takzvaného bytekódu jazyku, kterému rozumí virtuální stroj JVM (Java Virtual Machine). Programy se pak spouští prostřednictvím JVM, který mimojiné překládá za běhu bytekód do nativního kódu procesoru a provádí další úkony nezbytné pro běh programu. Virtuální stroj JVM je dostupný pro mnoho různých operačních systémů MS Windows, Solaris, Linux či Mac OS. [8] 3.2 Java SE API verze 6 Jde o zkratku Java Standard Edition Application Programming Interface, pod níž se skrývá již napsaný kód organizovaný do balíčků (zvaných packages) s podobnou tématikou. API poskytuje základní funkcionalitu programům psaných v Javě. Najdeme zde širokou škálu tříd, které můžeme uplatnit v našem programu a ulehčit si tak o mnoho naši práci. Mezi nejpoužívanější třídy poskytované tímto API patří například třídy implementující rozhraní java.util.collection, které poskytují užitečné dynamické struktury frontu, zásobník, množinu, seznam a jiné. Další třídy umožňují například práci s grafikou, XML soubory, databázemi atd. [8] [9]. Kompletní seznam dostupných tříd a její popis je dostupný v dokumentaci: [10] Java Swing Zvláštní pozornost zaslouží balíček javax.swing, jehož třídy umožňují programátorovi jednoduše implementovat různé prvky pro tvorbu grafického rozhraní. Díky funkci Look 5

12 3.3. HTML and Feel lze aplikaci naprogramovat tak, aby vzhledově vypadala obdobně jako zbytek systému. [9] 3.3 HTML Značkovací jazyk používaný pro prezentaci informací na Internetu. [14] 3.4 Java Applet Program napsaný v Javě, který je určený pro běh na internetových stránkách. Nezbytné třídy pro vytvoření appletu a pro práci s ním nalezneme v balíčku API java.applet. Applet se do webové stránky zavádí pomocí speciálních tagů a nebo pomocí JavaScriptu. V ukázkovém zdrojovém kódu je uvedeno, jak může vypadat tělo HTML stránky, která obsahuje applet. Byl použit tag APPLET, jelikož funguje ve všech běžných webových prohlížečích. Pomocí tagu PARAM, který se nachází uvnitř elementu APPLET, můžeme navíc appletu předat další informace, které program může potřebovat. [9] [11] <BODY> <APPLET code="applet.class" name="jmenoappletu" width="500" height="415" MAYSCRIPT> <PARAM name="parametr" value="hodnota"> </APPLET> </BODY> 3.5 JavaScript Populární skriptovací jazyk pro HTML stránky vyvinutý firmou Netscape. [12] 3.6 LiveConnect Knihovna původně vyvinutá firmou Netscape, která velmi zjednodušuje komunikaci mezi Javou a JavaScriptem. Umožňuje volat metody appletu ze skriptu v HTML stránce a naopak. [13] 3.7 NetBeans IDE Volně šířitelné vývojové prostřední především pro jazyk Java, ale novější verze podporují i PHP, JavaScript, C/C++, Groovy nebo Ruby. Instalace je dostupná pro všechny významné operační systémy Windows, Solaris, Linux a Mac OS.[15] 6

13 3.8. SUBVERSION 3.8 Subversion Program pro ukládání zdrojových souborů na server s možností procházení starších verzí. Takové řešení zaručuje přenositelnost a umožní přístup k aktuálním zdrojovým souborům všem členům vývojového týmu. Subversion podporuje Netbeans IDE, což je velmi pohodlné. 3.9 Adobe Flash Komerční program na tvorbu vektorové grafiky, animace a jednoduchých interaktivních aplikací. Pro programování poskytuje vlastní skriptovací jazyk ActionScript (aktuálně ve verzi 3.0). Jeho hlavní výhodou je sloučení tvorby grafiky, animace a programování do jednoho programového celku. Velkým negativem je ovšem cena, velká výpočetní náročnost pro běh programů a jistá nepřehlednost při tvorbě náročnějších projektů Notepad++ Bezplatný textový editor pro platformu Windows s množstvím užitečných funkcí. Například zvládá zvýraznění syntaxe více než dvaceti programovacích jazyků. [6] 7

14 Kapitola 4 Popis programu Nástroj pro vizualizaci a kreslení konečných automatů je applet, který nalezne uplatnění hlavně v odpovědnících předmětu IB102 - Automaty a gramatiky. Pokud je po studentovi vyžadováno napsat definici automatu, může si pomocí tohoto nástroje práci ulehčit a jednoduše automat nakreslit a poté předat odpovědníku prostřednictvím programu. V případě otázek, kdy je automat zadaný a student má odpovědět na nějakou otázku týkající se tohoto automatu, může si automat vizualizovat a jeho podobu dále upravovat. Není ovšem nutné applet integrovat s odpovědníky, lze ho používat i samostatně. Pokud si například student chce nakreslit automat pro vlastní potřeby, má možnost. Je třeba zmínit, že program podporuje kresbu deterministických i nedeterministických automatů (včetně automatu s epsilon kroky) a program je dokáže od sebe rozlišit. K samotnému kreslení automatu je možné použít dvou režimů grafický a textový. Grafický režim je velmi intuitivní a k jemu ovládání postačí kurzor myši. V textovém režimu je možné zapsat automat v definovaném formátu, který se podobá formální definici. Mezi těmito režimy je možné se kdykoli přepnout a provést úpravy, které se projeví v obou reprezentacích. Kapitola dále podrobně popisuje všechny funkce, které program nabízí a jak je používat. 4.1 Grafické uživatelské rozhraní Grafické rozhraní se podobá kreslícím programům, jakými jsou třeba Adobe Photoshop nebo MS Paint. Rozhraní těchto programů jsou už zažitá a ozkoušená. Nemá s nimi tedy problém ani méně zkušený uživatel. GUI nástroje pro kreslení a vizualizaci automatů se skládá ze tří částí z kreslící plochy, textového pole a panelu nástrojů, na kterém se nacházejí všechna důležitá tlačítka. Textové pole zobrazuje textovou reprezentaci automatu, zatímco kreslící plocha vykresluje automat graficky. Mezi textovým polem a kreslící plochou se lze kdykoli přepnout pomocí záložek. Záleží na uživateli jaký režim preferuje. S panelem lze, stejně jako ve výše zmíněných programech, pohybovat. Uživatel si ho tedy může umístit tak, aby mu jeho pozice vyhovovala. 4.2 Ovládání grafického režimu Jak už bylo řečeno, kresba automatu v grafickém režimu se provádí pomocí kurzoru myši. Samotný kurzor by však nestačil a proto je k dispozi panel nástrojů, pomocí něhož se mů- 8

15 4.2. OVLÁDÁNÍ GRAFICKÉHO REŽIMU Obrázek 4.1: Grafické rozhraní appletu žeme přepínat do různých režimů, které mění funkci levého tlačítka myši, a provádět další operace Režim přidávání/editace stavů Tento režim nám zpřístupní textové pole, do kterého můžeme zadat jméno stavu, a další komponenty, které nám umožní nastavit, zda bude nový stav koncový nebo iniciální. Pokud nezadáme jméno stavu, zvolí se implicitní jméno, které je ve tvaru qn, kde n je přirozené číslo. Stav přidáme kliknutím myši na prázdé místo v kreslící ploše. V tomto režimu můžeme rovněž stavy editovat, a to tím způsobem, že myší označíme stav, jehož atributy chceme změnit, a na panelu nástrojů provedeme požadované úpravy. Změna pozice stavu se provádí stylem drag and drop. 9

16 4.2. OVLÁDÁNÍ GRAFICKÉHO REŽIMU Obrázek 4.2: Popis funkcí panelu nástrojů Režim odstraňování stavů Po nastavení režimu můžeme jednotlivé stavy odebírat tak, že na ně klikneme myší. Pokud je se stavem spojený nějaký přechod, bude taktéž smazán Režim přidávání/editace přechodů Přidávání přechodů se od přidávání stavů příliš neliší. Přepneme se do režimu přidávání přechodů. Do textového pole, které se odemkne na panelu nástrojů, vepíšeme všechny symboly, pod kterými můžeme tímto přechodem přejít do následujícího stavu. Slova oddělujeme čárkou. Samotné přidání přechodu provedeme kliknutím na dva stavy, respektive dvakrát na jeden, pokud se jedná o reflexivní přechod. V režimu přidávání přechodů můžeme také jednotlivé přechody upravovat. Kromě změny přechodových slov je možné přechody pomocí myši ohýbat Režim odstraňování přechodů Umožňuje mazání přechodů klikáním myši, obdobně jako u odebírání stavů Undo a redo Pomocí tlačítka undo se můžeme kdykoliv vrátit o krok zpět a vrátit tak jakékoliv nechtěné změny, které jsme při editaci automatu provedli. Tlačítko redo obnovuje úpravy, které jsme vrátili. 10

17 4.3 Zápis pomocí textového režimu 4.3. ZÁPIS POMOCÍ TEXTOVÉHO REŽIMU Textový režim nevyužívá žádné speciální tlačítka nebo jiné prvky. Je ale nutné při zápisu do textového pole dodržovat určitou formu. Definice se skládá ze tří částí: inicální stav, přechodová funkce, koncové stavy (v tomto pořadí). Následuje popis těchto částí (kompletní popis včetně příkladů je k dispozici na internetové dokumentaci [7]) Iniciální stav Je definován pravidlem: init = X, kde X je název iniciálního stavu. Pokud není pravidlo uvedeno, je určen za iniciální stav první nalezený stav Přechodová funkce deterministického konečného automatu Přechodová funkce je definována pravidly: (X, y) = Z což znamená přechod ze stavu X pod znakem z do stavu Z Přechodová funkce nedeterministického konečného automatu Přechodová funkce je definována pravidly: (X, y) = {Z1, Z2,...} což znamená přechod ze stavu X pod znakem z do stavu Z1, Z2, atd Koncové stavy Koncové stavy jsou definovány pravidlem: F = {X, Y,...}, kde X, Y jsou názvy konečných stavů. Pokud není uveden, není definován žádný konečný stav. Případně lze uvést též jen F = {} Stavy a znaky vstupní abecedy konečného automatu Název stavu, případně znaku vstupní abecedy je jakýkoliv řetězec znaků, s výjimkou speciálních znaku a bílých znaků. Speciální znaky: { } ( ), = \ a mezera. Speciální znak je možno uvést znakem "\". Bílé znaky kromě mezery nelze v názvu stavu či vstupní abecedy uvést. Epsilon (prázdný znak) je definován sekvencí "\e". Pokud je epsilon použito v názvu stavu nebo znaku vstupní abecedy a jsou použity i jiné znaky, tak je ignorováno tzn. (B\eA, \e\e) = Z se bere jako (BA, \e) = Z. 4.4 Načtení automatu Načítání probíhá automaticky dle skriptu, uživatel tedy nemůže do průběhu načítání zasáhnout aniž by měnil skript na stránce s odpovědníkem. 11

18 4.5. UKLÁDÁNÍ AUTOMATU Obrázek 4.3: Textový režim 4.5 Ukládání automatu Ukládání probíhá automaticky. Tzn. po každé změně se výsledek odešle HTML komponentě (například textové pole), která je appletu přidělena. 4.6 Vložení appletu do odpovědníku Pro usnadnění práce s odpovědníky je součástí této práce také jednoduchý konzolový program jménem a2qdef v Javě, který automaticky vloží potřebný kód do souboru se sadou otázek (koncovka qdef). 12

19 4.6. VLOŽENÍ APPLETU DO ODPOVĚDNÍKU Spuštění programu a2qdef Program se spouští příkazem java -jar a2qdef.jar input output applet, kde input je vstupní soubor qdef, output je výstupní soubor a applet je odkaz s umístěním appletu. Argument applet je nepovinný. Programu je dále nutné nějak sdělit, jaký automat se má po spuštění appletu vykreslit a zda má být kreslený automat deterministický. To se provádí pomocí tagů AUTOMAT a DET. Element AUTOMAT obsahuje definici automatu, jak je popsaná v kapitole 4.3 s jedním omezením navíc: definice nesmí obsahovat řetězce "<automat>","</automat>","<det>" nebo "</det>". Element DET smí obsahovat bud řetězec "true" a nebo "false". "True" pokud očekáváme deterministický automat, jinak "false". Oba tagy jsou nepovinné a v případě jejich neuvedení se použijí implicitní hodnoty <automat></automat><det>true</det>. Pokud chceme zamezit vložení appletu u nějaké otázky, lze toho dosáhnout vepsáním klíčového slova ignore do tagu AUTOMAT: "<automat>ignore</automat>". Je důležité zmínit, že formulář pro tvorbu odpovědníků Informačního Systému Masarykovy Univerzity(dále IS MU) vkládá označení textového pole ":e" pro vepsání odpovědi na nový řádek a pro soubory používá kódování UTF-8. Program počítá s těmito vlastnostmi a je třeba je dodržet, pokud ke tvorbě odpovědníku nepoužíváme nástrojů poskytovaných IS MU. 13

20 Kapitola 5 Návrh Před vývojem jakékoliv aplikace je nutné zvážit, pro koho bude výsledek naší práce určen. Jaké funkce od programu očekáváme, které jsou naopak nad rámec naší práce a měly by být vypuštěny. A jaké technologie budou nejvhodnější pro vývoj. Většina těchto úvah byla v případě této práce jednoduchá. Aplikace byla od začátku zamýšlena primárně pro studenty k využití v rámci univerzitního e-learningového systému. Při výběru programovacího jazyka a prostředí připadali v úvahu dva kandidáti ActionScript a Java. Obě alternativiy se pyšní silným vývojovým prostředím, v případě Action- Scriptu Adobe Flash, a v případě Javy NetBeans IDE. Avšak ActionScript trpí oproti Javě mnoha nedostatky uzavřené prostředí, problematická správa vstupů a výstupu, nepřehlednost kódu při větších projektech, komerční prostředí, uzavřenost kódu a malé množství knihovních funkcí. Ve všech těchto ohledech Java překonává ActionScript a sama trpí pouze malým množstvím neduhů menší rozšířenost a pomalé spouštní appletů. Vzhledem k těmto okolnostem byla jako programovací jazyk zvolena Java. Požadavky na funkcionalitu by se dali shrnout do pěti bodů: Intuitivní grafické rozhraní Kreslení automatů Vizualizace automatů Načítání a odesílání automatů Komunikace s odpovědníkem 5.1 Návrh základních objektů Ještě před započetím prací na hlavních bodech požadavků bylo nutné navrhnout základní objekty, se kterými bude aplikace pracovat, tj. stav, přechod, automat,... aj. Ačkoliv UML diagramy nejsou přiloženy, v následující kapitole jsou třídy popisující tyto objekty podrobně popsány. 14

21 5.2 Požadavky na kreslení automatů 5.2. POŽADAVKY NA KRESLENÍ AUTOMATŮ Ve druhé fázi návrhu bylo třeba zjistit jaké funkce je třeba poskytnout uživateli, aby měl všechny prostředky k pohodlnému kreslení. Bylo rozhodnuto zahrnout tyto funkce: Přidávání a odebírání stavů Určení zda je stav počáteční nebo koncový Úprava všech vlastností stavů včetně názvu a polohy Přidávání a odebírání přechodů Ohýbání přechodů Otáčení reflexivních přechodů kolem stavu Úprava všech vlastností přechodů Funkce undo a redo Úprava automatu pomocí textu 5.3 Návrh GUI Další fáze spočívala v průzkumu zažitých a osvědčených GUI programů, které se zabývají obdobnou problematikou, a následovně zakomponovat nástroje pro kreslení do návrhu rozhraní. Jako vzor pro tuto práci posloužili hlavně programy Adobe Photoshop a MS Paint. Tedy, že bude použita kreslící plocha a pohyblivý panel s nástroji, mezi kterými si bude uživatel přepínat. 5.4 Požadavky na vizualizaci automatů Bylo nutné zjistit, zda-li jsou k dispozici nějaké algoritmy vhodné pro vykreslování automatů a zda-li je bude možné implementovat. Byl zvolen jednoduchý algoritmus pro vykreslování acyklických orientovaných grafů, jehož základem je prohledávání do šířky (neboli DFS Depth First Search). Vzhledem k tomu, že tento algoritmus pracuje s acyklickými grafy, je ve výsledném programu použita drobná úprava, aby ho bylo možné použít i pro automaty, které jsou obecně cyklické. 5.5 Návrh formátu textové reprezentace automatu pro načítání a odesílání Aby bylo možné načítat a odesílat automaty ve formě textu, bylo nutné definovat formát takového souboru. Návrh této definice nebyl předmětem práce, byl využita již existujicí definice, která je popsána v kapitole

22 5.6. KOMUNIKACE MEZI APPLETEM A ODPOVĚDNÍKEM 5.6 Komunikace mezi appletem a odpovědníkem Tato část je spíše implementačním problémem, v rámci návrhu bylo potřeba pouze zjistit jaká technologie bude k tomuto účelu vhodná. Byl zvolen JavaScript a knihovny LiveConnect. 16

23 Kapitola 6 Implementace Všechny třídy programu jsou uloženy v balíčku cz.muni.fi.ib102.automatondrawing. Ten se pak dále dělí na další 4 podsekce podle funkce. core V tomto balíku je většina tříd včetně těch nejdůležitějších, které zavádí samotný applet a konstruují GUI. exceptions Balík slučující dohromady všechny speciální výjimky, které byly vytvořeny pro potřebu programu. undo Balík Obsahující třídy potřebné pro provádění metod undo() a redo(). Tyto třídy byly přesunuty do samostatného balíčku, protože jich bylo relativně mnoho a úzce spolu souvisely. images Zde jsou uloženy obrázky pro ikony tlačítek. 6.1 Třída AutomatonApplet Každý applet musí být podtřídou třídy java.applet.applet, která poskytuje rozhraní mezi prostředím appletu a internetového prohlížeče. K dispozici je také speciální podtřída třídy Applet zvaná javax.swing.japplet, která je určena pro všechny applety, které využívají komponenty Swingu k vytvoření grafického rozhraní. Webový prohlížeč řídí životní cyklus appletu voláním určitých metod. V zásadě se jedná o čtyři metody: init() Metoda, ve které se odehrává všechna potřebná inicializace. Je volána hned po načtení atributů z elementu PARAM. start() Obvykle volaná po metodě init() a vždy, když se uživatel přepne do okna s appletem po prohlížení jiných stránek. 17

24 6.2. ARCHITEKTURA GRAFICKÉHO ROZHRANÍ stop() Volaná po odchodu ze stránky. destroy() Je zavolána jedině tehdy, když je prohlížeč ukončen obvyklým způsobem. Z uvedeného je patrné, že applet může být inicializován a ukončen pouze jednou, zatímco spuštěn a zastaven může být několikrát. [2] Třída AutomatonApplet využívá Swing a proto dědí po javax.swing.japplet. Metody start() a stop() využity nejsou, poněvadž program nevyužívá aktivního vykreslování a není tedy potřeba zastavovat, respektive opětovně spouštět animaci. Metoda destroy() taktéž není potřeba z obdobného důvodu, není nezbytné cokoliv rušit. Ze čtyř výše jmenovaných metod tedy AutmatonApplet implementuje pouze metodu init(), která spouští tzv. event-dispatching vlákno. V tomto vlákně se zavolá metoda pro vytvoření grafického rozhraní. Pokud se z nějakého důvodu vytvoření GUI nezdaří, vypíše se chybová zpráva a applet skončí. Metody Swingu je nutné spouštět z event-dispatching vlákna, protože většina těchto metod není vláknově zabezpečená a jejich volání z několika různých vláken by mohlo způsobit chyby v konzistenci paměti nebo vzájemné ovlivňování jednotlivých vláken [3]. //spuštění event-dispatch thread SwingUtilities.invokeAndWait(new Runnable() public void run() { creategui(); } }); Applet také implementuje rozhraní ActionListener. Předepisuje jedinou metodu a to actionperformed(actionevent e). Pomocí této metody applet obsluhuje události vyvolané stisknutím tlačítek. 6.2 Architektura grafického rozhraní Třebaže se grafické rozhraní vytváří pouze v jedné metodě creategui() volané v eventdispatching vlákně, skrývá se pod těmito pár řádky kódu rozsáhlá funkcionalita, která zaslouží vlastní kapitolu. Avšak předmětem této práce není popsat princip a použití knihoven Swingu, proto pouze popíšu z jakých komponent se skládá grafické rozhraní aplikace a jakou mají v programu funkci. Úlohu mateřské komponenty, ve které jsou uloženy veškeré prvky grafického rozhraní, plní kontejner (třída java.awt.container). Kontejner nabízí několik způsobů pro rozmist ování komponent a je na vývojáři, který se mu hodí nejlépe. Instance třídy Container použitá v tomto programu využívá hraniční rozložení, tedy BorderLayout. To znamená, 18

25 6.2. ARCHITEKTURA GRAFICKÉHO ROZHRANÍ že je k dispozici pět možných pozic kam lze umístit komponenty doprostřed, nahoru, dolů, doleva nebo doprava (viz obr 6.2). Kontejner obsahuje dvě komponenty toolbar a tabbed pane. Toolbar (třída javax.swing.jtoolbar) nese tlačítka potřebná pro ovládání kreslící plochy a další komponenty nutné pro změnu vlastností nakreslených objektů. Toolbar přímo využívá hraničního rozložení. Díky němu je možné toolbar přichytit ke každému z okrajů, či dokonce ho nechat volně jako samostatné okno. Zbývající místo, prostřední pozici, zaujímá tabbed pane (třída javax.swing.jtabbedpane). Tato komponenta umožňuje nést několik komponent, přičemž každá bude uložna v samostatné záložce. V programu se této komponenty využívá k přepínání mezi textovým a grafickým režimem. Každá záložka obsahuje scroll pane, ve které je umístěn panel. Komponenty scroll pane (třída javax.swing.jscrollpane) jednoduše zajistí posouvání obrazu pokud nějaký prvek přesáhne vymezený prostor. Grafický režim navíc využívá místo obyčejného knihovního panelu AutomatonPanel popsaný v následující sekci. Obrázek 6.1: Diagram grafického rozhraní 19

26 6.3. TŘÍDA AUTOMATONPANEL 6.3 Třída AutomatonPanel Představuje kreslící plochu a jejím účelem je poskytovat všechny činnosti s ní spojené. Kreslící plocha je implementována jako panel, dědí tedy po třídě javax.swing.jpanel. Panely fungují jako víceúčelové kontejnery pro jednodušší komponenty jako třeba tlačítka a textová pole. Může však dobře posloužit i pro vykreslování geometrických tvarů, čehož využívá tato bakalářská práce. Metoda panelu paintcomponent(graphics g2d) má na starosti vykreslení komponent. Přepsáním této metody si můžeme nadefinovat co se přesně bude vykreslovat a také nastavit atributy vykreslování. Například zda se má použít antialiasing. //zapnutí antialiasingu graphics2d.setrenderinghint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON ); Další nezbytnou součástí kreslící plochy je sledování činnosti uživatele a vykreslování objektů na místech, které si zvolí myší. K zajištění této funkce jsou do třídy AutomatonPanel pomocí MouseAdapter přidány MouseListener a MouseMotionListener, které sledují činnost myši a přepsáním adekvátních metod umožňují naprogramovat odezvu na jednotlivé akce. MouseListener sleduje stisk a puštění tlačítka myši přepsáním metod mousepressed(mouseevent e) a mousereleased(mouseevent e), zatímco přepsané metody MouseMotionListener sledují pohyb myši, když je stisknuté tlačítko tzv. dragging (metoda mousedragged(mouseevent e)). Po každé z akcí se vygeneruje patřičná odezva na základě stavu proměnné option, která indikuje režim kreslení. Option může nabývat čtyř stavů přidávání/mazání stavů/přechodů. Vzhledem k tomu, že panel podporuje funkce undo() a redo(), je třeba nějak sledovat změnu některých komponent a přepisování názvů nakreslených objektů. K tomu slouží rozhraní ActionListener a DocumentListener, které panel implementuje. 6.4 Balíček undo Účelem tohoto balíčku je zajistit funkce undo() a redo() pro kreslící plochu. Součástí balíčku je třída UndoTool, rozhraní Action a dalších 12 tříd reprezentujících různé akce. Dvanáct zmíněných tříd akcí umožňuje revertovat provedení těchto činností: přidávání a mazání stavů a přechodů, úpravy názvů, změny polohy stavů a přechodů a přepsání automatu novým pomocí úprav textové reprezentace Třída UndoTool Jednoduchá třída, jejíž základem jsou dvě fronty pomocí níž se provádí vrácení několika naposled provedených akcí. Do jedné fronty se přidávají provedené akce a do druhé se 20

27 6.5. TŘÍDA TABBEDPANELISTENER přidávají akce, které byly vráceny pomocí undo(). Pro případný návrat do původní podoby slouží funkce redo(). Přidání akce vždy vyprázdní frontu pro redo() funkci, jinak by došlo k porušení posloupnosti provedených akcí Rozhraní Action Rozhraní, které akcím používaných ve frontách třídy UndoTool předepisuje dvě metody applyaction(automaton a) a applyinverseaction(automaton a). Z názvů lze odhadnout, že jedna provádí nějakou operaci a druhá provádí její inverzi. Například metoda applyaction(automaton a) u třídy AddStateAction přidá stav do automatu, zatímco inverzní metoda ho odebere. Obrázek 6.2: UML diagram balíčku undo (pro jednoduchost pouze s jedinou třídou akce) 6.5 Třída TabbedPaneListener Jedoduchý listener, který implementuje rozhraní javax.swing.event.changelistener. Toto rozhraní definuje pouze jednu metodu a to statechanged(changeevent e). Metoda značí, že byly přepnuty záložky komponenty tabbed pane. Implementace této metody v třídě TabbedPaneListener má na starosti, aby se při přepnutí záložek správně zobrazila reprezentace automatu, at už grafická nebo textová. 21

28 6.6. TŘÍDA AUTOMATON 6.6 Třída Automaton Třída reprezentující automat. Na první pohled se velmi podobá kolekcím ze standardních knihoven. Obsahuje pro ně typické metody jako třeba contains(object o), add(object o), remove(object o) a size(). I základ třídy tkví ve dvou kolekcích, které uchovávají stavy a přechody automatu. 6.7 Třída State Stav je definován čtyřmi vlastnostmi: jménem, pozicí a zda je koncový a/nebo počáteční. Valnou většinu metod třídy State tvoří takzvané gettery a settery, tedy metody, které vrací hodnotu nějaké vlastnosti nebo naopak některou vlastnost nastavují. Další metody již do tohoto schématu nezapadají, proto jsou popsány dále void drawstate(graphics g) Vykreslí stav jako bíle (resp. červeně, pokud je stav označený) vyplněnou kružnici se jménem stavu zarovnaným do středu. Pokud se jedná navíc o stav konečný nebo počáteční, vykreslí se prvky označující dané vlastnosti vnitřní kružnice nebo šipka směřující do stavu boolean containspoint(point p) Je určena pro test kolize stavu s kurozrem myši vrací true pokud definovaný bod je uvnitř stavu, jinak false. Pro jednoduchost se pro test kolize používá čtverec ohraničující kružnici boolean equals(object o) Metoda, která vrací true, pokud je stav shodný s daným objektem. Metoda dodržuje obecný kontrakt, který je vhodný při překrývání dodržovat [5]. Pro potřeby programu je metoda definována tak, aby se dva stavy rovnali tehdy, když mají shodný název. 6.8 Třída Transition Obdobně jako třída State definuje stav, tato třída definuje přechod. Přechod určuje několik atributů vstupní stav, výstupní stav, kontrolní bod křivky (určuje míru vyklenutí) a seznam symbolů, pod kterými lze přejít z jednoho stavu do druhého. Opět nalezneme několik metod typu getx() a setx(value v), ale většinu kódu zabírají privátní metody pro kresbu přechodů, vzhledem k několika možnostem jak může přechod vypadat. Uživatel má možnost přechod znázornit jako kvadratickou křivku nebo rovnou čáru. V případě smyčky se vykreslí kružnice, která se částečně překrývá se stavem k němuž náleží. Vzniká tak iluze kulaté šipky. 22

29 6.9. TŘÍDA TOOLS 6.9 Třída Tools Statická třída, která poskytuje několik metod, které program využívá pro kreslení objektů. void drawarrow(... ) Kreslí šipku. Point getcurvecontrolpoint(state from, State to, int distance) Vypočítá polohu kontrolního bodu křivky, dle zadaných parametrů. Point getintersectionpoint(point p,point s,int r) Počítá průsečík kružnice a přímky, která je daná bodem p a středem kružnice. Point getrotatedpoint(point anchor, Point point, int angle) Vrací pozici bodu, který vznikne rotací o daný úhel okolo daného bodu. Set getlabelsinrightform(string label) Z daného řetězce vytvoří množinu slov. Jednotlivá slova musí být ve vstupním řetězi oddělená čárkou Třída TransformMethods Statická třída poskytující dvě metody, které jsou určené pro načítání a odesílání automatů v textovém formátu. void loadautomatonfromstring(string s) Načte automat z řetězce formátovaném ve smluveném tvaru. String saveautomatontostring(automaton a) Vytvoří řetězec reprezentující daný automat. Tento řetězec se pak předá dál na výstup Třída AutomaticAutomatonDrawer Další statická třída, která poskytuje pouze jednu veřejnou metodu. Tato veřejná metoda po zavolání automaticky vykreslí automat dle zjednodušeného algoritmu pro vykreslování orientovaných acyklických grafů popsaném v [4]. Vykreslení je rozděleno na šest částí. Každé části odpovídá jedna privátní metoda: 23

30 6.12. BALÍČEK EXCEPTIONS Vytvoření částečné matice sousednosti Vzhledem k tomu, že se pracuje pouze s acyklickými grafy, je třeba algoritmu takový graf poskytnout a zároveň neporušit původní zadání grafu. Toho je dosaženo tak, že se vytvoří matice sousednosti reprezentující graf, který má stromovou strukturu. Naplnění matice je otázkou jednoho průchodu grafem do šířky Uspořádání do vrstev Dle matice sousednosti vytvořené v předchozím kroku se jednotlivé stavy rozmístí do vrstev a to takovým způsobem, že jedné vrstvě odpovídá jedno patro stromu. Vrcholy v každé vrstvě jsou očíslovány Opravení přetečení Plocha na kterou jsou stavy vykreslovány je omezena, proto je třeba přesunout ty stavy, které neodpovídají tomuto omezení. Vrchol je přesunut tak, že se vybere nejbližší místo, které ještě není obsazeno a splňuje omezení daná oknem Vytvoření kompletní matice sousednosti Pro další metody je třeba kompletní matice sousednosti, vytvoří ji tato metoda Redukce hranových průsečíků V každé vrstvě jsou vrcholy přeskládány tak, aby vzniklo co nejméně průsečíků. Funguje na principu algoritmu Bubble Sort. Vždy se spočítá počet průsečíků a pokud je po přehození počet průsečíků menší, pozice vrcholů se prohodí Přiřazení souřadnic Nakonec se jednotlivé pozice přepočítají na reálné souřadnice, tak aby vrcholy nebyly příliš blízko u sebe, ale zase ne moc daleko Balíček exceptions Sada speciálních výjimek, které jsou program využívá. Výjimka IllegalInputStringFormatException Výjimka, ke které dojde pokud je vstupní řetězec nesprávně formátován. Výjimka MultipleInitialStatesException Vyhozena pokud má automat více než jeden počáteční stav. 24

31 6.12. BALÍČEK EXCEPTIONS Výjimka NoInitialStateException Výjimka značící, že automat nemá žádný iniciální stav. Výjimka NonDeterministicAutomatonException Pokud automat není deterministický, ačkoliv byl očekáván, bude vyhozena tato výjimka. 25

32 Kapitola 7 Závěr V rámci této práce byl vytvořen nástroj, který umožní pohodlnou konstrukci konečných automatů. Uživatel má na výběr mezi grafickým a textovým režimem, záleží jen na preferenci. Načítání a ukládání probíhá automaticky, takže se uživatel může soustředit pouze na samotnou tvorbu automatu. Aplikace nalezne uplatnění v odpovědnících předmětu IB102 Automaty a gramatiky, případně při samostatném studiu předmětu. K programu je přibalen program, který automaticky vkládá potřebný kód do souboru se sadou otázek odpovědníku, takže ani tvůrce odpovědníků se nemusí zatěžovat dopisováním kódu pro applet. Někteří uživatelé preferují reprezentaci automatu pomocí tabulky přechodové funkce, proto by bylo vhodné v budoucnu přidat k textovému a grafickému režimu další záložku s touto možností. Užitečné by také bylo rozšířit použitelnost aplikace nad rámec odpovědníků. Tedy poskytnout možnost exportu automatu (např. ve formátu obrázku) a vylepšit systém ukládání/načítání automatů, aby byl nezávislý na odpovědnících. 26

33 Literatura [1] Černá, I. a Křetínský, M. a Kučera, A.: Automaty a formální jazyky I, Masarykova Univerzita, Fakulta Informatiky, , 2.2, 2.3, 2.4 [2] Lesson: Applets, Sun Microsystems, Inc., < tutorial/deployment/applet/index.html>. 6.1 [3] The Event Dispatch Thread, Sun Microsystems, Inc., < docs/books/tutorial/uiswing/concurrency/dispatch.html>. 6.1 [4] Kohut, O.: Algoritmy pro vykreslování grafů (diplomová práce), Technická Univerzita Ostrava, Fakulta elektrotechniky a informatiky, [5] Bloch, J.: Java efektivně - 57 rad softwarového experta, Grada Publishing, [6] About Notepad++, < notepad-plus.sourceforge.net/uk/site.htm> [7] Textový zápis automatů, < arran.fi.muni.cz:8180/fja/help/fa.html>. 4.3 [8] Campione, M. a Walrath, K.: The Java Technology phenomenon, Sun Microsystems, Inc., < intro/definition.html>. 3.1, 3.2 [9] Nourie, D.: Unraveling Java Technology Terminology, Sun Microsystems, Inc., < unravelingjava.html>. 3.2, 3.2.1, 3.4 [10] JDK 6 Documentation, Sun Microsystems, Inc., < 6/docs/index.html>. 3.2 [11] JDK 5 Documentation - Package java.applet, Sun Microsystems, Inc., < java.sun.com/j2se/1.5.0/docs/api/java/applet/package-summary. html>. 3.4 [12] About JavaScript, Mozilla Developer Center (MDC), < mozilla.org/en/about_javascript>. 3.5 [13] LiveConnect Overview, Mozilla Developer Center (MDC), < mozilla.org/en/core_javascript_1.5_guide:liveconnect_overview>. 3.6 [14] Introduction to HTML 4, World Wide Web Consortium (W3C), < org/tr/rec-html40/intro/intro.html>. 3.3 [15] NetBeans - Development Simplified, < intro/intro.html>

34 Příloha A A Součástí práce je i přiložené CD, na kterém jsou následující soubory: Zdrojový kód této práce ve formátu XML Tato práce ve formátu PDF Zdrojové soubory nástroje pro vizualizaci a kreslení konečných automatů Zdrojové soubory aplikace a2qdef Ukázková HTML stránka s výsledným appletem Zkompilovaný program a2qdef s ukázkovou sadou odpovědníků 28

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA BAKALÁŘSKÁ PRÁCE 2002 SEDLÁK MARIAN - 1 - OSTRAVSKÁ UNIVERZITA PŘÍRODOVĚDECKÁ FAKULTA KATEDRA INFORMATIKY A POČÍTAČŮ Vizualizace principů výpočtu konečného

Více

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná. Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,

Více

1. Webový server, instalace PHP a MySQL 13

1. Webový server, instalace PHP a MySQL 13 Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Tvorba kurzu v LMS Moodle

Tvorba kurzu v LMS Moodle Tvorba kurzu v LMS Moodle Před počátkem práce na tvorbě základního kurzu znovu připomínám, že pro vytvoření kurzu musí být profil uživatele nastaven administrátorem systému minimálně na hodnotu tvůrce

Více

ANOTACE vytvořených/inovovaných materiálů

ANOTACE vytvořených/inovovaných materiálů ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a

Více

Programátorská příručka

Programátorská příručka KAPITOLA 1. PROGRAMÁTORSKÁ PŘÍRUČKA Kapitola 1 Programátorská příručka 1.1 Úvod 1.1.1 Technologie Program je psaný v jazyce Java 1.7. GUI je vytvářeno pomocí knihovny SWT. (http://eclipse.org/swt/) Pro

Více

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika

Více

MANUÁL VÝPOČTOVÉHO SYSTÉMU W2E (WASTE-TO-ENERGY)

MANUÁL VÝPOČTOVÉHO SYSTÉMU W2E (WASTE-TO-ENERGY) MANUÁL VÝPOČTOVÉHO SYSTÉMU W2E (WASTE-TO-ENERGY) 0 1. PRACOVNÍ PLOCHA Uspořádání a vzhled pracovní plochy, se kterým se uživatel během práce může setkat, zobrazuje obr. 1. Obr. 1: Uspořádání pracovní plochy

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

Matematika v programovacích

Matematika v programovacích Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?

Více

Programátorská dokumentace

Programátorská dokumentace Programátorská dokumentace Požadavky Cílem tohoto programu bylo představit barevné systémy, zejména převody mezi nejpoužívanějšími z nich. Zároveň bylo úkolem naprogramovat jejich demonstraci. Pro realizaci

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

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý Uživatelský manuál Aplikace GraphViewer Vytvořil: Viktor Dlouhý Obsah 1. Obecně... 3 2. Co aplikace umí... 3 3. Struktura aplikace... 4 4. Mobilní verze aplikace... 5 5. Vytvoření projektu... 6 6. Části

Více

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML ROZHRANÍ ESA XML Ing. Richard Vondráček SCIA CZ, s. r. o., Thákurova 3, 160 00 Praha 6 www.scia.cz 1 OTEVŘENÝ FORMÁT Jednou z mnoha užitečných vlastností programu ESA PT je podpora otevřeného rozhraní

Více

1 Uživatelská dokumentace

1 Uživatelská dokumentace 1 Uživatelská dokumentace Systém pro závodění aut řízených umělou inteligencí je zaměřen na závodění aut v prostředí internetu. Kromě toho umožňuje testovat jednotlivé řidiče bez nutnosti vytvářet závod

Více

43 HTML šablony. Záložka Šablony v systému

43 HTML šablony. Záložka Šablony v systému 43 HTML šablony Modul HTML šablony slouží ke správě šablon pro výstupy z informačního systému modularis ve formátu HTML. Modul umožňuje k šablonám doplňovat patičku, dokumentaci a vázat šablony na konkrétní

Více

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací. Trochu teorie Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací. Každá spuštěná aplikace má alespoň jeden proces

Více

Naproti tomu gramatika je vlastně soupis pravidel, jak

Naproti tomu gramatika je vlastně soupis pravidel, jak 1 Kapitola 1 Úvod V přednášce se zaměříme hlavně na konečný popis obecně nekonečných množin řetězců symbolů dané množiny A. Prvkům množiny A budeme říkat písmena, řetězcům (konečným posloupnostem) písmen

Více

Zobrazte si svazy a uspořádané množiny! Jan Outrata

Zobrazte si svazy a uspořádané množiny! Jan Outrata LatVis Zobrazte si svazy a uspořádané množiny! Jan Outrata Motivace potřeba visualizovat matematické (algebraické) struktury rychle, přehledně a automaticky počítačovými prostředky ruční kreslení je zdlouhavé

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

Zobrazování bannerů podporují pouze nově vytvořené šablony motivů vzhledu.

Zobrazování bannerů podporují pouze nově vytvořené šablony motivů vzhledu. Bannerový systém ProEshop od verze 1.13 umožňuje zobrazování bannerů na popředí e-shopu. Bannerový systém je přístupný v administraci e-shopu v nabídce Vzhled, texty Bannerový systém v případě, že aktivní

Více

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě PHP PHP původně znamenalo Personal Home Page a vzniklo v roce 1996, od té doby prošlo velkými změnami a nyní tato zkratka znamená Hypertext Preprocessor. PHP je skriptovací programovací jazyk, určený především

Více

10 Balíčky, grafické znázornění tříd, základy zapozdření

10 Balíčky, grafické znázornění tříd, základy zapozdření 10 Balíčky, grafické znázornění tříd, základy zapozdření 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 příkazům balíčkům, grafickému

Více

2 Tvorba interaktivních grafických programů

2 Tvorba interaktivních grafických programů 2 Tvorba interaktivních grafických programů Studijní cíl Tento blok je věnován vytváření interaktivních grafických programů. Podrobně bude vysvětleno, jakým způsobem je možno programově reagovat na události

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod 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 třídám a objektům, instančním

Více

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13. Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy

Více

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans. 1 Grafické rozhraní Studijní cíl Tento blok je věnován vytváření programů s využitím grafického rozhraní (GUI). Vysvětlen bude základní filozofie pro vytváření aplikací s GUI ve srovnání s konzolovými

Více

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

Více

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu StatSoft Typy souborů ve STATISTICA Tento článek poslouží jako přehled hlavních typů souborů v programu STATISTICA, ukáže Vám jejich možnosti a tím Vám dovolí využívat program efektivněji. Jistě jste již

Více

Profilová část maturitní zkoušky 2017/2018

Profilová část maturitní zkoušky 2017/2018 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

Windows 8.1 (5. třída)

Windows 8.1 (5. třída) Windows 8.1 (5. třída) Pracovní plocha: takto vypadá Pracovní plocha u nás ve škole - pozadí Pracovní plochy - ikony na pracovní ploše - Hlavní panel - ikony na Hlavním panelu (zvýrazněná ikona spuštěné

Více

Programové vybavení počítačů operační systémy

Programové vybavení počítačů operační systémy Programové vybavení počítačů operační systémy Operační systém Základní program, který oživuje hardware a poskytuje prostředí pro ostatní programy Řídí využití procesoru, síťovou komunikaci, tisk, ovládá

Více

ZÁPOČTOVÁ PRÁCE z UIR

ZÁPOČTOVÁ PRÁCE z UIR ZÁPOČTOVÁ PRÁCE z UIR Jméno a příjmení: Jan Tichava Osobní číslo: Studijní skupina: pondělí, 4 5 Obor: INIB INF E-mail: jtichava@students.zcu.cz Datum odevzdání: 1.5.2006 Zadání Označení zadání: 2004KT01

Více

Průvodce aplikací FS Karta

Průvodce aplikací FS Karta Průvodce aplikací FS Karta Základní informace k Aplikaci Online aplikace FS Karta slouží k bezpečnému ukládání osobních údajů fyzických osob a k jejich zpracování. Osobní údaje jsou uloženy ve formě karty.

Více

Postupy práce se šablonami IS MPP

Postupy práce se šablonami IS MPP Postupy práce se šablonami IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Postupy práce se šablonami IS MPP Modul

Více

Profilová část maturitní zkoušky 2013/2014

Profilová část maturitní zkoušky 2013/2014 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta

Více

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Dynamicky vázané metody. Pozdní vazba, virtuální metody Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, [161014-1204 ] 11 2.1.35 Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, kde i = 0, 1,..., takto: p 0 q právě tehdy, když bud p, q F nebo p, q F. Dokud i+1 i konstruujeme p

Více

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ Abecedou se rozumí libovolná konečná množina Σ. Prvky abecedy nazýváme znaky (symboly) Slovo (řetězec) v nad abecedou Σ je libovolná konečná posloupnost znaků této abecedy. Prázdné posloupnosti znaků odpovídá

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

OPERAČNÍ SYSTÉM. základní ovládání. Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel

OPERAČNÍ SYSTÉM. základní ovládání. Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel OPERAČNÍ SYSTÉM základní ovládání Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel Pár otázek na začátek popište k čemu se používá počítač v jakých oborech lidské činnosti se využívá počítačů?

Více

Úvod. Program ZK EANPRINT. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu

Úvod. Program ZK EANPRINT. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu sq Program ZK EANPRINT verze 1.20 Uživatelská dokumentace programu Úvod Základní vlastnosti programu Jednoduchost ovládání - umožňuje obsluhu i málo zkušeným uživatelům bez nutnosti většího zaškolování.

Více

Přehledy pro Tabulky Hlavním smyslem této nové agendy je jednoduché řazení, filtrování a seskupování dle libovolných sloupců.

Přehledy pro Tabulky Hlavním smyslem této nové agendy je jednoduché řazení, filtrování a seskupování dle libovolných sloupců. Přehledy pro Tabulky V programu CONTACT Professional 5 naleznete u firem, osob a obchodních případů záložku Tabulka. Tuto záložku lze rozmnožit, přejmenovat a sloupce je možné definovat dle vlastních požadavků

Více

Windows 10 (5. třída)

Windows 10 (5. třída) Windows 10 (5. třída) Pracovní plocha: takto vypadá Pracovní plocha u nás ve škole - pozadí Pracovní plochy - ikony na Pracovní ploše ikona Student 17 (se jménem přihlášeného uživatele) ikona Tento počítač

Více

MS PowerPoint ZÁKLADY

MS PowerPoint ZÁKLADY MS PowerPoint ZÁKLADY UKÁZKA ŠKOLÍCÍCH MATERIÁLŮ Centrum služeb pro podnikání s.r.o. 2014, I. Verze, TP OBSAH 1. Úvod do PowerPointu... 1 2. Otevření PowerPointu... 1 3. Pracovní prostředí PowerPointu...

Více

Vývojové prostředí,průvodce novou aplikací

Vývojové prostředí,průvodce novou aplikací Vývojové prostředí,průvodce novou aplikací Realizace praktických úloh zaměřených na dovednosti v oblastech: Vývojové prostředí programu Control Web 2000 Vytvoření jednoduchého technologického schéma pomocí

Více

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4 CRM SYSTÉM KORMORÁN PŘÍRUČKA ADMINISTRÁTORA Obsah 1 Administrace systému 3 1.1 Uživatelské účty.................................. 3 1.2 Přístupová práva................................. 3 1.3 Moduly.......................................

Více

Reliance 3 design OBSAH

Reliance 3 design OBSAH Reliance 3 design Obsah OBSAH 1. První kroky... 3 1.1 Úvod... 3 1.2 Založení nového projektu... 4 1.3 Tvorba projektu... 6 1.3.1 Správce stanic definice stanic, proměnných, stavových hlášení a komunikačních

Více

Obsah. 1 Úvod do Visia 2003 15. 2 Práce se soubory 47. Předmluva 11 Typografická konvence použitá v knize 13

Obsah. 1 Úvod do Visia 2003 15. 2 Práce se soubory 47. Předmluva 11 Typografická konvence použitá v knize 13 Předmluva 11 Typografická konvence použitá v knize 13 1 Úvod do Visia 2003 15 Visio se představuje 16 Výchozí podmínky 16 Spuštění a ukončení Visia 18 Způsoby spuštění Visia 18 Ukončení práce s Visiem

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: MS Excel I Anotace:

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: MS Excel I Anotace: Registrační číslo projektu: CZ.1.07/1.4.00/21.3712 Škola adresa: Základní škola T. G. Masaryka Ivančice, Na Brněnce 1, okres Brno-venkov, příspěvková organizace Na Brněnce 1, Ivančice, okres Brno-venkov

Více

5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA

5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA 5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA 5. 15. 1 Charakteristika předmětu A. Obsahové vymezení: IVT se na naší škole vyučuje od tercie, kdy je cílem zvládnutí základů hardwaru, softwaru a operačního systému,

Více

SignEditor 1 - návod k použití

SignEditor 1 - návod k použití SignEditor 1 - návod k použití Tomáš Ryba tryba@kky.zcu.cz Zdeněk Krňoul zdkrnoul@kky.zcu.cz Jakub Kanis jkanis@kky.zcu.cz 27. března 2012 1 Vznik za podpory projektu Pojabr - Potlačení jazykové bariéry

Více

Dotyková obrázovká v prográmu TRIFID

Dotyková obrázovká v prográmu TRIFID Dotyková obrázovká v prográmu TRIFID Nastavení Nastavuje se volbou funkce SYSTÉMOVÉ FUNKCE/KONFIGURACE/WIN KONFIGURACE (spustí se tlačítkem )/LOKÁLNÍ PARAMETRY/ZÁLOŽKA PRODEJ. V této tabulce lze zapnout

Více

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ ÚVOD Technologie elastické konformní transformace rastrových obrazů je realizována v rámci webové aplikace NKT. Tato webová aplikace provádí

Více

MS OFFICE POWER POINT 2010

MS OFFICE POWER POINT 2010 MS OFFICE POWER POINT 2010 Program Power Point patří do rodiny programů Microsoft Office a slouží ke tvorbě prezentací. Prezentace je tvořena snímky, které jsou postupně zobrazovány a to buď po nějaké

Více

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

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu / Druh CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT

Více

Mapa Česka: www.mapa-ceska.cz

Mapa Česka: www.mapa-ceska.cz Mapa Česka: www.mapa-ceska.cz Mapový portál Mapa Česka, který je dostupný na internetové adrese www.mapa-ceska.cz, byl vytvořen v roce 2014 v rámci bakalářské práce na Přírodovědecké fakultě Univerzity

Více

První kapitola úvod do problematiky

První kapitola úvod do problematiky První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru

Více

47 Mapování přístupnosti

47 Mapování přístupnosti 47 Mapování přístupnosti Modul Mapování přístupnosti slouží ke správě výsledků mapování architektonických objektů z hlediska přístupnosti a především k evidenci zjištěných skutečností o mapovaných objektech.

Více

Pracovní prostředí Excel 2010

Pracovní prostředí Excel 2010 Zdokonalování ICT gramotnosti v rámci projektu IMPACT Pracovní prostředí Excel 2010 Inovace a modernizace studijních oborů FSpS Obsah Co je to Excel a k čemu slouží... 3 Co nabízí nová verze Excel 2010:...

Více

Tvorba fotogalerie v HTML str.1

Tvorba fotogalerie v HTML str.1 Tvorba fotogalerie v HTML str.1 obr. A obr. B 1) Spustíme PsPad, vytvoříme nový dokument a otevře se nám okno nový soubor, kde si můžeme zvolit jaký chceme typ. My označíme HTML a potvrdíme. 2) Pro správné

Více

GEOM LITE - MANUÁL hlavní obrazovka

GEOM LITE - MANUÁL hlavní obrazovka GEOM LITE - MANUÁL hlavní obrazovka Levý panel Pomoci levého panelu je možné vybírat aktivní vrstvy, měnit jejich průhlednost a pořadí. V dolní části je zobrazena legenda. Horní panel V horním panelu se

Více

Osnova kurzu OBSLUHA PC ZÁKLADNÍ ZNALOSTI. pilotního projektu v rámci I. Etapy realizace SIPVZ

Osnova kurzu OBSLUHA PC ZÁKLADNÍ ZNALOSTI. pilotního projektu v rámci I. Etapy realizace SIPVZ Střední průmyslová škola a Střední odborné učiliště, Trutnov, Školní 101, tel.: +420 499 813 071, fax: +420 499 814 729, e-mail: skola@spssoutu.cz, URL: http://www.spssoutu.cz Osnova kurzu OBSLUHA PC ZÁKLADNÍ

Více

František Hudek. březen ročník. Informační a komunikační technologie OS WINDOWS Hlavní panel

František Hudek. březen ročník. Informační a komunikační technologie OS WINDOWS Hlavní panel VY_32_INOVACE_FH05_WIN Jméno autora výukového materiálu Datum (období), ve kterém byl VM vytvořen Ročník, pro který je VM určen Vzdělávací oblast, obor, okruh, téma Anotace František Hudek březen 2013

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

Java aplety. Předávání parametrů z HTML

Java aplety. Předávání parametrů z HTML Java aplety Aplety jsou speciální formou Java aplikací - mohou být spouštěny z prostředí WWW prohlížeče. Aby je prohlížeč spustil, musíme vložit do HTML stránky potřebné příkazy:

Více

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody Obsah 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody 3) 4) Mantichora Mantichora je moderní aplikace, který

Více

František Hudek. duben ročník

František Hudek. duben ročník VY_32_INOVACE_FH12_WIN Jméno autora výukového materiálu Datum (období), ve kterém byl VM vytvořen Ročník, pro který je VM určen Vzdělávací oblast, obor, okruh, téma Anotace František Hudek duben 2013 6.

Více

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je 28 [181105-1236 ] 2.7 Další uzávěrové vlastnosti třídy regulárních jazyků Z předchozích přednášek víme, že třída regulárních jazyků je uzavřena na sjednocení, průnik, doplněk, zřetězení, Kleeneho operaci

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

Konečný automat. Jan Kybic.

Konečný automat. Jan Kybic. Konečný automat Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2017 1 / 33 Konečný automat finite state machine Konečný automat = výpočetní model, primitivní počítač Řídící jednotka s

Více

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem. Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou

Více

P R OGR AM P R O NÁVRH VÝVAR U

P R OGR AM P R O NÁVRH VÝVAR U P R OGR AM P R O NÁVRH VÝVAR U Program Vývar je jednoduchá aplikace řešící problematiku vodního skoku. Zahrnuje interaktivní zadávání dat pro určení dimenze vývaru, tzn. jeho hloubku a délku. V aplikaci

Více

Mapová aplikace HZS Ústeckého kraje

Mapová aplikace HZS Ústeckého kraje Mapová aplikace HZS Ústeckého kraje Stručný návod Tato aplikace vznikla z důvodu potřeby prezentace geografických dat HZS Ústeckého kraje a dalších poskytovatelů dat v jednotné mapové aplikaci. Dalším

Více

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Jan Boháček [ÚLOHA 27 NÁSTROJE KRESLENÍ]

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Jan Boháček [ÚLOHA 27 NÁSTROJE KRESLENÍ] Aplikované úlohy Solid Edge SPŠSE a VOŠ Liberec Ing. Jan Boháček [ÚLOHA 27 NÁSTROJE KRESLENÍ] 1 CÍL KAPITOLY V této kapitole si představíme Nástroje kreslení pro tvorbu 2D skic v modulu Objemová součást

Více

Využití programu GeoGebra v Matematické analýze

Využití programu GeoGebra v Matematické analýze Využití programu GeoGebra v Matematické analýze Zuzana Morávková, KMDG, VŠB-TUO 29.3.2012 Obsah přednášky všeobecné informace o programu GeoGebra vybrané problematické pojmy z Matematické analýzy - interaktivní

Více

MRBT. Stacionární průmyslový robot EPSON C3 aplikace pro prezentaci

MRBT. Stacionární průmyslový robot EPSON C3 aplikace pro prezentaci FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ MRBT Stacionární průmyslový robot EPSON C3 aplikace pro prezentaci Autoři: Jaromír Picka ID:115255 Jaroslav Večeřa ID:115306

Více

Úvod do informatiky. Miroslav Kolařík

Úvod do informatiky. Miroslav Kolařík Úvod do informatiky přednáška desátá Miroslav Kolařík Zpracováno dle R. Bělohlávek, V. Vychodil: Diskrétní matematika 2, http://phoenix.inf.upol.cz/esf/ucebni/dm2.pdf P. Martinek: Základy teoretické informatiky,

Více

Popis výukového materiálu

Popis výukového materiálu Popis výukového materiálu Číslo šablony III/2 Číslo materiálu VY_32_INOVACE_I.4.2 Autor Petr Škapa Datum vytvoření 05. 09. 2012 Předmět, ročník Tematický celek Téma Druh učebního materiálu Anotace (metodický

Více

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá

Více

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Vyšší odborná škola ekonomická a zdravotnická a Střední škola, Boskovice INOVACE PŘEDMĚTŮ ICT MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika Zpracoval: Jaroslav Kotlán srpen 2009s Úvod Modul Programování

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Nápověda k systému CCS Carnet Mini

Nápověda k systému CCS Carnet Mini Nápověda k systému CCS Carnet Mini Manuál k aplikaci pro evidenci knihy jízd Vážený zákazníku, vítejte v našem nejnovějším systému pro evidenci knihy jízd - CCS Carnet Mini. V následujících kapitolách

Více

Úvod do teorie grafů

Úvod do teorie grafů Úvod do teorie grafů Neorientovaný graf G = (V,E,I) V množina uzlů (vrcholů) - vertices E množina hran - edges I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí

Více

Práce s programem MPVaK

Práce s programem MPVaK Práce s programem MPVaK Tato informace popisuje postup práce s programem "MPVaK Vybrané údaje z majetkové a Vybrané údaje z provozní evidence. Jsou v ní popsány nejdůležitější úlohy, které budete s programem

Více

Studijní informační systém KOS ikos přístup pro referenty

Studijní informační systém KOS ikos přístup pro referenty Studijní informační systém KOS ikos přístup pro referenty Pro práci se studijním informačním systémem AMU se používají dvě různé aplikace, které však pracují se společnými daty. Studenti a učitelé pracují

Více

Nápověda k systému CCS Carnet Mini. Manuál k aplikaci pro evidenci knihy jízd

Nápověda k systému CCS Carnet Mini. Manuál k aplikaci pro evidenci knihy jízd Nápověda k systému CCS Carnet Mini Manuál k aplikaci pro evidenci knihy jízd Vážený zákazníku, vítejte v našem nejnovějším systému pro evidenci knihy jízd - CCS Carnet Mini. V následujících kapitolách

Více

Administrace webu Postup při práci

Administrace webu Postup při práci Administrace webu Postup při práci Obsah Úvod... 2 Hlavní menu... 3 a. Newslettery... 3 b. Administrátoři... 3 c. Editor stránek... 4 d. Kategorie... 4 e. Novinky... 5 f. Produkty... 5 g. Odhlásit se...

Více

Základní datové struktury

Základní datové struktury Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013

Více

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky Google Web Toolkit Martin Šurkovský, SUR096 Vysoká škola Báňská - Technická univerzita Ostrava Katedra informatiky 29. března 2010 Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010

Více

Aplikace pro srovna ní cen povinne ho ruc ení

Aplikace pro srovna ní cen povinne ho ruc ení Aplikace pro srovna ní cen povinne ho ruc ení Ukázkový přiklad mikroaplikace systému Formcrates 2010 Naucrates s.r.o. Veškerá práva vyhrazena. Vyskočilova 741/3, 140 00 Praha 4 Czech Republic tel.: +420

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

METODICKÝ POKYN PRÁCE S MS PowerPoint - ZAČÁTEČNÍCI. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

METODICKÝ POKYN PRÁCE S MS PowerPoint - ZAČÁTEČNÍCI. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. METODICKÝ POKYN PRÁCE S MS PowerPoint - ZAČÁTEČNÍCI Základní rozložení plochy Výchozím stavem při práci je normální zobrazení. pás karet - základní nabídka příkazů Pořadí jednotlivých snímků Základní plocha

Více