Webový simulátor Turingova stroje
|
|
- Ivo Pospíšil
- před 9 lety
- Počet zobrazení:
Transkript
1 MASARYKOVA UNIVERZITA Fakulta informatiky Webový simulátor Turingova stroje Bakalářská práce Stanislav Straka Vedoucí práce: Mgr. Jiří Barnat Ph.D. Brno 2006
2 Shrnutí Cílem této bakalářské práce je napsat webový simulátor Turingova stroje. Tento simulátor by měl být schopen načíst Turingův stroj ze souboru, který je napsaný ve speciálně navrženém formátu. Po načtení Turingova stroje by měl být schopen simulovat a graficky znázorňovat výpočet tohoto Turingova stroje nad nějakým vstupním slovem. Turingův stroj, vstupní slovo a způsob simulace by si pomocí ovládacích prvků simulátoru měl volit samotný uživatel.
3 Klíčová slova webový, simulátor, turingův stroj, applet, java
4 Prohlášení Prohlašuji, že jsem bakalářskou práci vypracoval samostatně a použil pouze literaturu uvedenou v přiloženém seznamu. Nemám námitek proti půjčení práce se souhlasem katedry ani proti zveřejnění práce nebo její části. V Brně dne 5. ledna 2006 Stanislav Straka
5 Obsah 1. Teoretický úvod do Turingových strojů Neformální popis Turingova stroje Formální popis Turingova stroje Nedeterministický Turingův stroj Formát zápisu Turingova stroje pro tento simulátor Zápis Turingova stroje Hlavicka Turingova stroje Tělo turingova stroje Vzorový Turingův stroj Uživatelská příručka simulátoru Turingova stroje Spuštění simulátoru Turingova stroje Jak nahrát Turingův stroj do simulátoru? Výběr z databáze simulátoru Načtení Turingova stroje z externího souboru Simulace výpočtu Turingova stroje Grafické znázornění řídící jednotky Turingova stroje Spuštění simulace Turingova stroje Funkce tlačítek Přejdi a Přejdi o délku vstupu Funkce tlačítek Simulace, Stop, Dokonči Tlačítka Náhodná simulace a Dokonči náhodně Tlačítka ve spodním bílém poli Instalace simulátoru na novém URL Implementace Webového simulátoru Turingova stroje Syntaktický analyzátor, balíček parser Obecný postup při syntaktické analýze Součásti syntaktického analyzárou Popis jednotlivých tříd syntaktického analyzátoru Výkonná jednotka simulátoru, balíček turing Části výkonné jednotky simulátoru Popis jednotlivých částí výkonné jednotky simulátoru Zobrazovací jednotka simulátoru Části zobrazovací jednotky simulátoru Popis jednotlivých tříd zobrazovací jednotky simulátoru Hlavní řídicí jednotka simulátoru, balík main Části řídicí jednotky simulátoru, balík main Popis pomocných tříd řídící jednotky simulátoru Popis činnosti třídy MujApplet Závěr Obsah archivu Literatura
6 Kapitola 1 Teoretický úvod do Turingových strojů Turingův stroj je pojmenován podle britského matematika Alana Turinga( ),který ho roku 1937 v článku nazvaném O vyčíslitelnosti (On Computable Numbers) definoval. Turingův stroj dokáže realizovat libovolný proces, který lze intuitivně nazvat algoritmem Neformální popis Turingova stroje Turingův stroj byl navržen dlouho předtím, než se objevil první počítač. Motivací pro jeho definici byla snaha přesně rozlišit, co je a co není vyčíslitelné, tj. co lze a co nelze efektivně vypočítat. Z toho vyplynuly základní požadavky. Zaprvé, každý výpočet se musí dát reprezentovat konečným způsobem. Zadruhé, výpočet se má skládat z diskrétních kroků, přičemž každý z nich je mechanicky realizovatelný Turingův stroj se skládá z konečné množiny stavů Q, pásky, která je rozdělena na jednotlivá políčka, a hlavy, která se může po pásce pohybovat doleva a doprava, číst a zapisovat symboly. Na každém políčku pásky je zapsán právě jeden z konečně mnoha páskových (pracovních) symbolů. Páska je jednosměrně nekonečná. Na jejím nejlevějším (nuletém) políčku je zapsán speciální symbol >, oznacující levý konec pásky. Na začátku výpočtu je na 1. až n., kde n 0, políčku pásky zapsán vstupní řetězec (vstupem může být i prázdný řetězec). Ostatních nekonečně mnoho políček napravo od vstupu je prázdných, respektive obsahují speciální znak _. Výpočet začíná v počátečním stavu q 0, přičemž hlava snímá nulté poíčko obsahující levou koncovou značku >. Krok výpočtu spočívá v tom, že stroj v závislosti na momentálním stavu a symbolu snímaném hlavou provede následující: 1. změní svůj stav, či přesněji může změnit, 2. zapíše symbol na políčko snímané hlavou, čímž přepíše symbol, který tam byl zapsán předtím, 3. posune hlavu o jedno políčko doprava, nebo doleva. Způsob jakým se má změnit stav, přepsat symbol a posunout hlava, předepisuje přechodová funkce δ. Stroj akceptuje (přijme) vstupní řetězec, přávě když přejde do 6
7 1.2. Formální popis Turingova stroje speciálního stavu q accept. Stroj zamítá, právě když přejde do speciálního zamítajícího stavu q reject. Na některých vstupech může výpočet běžet nekonečně dlouho, aniž by stroj vstupní slovo akceptoval, nebo zamítnul. V takovém případě říkáme, že stroj pro daný vstup cyklí Formální popis Turingova stroje V celé své práci jsem se držel formální definice[1], neboť je tato definice vyučována na zdejší fakultě. Turingův stroje je devítice M =(Q,Σ,Γ,>,_,δ,q 0,q accept,q reject ) kde: Q je konečná množina stavů; Σ je konečná množina vstupních symbolů; Γ je konečná množina páskových symbolů; > Γ\Σ je levá koncová značka; _ Γ\Σ je symbol označující prázdné políčko; δ:(q\{q accept,q reject } Γ Q Γ {L,R} je totální přechodová funkce; q 0 Q je počáteční stav; q accept Q je akceptující stav; q reject Q je zamítající stav; Navíc vyžadujeme, aby Turingův stroj nikdy nepřepsal levou koncovou značku jiným symbolem a aby nikdy neposunul svou hlavu vlevo od políčka obsahujícího levou koncovou značku. Formálně, požadujeme aby pro q Q existoval stav p Q takový,že δ(q,>) = (p,>,r). Množina stavů spolu s přechodovou funkcí se někdy souhrnně označuje jako řídící jednotka Turingova stroje Nedeterministický Turingův stroj Rozdíl oproti původnímu (deterministickému) Turingovu stroji spočívá v tom, že pro daný stav a snímaný symbol má nedeterministický stroj obecně několik možností pro následující krok. Každá možnost zahrnuje nový stav, symbol,který se má zapsat na pásku a směr, kterým se má posunout čtecí hlava. Nedeterministický stroj akceptuje, právě když existuje výpočet (tj. nějaká posloupnost výběru kroků) vedoucí do akceptující konfigurace. 7
8 1.3. Nedeterministický Turingův stroj Deterministický a nedeterministický Turingův stroj jsou, co se týče příjímané třídy jazyků, ekvivalentní. Jednodušeji pro každý nedeterministický Turingův stroj existuje deterministický Turingův stroj, který akceptuje stejný jazyk a naopak[1]. Důkaz, že pro každý deterministický Turingů stroj existuje nedeterministický,který akceptuje stejný jazyk je zřejmý. Nedeterministický Turingův stroj mající pro každou kombinaci stavu a symbolu pouze jednu možnost přechodu je zřejmě deterministický Turingův stroj. Důkaz opačného tvrzení je složitější a není náplní této práce. 8
9 Kapitola 2 Formát zápisu Turingova stroje pro tento simulátor Vzhledem k neexistenci nějakého normalizovaného formátu zápisu Turingova stroje jsem byl nucen si navrhnout formát vlastní, tak jako to udělali autoři podobných simulátorů. Při návrhu jsem vycházel z formální definice[1]. Tento zápis by tudíž měl být pro studenty intuitivně zřejmý a přehledný Zápis Turingova stroje Zápis Turingova stroje se skládá z hlavičky a těla. V hlavičce se definuje množina stavů, vstupní abeceda a páskové abeceda, počáteční znak a znak prázdného políčka a počáteční, akceptující a zamítající stav. V těle Turingova stroje se pak definuje přechodová funkce. Každý příkaz v zápisu Turingova stroje musí být ukončen středníkem. Každý nový příkaz, či definice musí začínat na novém řádku. Každé slovo, nebo znak napsaný na novém řádku je automaticky považován za začátek nového příkazu, či definice. Každé slovo či znak napsaný za středníkem na tomtéž řádku jako středník je ignorován a může sloužit jako komentář. Soubor, ve kterém je Turingův soubor zapsán, musí mít příponu tm. Napíklad: TuringMachine.tm Hlavicka Turingova stroje První řádek může a nemusí obsahovat jméno Turingova stroje. Tento řádek může sloužit též jako poznámka, co vlastně tento Turingův stroj má dělá, nejvhodnější je popis jazyka přijímaného daným Turingovým strojem. Je zde pouze omezení, že se tento nápis musí nacházet celý na prvním řádku a musí být rovněž zakončen středníkem. Tato část je nepovinná a na funkci či vzhled Turingova stroje nemá žádný vliv. Využití nepovinné části je vhodné hlavně v případě, že hodláme tímto Turingovým strojem rozšířit vnitřní databázi simulátoru. První povinnou součástí zápisu Turingova stroje je definování uspořádané devítice. Řádek tedy začíná závorkou a následuje jméno množiny stavů, vstupní abecedy, pá- 9
10 Hlavicka Turingova stroje skové abecedy, počátečnícho znaku, znaku prázdného políčka, přechodové funkce, počátečího stavu, akceptujícího stavu a zamítajícího stavu. Všechny prvky devítice musí být odděleny čárkou. Uspořádaná devítice je ukončena závorkou a celý řádek je následně ukončen středníkem. (MnožinaStavů,vstupní_abeceda,pásková_abeceda,>,_,delta,q0,qAccept,qReject); První tři prvky devítice (množina stavů, vstupní a pásková abeceda) a přechodová funkce jsou pouze jména a jejich obsah bude definován na následujících řádcích. Nezáleží na pořadí, v jakém jsou definovány první tři prvky devítice, ale přechodová funkce musí být definována až jako poslední Definice množiny stavů K definici množiny stavů je ještě třeba dodat, jak lze pojmenovat stav. Stav může nést jaké koliv jméno, které neobsahuje čárku, středník nebo dvojtečku. Bude-li obsahovat bílý znak, tento znak bude vymazán. Je-li ovšem nevyhnutelné, či pro přehlednost žádoucí, pojmenovat si stav za pomocí čárky, je možné název celého stavu uzavřít do obyčejných, či hranatých závorek, popřípadě do uvozovek. Následně je ovšem důležité toto označení používat v celém souboru a to včetně uzavíracích značek. Tedy stav [q0,a] není ekvivalentní stavu (q0,a) ani "q0,a" ani naopak. Možné zápisy stavů: q0zacatek libovolný řetězec bez střeníku, čárky a dvojtečky "q1,a" název uzavřený uvozovkami obsahující čárku (q2,navrat) název uzavřený závorkami obsahující čárku [q1,b] název uzavřený hranatými závorkami obsahující čárku Jméno množiny stavů je určeno prvním povinným řádkem. Definice obsahu pak následuje na dalších řádcích. Definice se skládá z návěští, kterým je jméno množiny, dvojtečky a pak následuje výčet všech stavů vzájemně oddělených čárkou a zakončený středníkem. 10
11 Tělo turingova stroje MnožinaStavů:q0,q1,q2,"q0,a",qAccept,qReject; Ve výčtu stavů nesmíte za pomenout na stavy jmenované v úvodní devítici. Devítice určuje pouze jejich význam pro Turingův stroj, nikoli jejich existenci Definice množiny vstupní abecedy Jméno vstupní abecedy je určeno prvním povinným řádkem. Definice obsahu pak následuje na dalších řádcích. Definice se skládá z návěští, kterým je jméno abecedy, dvojtečky a pak následuje výčet všech symbolů vzájemně oddělených čárkou. Celou definici vstupní abecedy zakončujeme středníkem. vstupní_abeceda:a,b,c; Definice množiny páskové abecedy Jméno páskové abecedy je opět určeno prvním povinným řádkem. Definice obsahu pak následuje na dalších řádcích. Definice se skládá z návěští, kterým je jméno abecedy, dvojtečky a pak následuje výčet všech symbolů vzájemně oddělených čárkou a zakončený středníkem. Ve výčtu symbolů nesmíte uvést ty symboly, které jste uvedli, či uvedete, do abecedy vstupní. Vstupní abeceda má zásadní vliv na jazyk akceptovaný Turingovým strojem a proto musí být uvedena zvlášť. Protože vstupní abeceda je podmnožinou páskové abecedy, objevily by se tyto symboly v zápisu dvakrát, což je zbytečné. Zároveň však nesmíme zapomenout vyjmenovat ty symboly obsažené v základní devítici. Devítice i zde určuje pouze význam a né definici těchto symbolů. pásková_abeceda:>,x,_; Tělo turingova stroje Jak bylo řečeno výše tělo turingova stroje je tvořeno definicí jeho přechodové funkce. Přechodová funkce je vlastně výkonná část určující, co bude daný Turingův stroj dělat. V této části definice turingova stroje lze již pracovat pouze se symboly a stavy definovanými dříve, proto si musíme dávat pozor zda jsme definovali všechy stavy a znaky, které budeme potřebovat Definice přechodového pravidla Přechodová funkce se skládá z přechodových pravidel. A proto je třeba nejprve osvětlit jak se definují přechodová pravidla. Přechodové pravidlo se skládá z aktuální konfigurace stroje a konfigurace, do které má stroj přejít. Aktuální konfigurace se skládá z aktuálního stavu a znaku pod čtecí hlavou vzájemně oddělených čárkou. Následuje dvojtečka a po ní přechodová konfigurace. 11
12 Tělo turingova stroje Přechodová konfigurace je celá uzavřena do obyčejných závorek a skládá se ze stavu, do kterého má Turingův stroj přejít, znaku, kterým má být přepsán aktuální znak pod hlavou, a pohybu hlavy. Vše je opět vzájemně oddělené čárkou. Pohyb hlavy se zapisuje pomoci velkých písmen R (doprava), L (doleva) a S (zůstaň stát). Celé přechodové pravidlo je pak ukončeno středníkem. Celé přechodové pravidlo pak vypadá takto: q0,a : (q1,x,l); Uvádíme-li přechodové pravidlo, které má jako svůj cíl jeden z konečných stavů, tedy akceptující, nebo zamítající stav je stavem, do kterého se podle tohoto pravidla má přejít, pak nemáme povinnost vyplňovat následující položky přechodové konfigurace (tj. symbol a směr pohybu hlavy) smysluplnými, tedy dříve definovanými, znaky. Jako náhradu za ně lze uvést jakékoliv znaky jiné, nebo žádné. Čárky a závorky jsou však povinné. q4,_: (qaccept,-,-); q4,b: (qreject,-,-); Tento simulátor je schopen simulovat také nedeterministický Turingův stroj, proto i formát zápisu přechodové funkce musí být schopen toto popsat. Jak bylo řečeno dříve nedeterministický Turingův stroj se od deterministického liší pouze v přechodové funkci. Nedeterministický stroj má pro některé konfigurace definované dva a více přechodových konfigurací. Tato skutečnost se vyjádří tím, že za aktuální konfiguraci uvedeme tyto přechodové konfigurace vzájemně oddělené dvojtečkou a za poslední opět napíšeme ukončovací středník. Nedeterministické přechodové pravidlo tedy může být zapsáno například takto: q0,a: (q1,x,l) : (q2,a,r) : (q1,a,l); Definice přechodové funkce V úvodní devítici jsme předodovou funci pojmenovali a toto jméno slouží jako návěští pro začátek její definice. Definice přechodové funkce tedy začíná na novém řádku svým jménem následovaným dvojtečkou. Hned za touto dvojtečkou následuje první přechodové pravidlo zakončené středníkem. Následující pravidla se musí uvádět vždy na nový řádek a musí vždy končit středníkem. Celá definice přechodové funkce se ukončuje středníkem na samostatném řádku. Ukončením definice přechodové funkce se zároveň ukončuje i definice celého Turingova stroje. Za tímto středníkem se jako za jediným nesmí nacházet komentář na tomtéž řádku. Ukončující středník musí stát na řádce naprosto osamocen. Komentář lze napsat až na řádek následující. 12
13 2.2. Vzorový Turingův stroj delta: q0,>: (q1,>,r); q1,a: (q1,x,q2); skrtne symbol "a" q3,_: (qaccept,-,-); ; konec delta 2.2. Vzorový Turingův stroj {a^n*b^n n >= 0}; (MnozinaStavu,VstupniAbeceda,PaskovaAbeceda,>,_,delta,q0,qAccept,qReject); MnozinaStavu:q0,[q1,a],(q2,b),q3,q4,q5,qAccept,qReject; VstupniAbeceda:a,b; PaskovaAbeceda:>,X,_; delta: q0,>:(q0,>,r); q0,a:([q1,a],a,r); slovo zacina Ackem tedy muze byt z jazyka q0,b:(qreject,-,-); slovo zacina Beckem tedy neni z jazyka q0,_:(qaccept,-,-); jedna se o prazdne slovo tedy je z jazyka [q1,a],a:([q1,a],a,r); [q1,a],b:((q2,b),b,r); [q1,a],_:(qreject,-,-); slovo se zklada jen z Acek tedy neni z jazyka (q2,b),a:(qreject,-,-); slovo je tvaru aaaaaaabbbba (q2,b),b:((q2,b),b,r); (q2,b),_:(q3,_,l); q3,a:(q3,a,l); q3,b:(q3,b,l); stav q3 vrati hlavu na zacatek pasky q3,x:(q3,x,l); q3,>:(q4,>,r); q4,a:(q5,x,r); skrtne prvni Acko na ktere narazi q4,b:(qreject,-,-); ve slove je vice Becek nez Acek q4,x:(q4,x,r); 13
14 2.2. Vzorový Turingův stroj q4,_:(qaccept,-,-); ve slove je stejne Acek jako Becek q5,a:(q5,a,r); q5,b:(q3,x,l); skrtne prvni becko na ktere narazi q5,x:(q5,x,r); q5,_:(qreject,-,-); ve slove je vice Acek nezli Becek ; konec definice Turingova stroje "Posledni strednik ukoncujici definici prechodove funkce musi byt sam na samostatnem radku!!!!!" 14
15 Kapitola 3 Uživatelská příručka simulátoru Turingova stroje Mojí snahou bylo vytvořit uživatelské prostredí, které by nedovolilo uživately udělat chybu při samotné simulaci výpočtu Turingova stroje. Pokud se chyba nachází přímo v definici Turingova stroje, měl by ji tento simulátor odhalit a upozornit na ni autora onoho stroje, ale pouze v případě, jedná-li se o chybu, která je výslovně zakázána samotnou definicí Turingova stroje, jako je například přepsání levé koncové značky, nebo pohyb od levé koncové značky doleva, používání dříve nedefinovaných stavů, značek apod Spuštění simulátoru Turingova stroje Simulátor spustíte pouze tím, že do svého prohlížeče zadáte webovou stránku s adresou appletu. Pro zprávný běh simulátoru je třeba, aby prohlížeč byl schopen pracovat s java applety napsané v Javě 1.5. Následně se nám zobrazí simulátor s jedním již načteným Turingovým strojem. Turin-gův stroj, který se načte hned po spuštění je první v databázi simulátoru a jeho jméno je navolené na rolovacím tlačítku, které je určené pro výběr z této databáze. Celý simulátor se nachází ve stavu, který je stejný jako po jakémkoliv jiném načtení stroje, ať už byl načten z externího souboru nebo z databáze. Simulátor se zobrazí vždy přes celé okno prohlížeče. Máme-li Turingův stroj, jehož zobrazení se nevejde do okna simulátoru, můžeme velikost zobrazovací plochy přizpůsobit změnou velikosti okna prohlížeče Jak nahrát Turingův stroj do simulátoru? Turingův stroj je možné si zvolit, jak již bylo výše zmíněno, dvojím způsobem. Lze si jej buď vybrat z databáze simulátoru, kde bude menší množství nejpoužívanějších Turingových strojů, nebo z externího souboru, tedy ze souboru který je uložen v počítači uživatele. Nahrát Turingův stroj je možné i v případě, že máme nějaký jiný Turingův stroj již do simulátoru nahraný a probíhá jeho simulace. Rozhodne-li se uživatel v takovéto situaci vyměnit Turingův stroj za jiný, dojde k zapomenutí stavu výpočtu starého Turingova stroje a načte se nový v iniciálním stavu. 15
16 Výběr z databáze simulátoru Výběr z databáze simulátoru Výběr Turingova stroje z databáze simulátoru je velice jednoduchý. V Pravém horním rohu simulátoru se nachází výběrové tlačítko. Na toto tlačítko stačí pouze kliknout a rozbalí se nám seznam všech Turingových strojů z databáze. Následné kliknutí na daný Turingův stroj vede k jeho načtení a zobrazení Načtení Turingova stroje z externího souboru Načtení Turingova stroje z externího souboru se provede pomocí tlačítka Načti z externího souboru. Toto tlačítko je první od zhora v pravé části simulátoru. Po kliknutí na toto tlačítko se zobrazí klasické okno pro výběr souboru. V tomto okně následně vybereme soubor, ve kterém máme napsaný náš vlastní Turingův stroj, a potvrdíme. Při nahrávání vlastního Turingova stroje musí každý uživatel počítat s tím, že není neomylný a v jeho souboru se mohou nacházet syntaktické chyby. Všechny syntaktické chyby tento simulátor patrně odhalit neumí, ale pokud nějakou odhalí, tak na ni uživatele upozorní malým oknem s názvem Chybové hlášení a příslušným popisem chyby a číslem řádku, na kterém se chyba nacházela. Simulátor upozorňuje pouze na jednu odhalenou chybu. Je-li v souboru chyb více, bude vždy odhalena pouze první z nich (myšleno od začátku souboru) Simulace výpočtu Turingova stroje V předchozí části jsme si zvolili Turingův stroj, jehož výpočet chceme simulovat. Po načtení stroje do simulátoru se zobrazí v prostřením bílém okně grafické znázornění řídící jednotky našeho Turingova stroje. V horním bílém oknu se nám zobrazí páska stroje se čtecí hlavou na levé koncové značce. V pravo do levé koncové značky se zobrazí symbol prázdného políčka. Toto vyobrazení symbolizuje prázdnou pásku. Na druhém řádku simulátoru, tedy hned pod výběrovými tlačítky, se zobrazí pásková a vstupní abeceda načteného Turingova stroje Grafické znázornění řídící jednotky Turingova stroje Turingův stroje je graficky znázorněn v podobě tabulky. V první sloupci se nacházejí všechny stavy, seřazené ve stejném pořadí jako ve zdrojovém souboru v definici množiny stavů. Na prvním řádku se nacházejí páskové symboly, opět ve stejném pořadní v jakém jsou zapsány ve zdrojovém souboru. V ostatních buňkách se nacházejí přechodové konfigurace pro daný stav (řádek) a daný symbol (sloupec). Neexistuje-li pro nejakou kombinaci stavu a symbolu přechodové pravidlo, pak se místo pravidla zobrazí několik pomlček. Je-li pro nějakou kombinaci stavu a symbolu přechodů více, pak se tyto přechodové konfigurace zobrazí ve stejné buňce podsebou seřazeny od shora v takovém pořadí v jakém jsou uvedeny ve zdrojovém souboru. Aktuální stav je označen malou šipkou z levé strany tabulky a zvýrazněn modrou barvou. Symbol nacházející se pod aktuální pozicí čtecí hlavy je rovněž zvýrazněn modrou barvou. Přechodové konfigurace, které se budou provádět v následném kroku 16
17 Spuštění simulace Turingova stroje výpočtu jsou zvýrazněny barvou červenou. Všechny ostatní prvky tabulky jsou vykresleny barvou černou Spuštění simulace Turingova stroje Z tlačítek je kromě výběrových tlačítek aktivní pouze Zapiš na pásku. Turingův stroj se nyní nachází v iniciálním stavu a vlastní simulace začíná teprve zápisem slova na pásku. Slovo, pro které chceme provádět výpočet, je třeba zapsat do textového pole, které se nachází vlevo od tlačítka Zapiš na pásku. Chceme-li zadat prázdné slovo, pak to tohoto pole zapíšeme prázdné slovo. Chcemeli zadat nějaké jiné slovo, pak toto slovo zapíšeme do tohoto pole. Je třeba dávat si pozor zda zadáváme slovo, které je tvořeno pouze znaky vstupní abecedy stroje. Zadáme-li slovo obsahující znaky, které nejsou obsaženy ve vstupní abecedě stroje, pak nás simulátor upozorní na nekorektnost vstupu. Opět je toto upozornění ve formě okna Chybové hlášení s hlášením o výskytu nepovoleného znaku. Nachází-li se ve vstupním řetězci více chybných znaků, jsme upozorněni pouze na první z nich. Zapsat na pásku lze i v případě, že již máme spuštěnou simulaci nějakého Turingova stroje na nějakém vstupní slově. Zapíšeme-li však na pásku v tomto případě, simulátor zapomene stav výpočtu stroje a tváří se, jako by se stroj před zapsáním na pásku nacházel v iniciálním stavu. Tedy počítá opět od začátku. Po úspěšném zapsání na pásku stroje se začíná vlastní simulace výpočtu Turingova stroje nad daným slovem Funkce tlačítek Přejdi a Přejdi o délku vstupu Jak již název napovídá jedná se o tlačítka sloužící pro ruční simulaci krok po kroku. Pomocí těchto tlačítek můžeme podrobně sledovat výpočet. Obě tato tlačítka jsou však použitelná pouze, jedná-li se o deterministické přechody z kofigurace do konfigurace. O simulaci nedeterministických kroků bude řeč později. Tlačítko Přejdi je svázáno s textovým polem nacházejícím se nad ním. Do tohoto pole je třeba uvést po kolika krocích chceme simulaci provádět. Tento počet musí být uveden celým číslem větším než nula. Uvedeme-li nulu pak se po kliku na tlačítko Přejdi neprovede nic, jak lze konec konců očekávat. Uvedeme-li tedy nenulový počet kroků, pak simulátor provede daný počet kroků a zastaví, či spíše čeká na další příkazy. Tlačítko Přejdi o délku vstupu funguje obdobným způsobem jako tlačítko Přejdi s tím rozdílem, že vždy přejde o počet kroků, který se rovná dálce vstupního slova. Toto tlačítko je tedy možné použít pro učení efektivity výpočtu daného Turingova stroje. V případě, že simulátor při přechodu z jedné konfigurace do jiné pomocí těchto tlačítek narazí na nedeterministickou volbu, zastaví svůj výpočet. Jak postupovat při nedeterministické volbě, bude uvedeno později Funkce tlačítek Simulace, Stop, Dokonči Tlačítka Simulace a Stop jsou vzájemně provázána. Jak se jistě dá vytušit tlačítko Simulace zapíná časovou simulaci výpočtu Turingova stroje a Stop ji zastavuje. Tlačítko 17
18 Tlačítka Náhodná simulace a Dokonči náhodně Simulace je závislé na textovém poli nacházejícím se nad ním. V tomto okně musí být uvedeno časové zpoždění v milisekundách mezi jednotlivými kroky výpočtu. Pokud časovou simulaci nezastavíme, někdy během výpočtu tlačítkem Stop bude její výpočet pokračovat dokud stroj neakceptuje nebo nezamítne. Napíšeme-li tedy Turingův stroj, který by pro nějaké slovo cyklil, pak bude simulace vypočtu nad tímto slovem pokračovat do nekonečna. Tlačítko Dokonči funguje v podstatě stejně jako tlačítko Simulace, s tím rozdílem že se zobrazuje pouze výsledek výpočtu tedy konečný stav a obsah pásky po konci výpočtu. Bude-li však výpočet cyklit, pomůže pouze vypnutí a opětovné zapnutí prohlížeče. Tato tlačítka jsou rovněž použitelná pouze pro deterministické přechody. Narazíli simulátor po stisku těchto tlačítek na nedeterministikou volbu, stejně jako v předchocím případě zastaví svůj výpočet a vyčkává dalších rozkazů. Jak postupovat při nedeterministické volbě viz další dvě podkapitoly Tlačítka Náhodná simulace a Dokonči náhodně Mezi tlačítka umožňující simulaci nedeterministických voleb v nedeterministických Turingovych strojich patří Náhodná simulace a Dokonči náhodně. Tato tlačítka jsou jen zvláštní verzí tlačítek Simulace a Dokonči. Tlačítko Náhodná simulace je rovněž svázáno s tlačítkem Stop a textovým polem udávajícím zpoždění. Rozdíl mezi těmito tlačítky spočívá pouze v reakci na nedeterministickou volbu. Jak již název napovídá, narazí-li tato tlačítka na nedeterministickou volbu, tak náhodně vyberou některý z možných přechodů a pokračují ve výpočtu právě tímto přechodem. Tato tlačítka se samozřejmě dají použít i pro výpočty deterministických Turingových strojů, neboť, jak bylo řečeno v teoretické části, každý deterministický Turingův stroj je zároveň nedeterministickým Turingovým strojem. Při tomto použití se pak tato tlačítka chovají naprosto stejným způsobem jako jejich nenáhodné protějšky Tlačítka ve spodním bílém poli Po úspěšném zápsaní nějakého řetězce na pásku se v dolním bílém poli objeví tlačítko (tlačítka) přechodu. Na tomto tlačítku je vždy uvedeno přechodové pravidlo, které lze v dané konfiguraci stroje právě provést. Po kliknutí na toto tlačítko se provede právě jeden krok výpočtu a to takový krok, který byl uvedený jako název tohoto tlačítka. V případě nedeterministické volby se pro každé možné přechodové pravidlo uvedené ve zdrojovém souboru zobrazí právě jedno tlačítko, provádějící tento výpočtový krok.. Tato tlačítka tedy nechávají uživateli kontrolu nad nedeterministickou volbou při simulaci nějakého stroje. Zároveň rovněž umožňují uživateli lepší přehled o právě prováděných krocích výpočtu. Tato tlačítka lze použít jak pro deterministická, tak pro nedeterministická přechodová pravidla. 18
19 3.4. Instalace simulátoru na novém URL 3.4. Instalace simulátoru na novém URL Chceme-li instalovat tento simulátor na nějaké nové webové stránce, pak si musíme nejprve stáhnout javojský archiv archiv.jar. Tento archiv obsahuje všechny potřebné informace a proto není potřeba stahovat nic jiného. Po stažení jej musíme nakopírovat do příslušného adresáře. Pro vlastní provoz simulátoru je třeba nejprve z archivu archiv.jar extrahovat soubory mujapplet.html, MujApplet.crt a celý adresář tm. Všechny tyto věci se musí nacházet ve stejném adresáři jako javojský archiv archiv.jar. Tímto je instalace hotova a simulátor je připraven ke spustění. 19
20 Kapitola 4 Implementace Webového simulátoru Turingova stroje Simulátor Turingova stroje je vlastně počítač simulovaný v počítači. Jako takový se skládá z několika vzájemně propojených částí a to ze syntaktického analyzátru, výkoné jednotky, zobrazovacího zařízení a ovládacího panelu. 1. Syntaktickou analýzu provádí třídy v balíčku parser. 2. Výkonou jednotku simulátoru představuje balíček turing. 3. Zobrazování stavu výpočtu zajišťuje balíček paint 4. Ovládací prvky a propojení všech výše zmíněných částí zajišťuje balíček main 4.1. Syntaktický analyzátor, balíček parser Syntaktický analyzátor slouží ke správné interpretaci zápisu Turingova stroje v souboru a jeho nahrání do vnitřní struktury simulátoru. Případné chyby v tomto zápisu by měl syntaktický analyzátor identivikovat a upozornit na ně autora zdrojového souboru. Tento syntaktický analyzátor nedokáže odhalit všechny chyby, kterých se může dopustit pisatel, ale ty nejzákladnější a nejčastěji se vyskytující ano Obecný postup při syntaktické analýze Syntaktický analyzátor vždy načte celý řádek. Poté určí, zda daný řádek obsahuje středník. Neobsahuje-li daný řádek středník, pak načte další celý řádek, připojí jej za konec dříve načteného řádku a opět zkontroluje přítomnost středníku. Tento postup opakuje dokud nenarazí na řádek, který tento středník obsahuje. Po načtení řádku se středníkem vymaže analyzátor všechny bílé znaky z řetězce. Následně určí význam řádku, tedy zda se jedná o definici devítice, množiny stavů apod. Podle určení významu řádku pak tento řádek postupně rozděluje do významových částí a zároveň kontroluje správnost zápisu. 20
21 Součásti syntaktického analyzárou Správně zapsaná data v řádce předá výkonné jednotce simulátoru jako parametry. Z těchto parametrů výkoná jednotka simulátoru sestavý Turingův stroj, který se bude simulovat Součásti syntaktického analyzárou Jak bylo řečeno výše, je syntaktický analyzátor realizován balíkem parser, respektive třídami v něm obsaženými. Balík parser obsahuje dvě třídy pro vlastní syntaktickou analýzu a několik výjimek pro odhalení chyb v zápise. Třídy určené pro syntaktickou analýzu a načtení do výkonné jednotky simulátoru: NactiZeSouboru ParserElement Výjimky určené pro odhalování chyb v zápise Turingova stroje: NeznamySymbolException NotEnoughtSegmentException PrepisujeLevouZnackuException OdLeveZnackyDolevaException Popis jednotlivých tříd syntaktického analyzátoru Tato část je věnována podrobnému popisu jednotlivých tříd obsažených v balíku parser. Nejprve se budeme zabývat výjimkami, protože jejich význam je důležitý pro pochopení vlastní činnosti syntaktického analyzátoru Výjimka NotEnoughtSegmentException Tato výjimka je vyvolána, pokud se v definici devítice nachází nesprávný počet částí, tedy pokud v devítici není některá část uvedena, nebo je-li uvedena některá část navíc. Výjimka při svém vyvolání vrací textovou zprávu, která obsahuje popis chyby a číslo řádku, na kterém byla odhalena Výjimka NeznamySymbolException Tato výjimka, jak již název napovídá, by měla upozornit na syntaktickou chybu způsobenou symbolem, který nebyl dříve v souboru definován. Tato výjimka se tedy vyvolá vždy, pokud analyzátor při analýze přechodové funkce narazí na symbol (jméno), který nebyl uveden v hlavičce souboru, nebo pokud je uveden na špatném místě. Na špatném místě se například nachází stav, který je uveden na místě, kde je očekáván páskový symbol apod. Tato výjimka při svém vyvolání vrací krátkou textovou zprávu. Textová zpráva vždy obsahuje číslo řádku, na kterém se chyba nachází. Může také obsahovat onen 21
22 Popis jednotlivých tříd syntaktického analyzátoru neidentifikovatelný symbol, popřípadě ještě nějakou jinou poznámku týkající se dané chyby Výjimka PrepisujeLevouZnackuExcetion Jméno této výjimky vychází z funkce, kterou zastává při syntaktické analýze. Je tedy vyvolána v případě, že syntaktický analyzátor narazí na přechodové pravidlo, ve kterém dochází k přepisování levé koncové značky na pásce, což definice Turingova stroje výslovně zakazuje. Výjimka PrepisujeLevouZnackuException vrací při svém vyvolání krátkou textovou zprávu, která obsahuje popis chyby a číslo řádku, na kterém k chybě dochází Výjimka OdLeveZnackyDolevaException Tato výjimka je vyvolána právě tehdy, když se v definici přechodové funkce nachází pravidlo, které se snaží pohnout čtecí hlavou nalevo od levé koncové značky. Výjimka OdLeveZnackyDolevaException při svém vyvolání vrací textovou zprávu, která obsahuje popis chyby a číslo řádku, na kterém byla tato chyba odhalena Třída ParserElement Třída ParserElement slouží k rozdělování jednotlivých řádků na části. Částí se rozumí například jméno stavu, symbol abecedy, symbol posunutí čtecí hlavy apod. Význam těchto částí a jejich správnost pak vyhodnocuje až třída NactiZeSouboru. Tato třída pracuje tak, že si zjistí polohu prvního následujícího oddělovacího znaku (standartně je jím čárka) v řetězci a celý podřetězec od začátku po tento znak vrátí jako hledanou část a svůj řetězec o tento podřetězec zkrátí. V případě, že prvním symbolem řetězce, který se má rozdělit, je jedno z uzavíracích znamének (závorka, hranatá závorka, uvozovky) vrátí jako hledanou část celý podřetězec uzavřený do těchto znamének včetně těchto znamének. Svůj pracovní řetězec opět zkrátí o tuto část Třída NactiZeSouboru Tato třída slouží k otevření souboru s Turingovým strojem. Je hlavní třídou v balíku parser a provádí vlastní syntaktickou analýzu souboru s Turingovým strojem. Ke své činnosti využívá výše uvedené třídy. Po otevření souboru s Turingovým stroje začíná syntaktická analýza načtením prvního řádku souboru, restektive prvních několik řádků po první středník (dále jen řádek). Následně vyhodnotí, zda se jedná o definici devítice nebo popis (jméno) Turingova stroje. Jedná-li se o popis Turingova stroje, je tento řádek zahozen a načten další. Po načtení řádku obsahující definici devítice dojde k vymazání úvodní závorky, uzavírací závorky a všeho, co se nachází za ní. Následuje rozdělení pomocí třídy ParserElement na jednotlivé části. Po kontrole počtu částí, není-li vyvolána výjimka NotEnoughtSegmentException, dojde k určení významu jednotlivých částí pro Turingův stroj. některé části jsou rovnou předány Výkonné jednotce. Zbylé části slouží k určení následujících definic. 22
23 Popis jednotlivých tříd syntaktického analyzátoru Části předané Výkonné jednotce: Symbol levé koncové značky Symbol prázdného políčka Počáteční stav Akceptující stav Zamítající stav Po definici devítice mohou v libovolném pořadí následovat definice množiny stavů, vstupní abecedy a páskové abecedy. Další načtený řádek může tedy obsahovat jednu z těchto možností, a proto je třeba nejprve určit, o kterou z nich se jedná. Návěští řádku (tj. jméno před dvojtečkou) je porovnáno se jmény uvedenými v devítici, čímž je určen význam celého řádku. Řádek obsahující definici množiny stavů je zpracován následovně. Vymaže se první část tohoto řádku, kterou je návěští a dvojtečka, a zbytek se rozdělí pomocí třídy ParserElement na jednotlivá jména stavů. Tato jména jsou následně předána výkonné jednotce. Řádky obsahující definice vstupní a páskové abecedy jsou zpracovány obdobným způsobem jako řádek pro definici stavů. Opět je vymazáno návěští a jednotlivé znaky jsou z řádku vytaženy pomocí třídy ParserElement a následně předány výkonné jednotce. Začátek definic přechodové funkce je určen návěštím, tedy jménem přechodové funkce a dvojtečkou. Po načtení návěští přechodové funkce analyzátor ví, že dále lze zapisovat pouze přechodová pravidla. Návěští přechodové funkce je roněž vymazáno a na řádku tímto zůstává první přechodové pravidlo, které má Turingův stroj provádět. Přechodová pravidla se skládají z aktuální konfigurace, dvojtečky a přechodových konfigurací. Nejdříve se zpracovává aktuální konfigurace, tedy vezme se část řádku od začátku po první dvojtečku. Tento podřetězec je rozdělen na významové části. Řádek je poté o tuto část včetně dvojtečky zkrácen. Následuje zpracování přechodové konfigurace. Z řádku se tedy vyjme část od začátku po první dvojtečku, popřípadě středník. Je-li za přechodovou konfigurací uvedena dvojtečka, znamená to, že následuje další přechodová konfigurace. Je-li zde uveden středník, znamená to konec definice přechodového pravidla. Při zpracování přechodové konfigurace se vymažou vnější závorky, které tuto konfiguraci uzavírají, a zbytek je rozdělen na části. Výkoné jednotce se poté oznámí, že pro stav daného jména má vytvořit danou přechovou konfiguraci pod daným znakem. Následuje-li za touto přechodovou konfigurací konfigurace jiná, pak se proces zpracování přechodové konfigurace opakuje, jinak následuje načtení dalšího řádku. Při zpracovávání přechodové funkce se provádí kontrola korektnosti zápisu a definice všech použitých symbolů a jmen. Celá syntaktická analýza zápisu Turingova stroje se ukončuje v případě, že analyzátor načte řádek obsahující samotný středník. 23
24 4.2. Výkonná jednotka simulátoru, balíček turing 4.2. Výkonná jednotka simulátoru, balíček turing Výkonná jednotka simulátoru je ta část simulátoru, která provádí vlastní výpočet Turingova stroje nad daným vstupním slovem. Jedná se tedy o strukturu, která je sestavena z údajů od syntaktického analyzátoru a která je zobrazována pomocí zobrazovací jednotky simulátoru a řízena pomocí hlavní řídící jednotky simulátoru Části výkonné jednotky simulátoru Výkonná jednotka se skládá z hlavní výpočetní třídy TuringMachine, která provádí vlastní výpočet Turingova stroje za pomoci tříd Stav a Prechod. Pomocí výjimek a metod komunikuje s hlavní řídící jednotkou simulátoru. O vlastní výpočet se starají tyto třídy: TuringMachine Stav Prechod Na vyjímečné stavy nastalé při simulaci upozorňují tyto výjimky: JeTuVetveniException KonecVypoctuException Popis jednotlivých částí výkonné jednotky simulátoru Při popisu jednotlivých součástí výkonné jednotky simulátoru si nejprve osvětlíme funkci pomocných tříd a výjimek, aby byl popis funkce hlavní třídy tohoto balíku lépe pochopitelný Pomocná třída Prechod Pomocná třída Prechod je struktura, v níž je uložená přechodová konfigurace. Jedná se o jednoduchou třídu, která v sobě obsahuje informaci, jak se má stroj zachovat, budeli použito dané přechodové konfigurace. Obsahuje pouze metody pro výstup. Výstupem této třídy je pohyb hlavou, znak, který se má zapsat na pásku, a stav do kterého se má přejít Pomocná třída Stav V pomocné třídě Stav jsou uloženy veškeré informace, které je potřeba o stavu vědět, tedy jméno jako identifikátor stavu a asociované pole obsahující přechodovou funkci pro daný stav. Asociované pole obsahuje pro každý klíč, kterým je zde páskový symbol, pole (ArrayList) přechodů (objektů třídy Prechod), které lze provést pod daným páskovým 24
25 Popis jednotlivých částí výkonné jednotky simulátoru symbolem. Jedná-li se o deterministický přechod je toto pole vždy jednoprvkové, ale obecně může obsahovat více jak jeden přechod. Jak je tedy vidět, celá přechodová funkce Turingova stroje byla převedena do jednotlivých stavů a hlavní třída tohoto balíku se už o ni nemusí starat Výjimka JeTuVetveniException Výjimka JeTuVetveniException je vyvolána vždy, když výpočet narazí na nedeterministickou volbu, tedy když množina přechodů pro aktuální stav a aktuální symbol pod čtecí hlavou není jednoprvková. Tato výjimka se vyhodnocuje vždy na konci každého kroku, aby před následujícím krokem mohla řídící jednotka simulátoru adekvátně zareagovat na možný výskyt nedeterministické volby Výjimka KonecVypoctuException Výjimka KonecVypoctuException je vyvolána vždy, když výpočet dospěje do jednoho z konečných stavů, tedy když se po provedení kroku ocitne Turingův stroj v akceptujícím, nebo zamítajícím stavu. Jako své hlášení vrací tato výjimka textovou zprávu o tom, zda stroj akceptoval, nebo zamítl. Tato výjimka je rovněž vyhodnocována na konci každého kroku, aby simulátor nevyžadoval po konečných stavech přechod od někud někam, což by vedlo ke kolizi celého programu Třída TuringMachine Jak již bylo řečeno dříve, je třída TuringMachine hlavní třídou výkonné jednotky simulátoru. Obsahuje v sobě metody určené pro načtení Turingova stroje do své vnitřní struktury, pro provádění výpočtu daného Turingova stroje a také metody určené pro komunikaci s řídící a zobrazovací jednotkou simulátoru. Tato třída má o daném Turingově stroji uloženy všechny informace uvedené v devítici. Množinu stavů zde reprezentuje pole stavů (objektů třídy Stav). Je zde také uložen aktuální obsah pásky Turingova stroje ve formě řetězce (String) a poloha čtecí hlavy jako kladné celé číslo. Protože páska Turingova stroje je obecně jednosměrně nekonečná, což se špatně ukládá do proměné, je třeba využít toho, že se její obsah dá vždy reprezentovat konečným způsobem. Obsah pásky je tedy uložen v paměti jako řetězec (String) s jedním znakem prázdného políčka na konci. Dostane-li se čtecí hlava během výpočtu na poslední pole, na kterém je zapsán symbol prázdného políčka, je za celý řetězec připojen další symbol prázdného políčka, čímž se simuluje nekonečnost pásky. Třída TuringMachine ve spolupráci se syntaktickým analyzátorem načte Turingův stroj do své vnitřní struktury. Po načtení se nastaví do iniciálního stavu. Na pásce je pouze levý koncový symbol a symbol prázdného políčka, což představuje prázdný obsah pásky. Aktuálním stavem je počáteční stav a čtecí hlava se nachází na nultém políčku pásky. Stroj je tak připraven začít simulovat výpočet daného Turingova stroje. 25
26 4.3. Zobrazovací jednotka simulátoru Teprve když je stroj takto připraven provede se vykreslení Turingova stroje pomocí zobrazovací jednotky simulátoru. Vlastní simulace výpočtu začíná teprve ve chvíli, kdy dojde z řídící jednotky simulátoru příkaz, aby bylo zapsáno na pásku. Po změně obsahu pásky dojde k překreslení Turingova stoje zobrazovací jednotkou simulátoru. Řídící jednotce simulátoru se zase oznámí přechody, které bude možno v následujícím kroku provést, a ona vytvoří v dolním bílém poli odpovídající přechodová tlačítka. Dále již výkonná jednotka přijímá pouze povely zda má přejít do dalšího stavu, a v případě nedeterministické volby i informaci o tom, kterou z možností má ve výpočtu pokračovat. Přechod z konfigurace do jiné konfigurace je realizován jako dotaz pro aktuální stav, jaký přechod (objekt třídy Prechod) se má provést pro symbol pod čtecí hlavou. Následně je aktuální stav nahrazen stavem získaným z této struktury. Symbol na pásce je nahrazen příslušným symbolem a hlava se pohne určeným směrem. Přechod je ve třídě TuringMachine prováděn metodou prejdi(int index) kde index představuje index přechodu v poli možných přechodů v dané konfiguraci stroje. V případě deterministického přechodu řídící jednotka simulátoru nastavuje tento index automaticky na nulu. Pro nedeterministické volby pak předává takto třídě TuringMachine informaci. který přechod se má použít. Vlastní volba se tedy řeší až v řídící jednotce simulátoru, která je na nedeterministickou volbu upozorněna výjimkou JeTuVetveniException Zobrazovací jednotka simulátoru Zobrazovací jednotka simulátoru zprostředkovává uživateli zpětnou vazbu mezi ním a simulátorem. Pomocí ní může kontrolovat výpočet nad daným Turingovým strojem. Jasně pozná, zda Turingův stroj opravdu počítá, tak jak předpokládal, neboť má dobrý přehled o aktuální konfiguraci Turingova stroje Části zobrazovací jednotky simulátoru Zobrazovací jednotka simulátoru se skládá ze dvou dílčích částí. První částí je třída pro zobrazování pásky Turingova stroje a čtecí hlavy. Tato část se zobrazuje samostatně v horním bílém poli simulátoru. Druhou částí jsou třídy pro vykreslení množiny stavů s přechodovou funkcí (tzv. řídící jednotka stroje). Třída zobrazující pásku stroje: PaintPasku Třídy pro zobrazení řídící jednotky stroje: Bunka PaintStavovaJednotka PaintTuring 26
27 Popis jednotlivých tříd zobrazovací jednotky simulátoru Popis jednotlivých tříd zobrazovací jednotky simulátoru Pásku Turingova stroje zobrazuji odděleně, neboť obsah pásky je sice vždy konečný ale libovolně dlouhý, takže by společné zobrazení řídící jednotky stroje a pásky stroje vedlo k nepřehlednosti. Buď by nebyla vidět řídící jednotka stroje, nebo aktuální pozice čtecí hlavy. Šlo by to sice udělat v jednom a přitom zachovat přehlednost zobrazení. Posouvala by se řídící jednotka a páska by zůstávala na místě. V této realizaci by však bylo nutné posouvat celým plátnem tak, aby byla řídící jednotka vždy vyditelná na stejném místě, neboť posouvání působí dosti nepřirozeně a rušivě. Vzhledem ke složitosti těchto postupů se mi rozdělení na dvě nezávislé vykreslovací procedury jeví jako nejlepší řešení Zobrazení pásky stroje,třída PaintPasku Páska Turingova stroje se zobrazuje jako obdélník rozdělený na čtverečky. Každý čtvereček představuje jedno políčko pásky. Čtecí hlava je zobrazena o něco větším čtverečkem než jsou políčka pásky. Třída PaintPasku si pamatuje odkaz na momentálně platný Turingův stroj. Od tohoto stroje dostává po každém kroku či jiné změně, informaci o aktuálním obsahu pásky. Třída si pak následně přepočítá velikost plátna potřebnou k vykreslení celého obsahu pásky a pásku vykreslí. Překreslování pásky provádí metoda repaint(), která je volána z hlavní řídící jednotky simulátoru Třída Bunka Třída Bunka je nejzákladnějším kamenem zobrazování řídící jednotky Turingova stroje. Jak bylo řečeno v kapitole , je řídící jednotka Turingova stroje zobrazena ve formě tabulky. Každá tabulka se musí logicky skádat z jednotlivých buňek. Formát a vzhled každé buňky má nastarosti tato třída. Každá buňka je vytvářena ve třídě PaintStavovaJednotka, která vytvoří buňku potřebné velikosti a přiřadí jí obsah. Obsahem buňky je krátký textový řetězec popisující přechodovou konfiguraci, která má být v dané buňce znázorněna. Text je zarovnán na střed buňky. Nutno podotknout, že některé zejména kratší texty (páskový symbol) se mi nepodařilo zarovnat přesně do středu, neboť javovské funkce vracející délku určitého textu v daném fontu nejsou příliš přesné. Obsahuje-li více přechodových konfigurací, jsou tyto přechodové konfigurace uvedeny podsebou. Má-li buňka výšku, do které by se vešlo více přechodových konfigurací, než kolik jich buňka skutečně obsahuje (např. má výšku na 3, ale obsahuje pouze 2), jsou tyto přechodové konfigurace rozmístěny rovnoměrně po celé buňce, tedy podsebou se stejnými rozestupy Třída PaintStavovaJednotka Tato třída se stará o správné zobrazení řídící jednotky Turingova stroje. Základní funkcí je vykreslení tabulky tak, aby v každém řádku byly všechny buňky stejně vysoké 27
28 4.4. Hlavní řídicí jednotka simulátoru, balík main a v každém sloupci stejně široké, aby se do nich vešly celé popisy přechodových konfigurací. Základní funkci třídy PaintStavovaJednotka realizují dvě metody vymer a draw. Metoda vymer prozkoumá Turingův stroj, který má být simulován, a metoda draw jej podle spočítaných velikostí vykreslí. Metoda vymer nejprve vytvoří příslušný počet buňek (objektů třídy Bunka, dále jen buňka). Poté každé buňce přiřadí příslušný textový obsah. Není-li pro určitou buňku obsah definován, neexistuje přechod pro daný stav a páskový symbol, přiřadí buňce několik pomlček. V následujících krocích tato metoda projde všechny buňky. Každé se zeptá na šířku a výšku, kterou potřebuje buňka pro své úplné bezchybné vykreslení, respektive kolik přechodových konfigurací obsahuje a délku zápisu nejdelší z nich. Z těchto údajů určí pro každý řádek a každý sloupec minimální rozměry tak, aby byly bezchybně vykresleny všechny buňky na daném řádku a v daném sloupci. Tyto rozměry posléze nastaví buňkám jako jejich výšku a šířku. Tato metoda se provádí v konstruktoru této třídy. Metoda draw už pouze vykresluje jednotlivé buňky za sebe, jak náleží. Při vykreslování se každé ptá, zda neobsahuje jméno aktuálního stavu, symbolu na pásce nebo přechodovou konfiguraci, která se bude v následném kroku provádět. Tyto buňky pak vykreslí jinou barvou než všechny ostatní Třída PaintTuring Tato třída je hlavní třídou zobrazování řídící jednotky Turingova stroje. Od ní se ostatní třídy dozví, který Turingův stroj bude vykreslován. Stará se o plátno, na které se má Turingův stroj vykreslit, a kdy má být vykreslen. Tato třída je pak sama řízena z hlavní řídící jednotky simulátoru. Přijme-li tato třída nový Turingův stroj, nejprve vytvoří nový objekt třídy PaintStavovaJednotak. Poté se zeptá na velikost zobrazení daného Turingova stroje a podle toho zvolí velikost plátna, na které se bude daný Turingův stroj vykreslovat. Následné vykreslování se provádí pomocí metody repaint(), která je volána z hlavní řídící jednotky simulátoru Hlavní řídicí jednotka simulátoru, balík main Je základním stavebním kamenem celého simulátoru. Hlavní řídící jednotka simulátoru zajišťuje komunikaci s uživatelem. Udává povely všem ostatním jednotkám simulátoru a vzájemně je propojuje Části řídicí jednotky simulátoru, balík main Řídící jednotka simulátoru obsahuje jednu hlavní třídu, která využívá všechny ostatní třídy v tomto balíku. Pomocné třídy v balíku main slouží jen jako podrobné definice komponent, které nebylo možné zadefinovat přímo v hlavní třídě. Vedlejší třídy balíku main jsou tyto: MyChoice 28
29 Popis pomocných tříd řídící jednotky simulátoru ButtonPrechod Casovac Hlavní třída balíku main je tyto: MujApplet Popis pomocných tříd řídící jednotky simulátoru Třída MyChoice Tato třída je potomkem třídy Choice, která v Javě slouží jako rolovací tlačítko. Na řídícím panelu simulátoru slouží tato komponenta pro výběr Turingova stroje z databáze simulátoru. Třída MyChoice je její rozšíření třídy Choice o metodu NactiVsechnyTM. Tato metoda provede načtení všech jmen Turingových strojů z databáze a jejich uložení do seznamu, který se rozbalí kliknutím na toto rolovací tlačítko. Soubory s Turingovými stroji se nacházejí v adresáři tm, který se nachází ve stejném adresáři jako javovský archiv archiv.jar. Jména souborů s Turingovými stroji se skládají z pořadového čísla a přípony tm. 0.tm 1.tm 13.tm Pořadová čísla souborů jsou vždy číslována od nuly a musí tvořit souvislou řadu, aby byly načteny všechny, neboť tato metoda načítá soubory podle názvů od nuly po jedné, dokud nenarazí na nějaké číslo, jemuž odpovídající soubor se v adresáři nenachází. Jako jméno Turingova stroje se zde bere první řádek v souboru, na kterém se může nacházet popis jazyka příjímaný Turingovým strojem nebo jeho název. Pro tento účel je vyhrazen první řádek souboru viz. kapitola Po použití rolovacího tlačítka pro výběr Turingova stroje z databáze vrátí tato třída řídící jednotce simulátoru číslo, které odpovídá pozici daného Turingova stroje v seznamu, která je shodná se jménem příslušného souboru Třída ButtonPrechod Pomocí této třídy se vytvářejí tlačítka, která se nacházejí ve spodním bílém poli řídícího panelu viz. kapitola Protože tato tlačítka vznikají dynamicky během simulace, bylo mnohem vhodnější pro ně definovat samostatnou třídu. Třída ButtonPrechod je potomek třídy Button. Tlačítko při svém vzniku obdrží jméno, kterým je zápis přechodového pravidla, index daného přechodového pravidla a odkaz na instanci hlavní řídící třídy MujApplet. Po stisku vrátí tlačítko hlavní řídící třídě své číslo a ta si ho nastaví jako přechodový index a přikáže výkoné jednotce simulátoru přejít pod tímto indexem. Index je proměnná, 29
Program je určen pro děti se specifickými poruchami učení.
Program je určen pro děti se specifickými poruchami učení. Program byl vyvinut ve spolupráci s Okresní pedagogicko - psychologickou poradnou v Klatovech Co oceníte: Program lze velice snadno modifikovat
Manuál k aplikaci SDO PILOT v.0.2
Manuál k aplikaci SDO PILOT v.0.2 Základní informace o aplikaci Aplikace slouží pro zjednodušené vytváření dokumentů Souhrnů doporučených opatření pro Evropsky významné lokality. Vznikala přírustkovým
Databáze pacientů. Petr Novák (Ing, Ph.D.) novakpe@labe.felk.cvut.cz 02.07.2014
Databáze pacientů Petr Novák (Ing, Ph.D.) novakpe@labe.felk.cvut.cz 02.07.2014 1 Obsah 1 Obsah... 1 2 Úvod... 1 3 Přidání pacienta... 3 4 Vymazání pacienta... 5 5 Výběr pacienta... 5 6 Výběr záznamu dat...
Tabulkové processory MS Excel (OpenOffice Calc)
Maturitní téma: Tabulkové processory MS Excel (OpenOffice Calc) Charakteristika tabulkového editoru Tabulkový editor (sprematuritníadsheet) se používá všude tam, kde je třeba zpracovávat data uspořádaná
Rámcový manuál pro práci s programem TopoL pro Windows
Rámcový manuál pro práci s programem TopoL pro Windows Příkazy v nabídce Předmět Volba rastru rychlá klávesa F4 Příkaz otevře vybraný rastr; tj. zobrazí ho v předmětu zájmu. Po vyvolání příkazu se objeví
Metodika. Oznámení o vykonávání působností v agendě ve smyslu zákona č. 111/2009. Sb., o základních registrech. Verze 1.6
Metodika Oznámení o vykonávání působností v agendě ve smyslu zákona č. 111/2009 Sb., o základních registrech Verze 1.6 AIS RPP Působnostní určeno pro oznamovatele Oznámení o vykonávání působností č. 111/2009
ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14
ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 18 0:40 Algoritmus Algoritmem by se dal nazvat
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,
Kurz Word 2000 Odrážky a číslování Kurz Word 2000 Odrážky a číslování Oddíly Záhlaví a zápatí
Kurz Word 2000 Odrážky a číslování Oddíly Záhlaví a zápatí - 1 - L04 V 1 odrážky a číslování Odrážky, číslování i víceúrovňovost můžeme zadat buď před zápisem textu nebo vytvořit dodatečně označením bloku
Návod k obsluze Bakalářská práce Autor Vedoucí práce Škola Obor Webový systém pro konfiguraci disperzního modelu
Návod k obsluze Tento manuál se týká webové aplikace, jejíž vypracování bylo předmětem bakalářské práce. Cílem této práce bylo vytvoření databázového informačního systému pro zpracování dat vztahujících
Okno Editoru nabízí v panelu nástrojů
110 Editor pracovní nástroje Naučte se používat základní nástroje Editoru pro efektivní úpravy obrázků. VYBRANÉ OVLÁDACÍ PRVKY 112 POLYGONOVÉ LASO A LASO 124 VLOŽIT OBRÁZEK DO OBRÁZKU 132 VÝBĚRY 114 REDUKCE
UŽIVATELSKÁ PŘÍRUČKA PRO IZR NA PORTÁLU FARMÁŘE - HLÁŠENÍ POHYBŮ A OBJEDNÁVKY UZ
UŽIVATELSKÁ PŘÍRUČKA PRO IZR NA PORTÁLU FARMÁŘE - HLÁŠENÍ POHYBŮ A OBJEDNÁVKY UZ Autor: Aquasoft, spol. s r. o. Projekt: Integrovaný zemědělský registr Poslední aktualizace: 5.12.2014 Jméno souboru: IZR-PFHLAS_142205
MAWIS. Uživatelská dokumentace
MAWIS Uživatelská dokumentace Verze 27-11-2008 OBSAH OBSAH... 2 1) O MAPOVÉM SERVERU... 3 2) POTŘEBNÁ NASTAVENÍ... 3 Hardwarové požadavky... 3 Softwarové požadavky... 3 Nastavení Internet Exploreru:...
Sada 2 - MS Office, Excel
S třední škola stavební Jihlava Sada 2 - MS Office, Excel 04. Úvod do Excelu 2007. Formátování buněk Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284
Program Montážky manuál uživatele
Program Montážky manuál uživatele -1- v 1.0 Obsah 1. Úvod... 3 2. Technické informace... 3 2.1. Systémové požadavky... 3 2.2. Instalace programu... 3 2.3. Zkušební verze programu... 3 2.4. Přechod na plnou
Pro vytvoření zdrojového souboru použít export GEOPORTAL, který obsahuje i adresy na webové stránky s válečnými hroby.
Válečné hroby v chytrém telefonu Postup je zpracován pro ORP Praha 3, ale je jej možno aplikovat i pro stupeň kraj (kromě Středočeského kraje, u kterého je pro velké množství lokalit nutné rozdělit zdrojový
Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín
Kolekce ArrayList napsal Pajclín Tento článek jsem se rozhodl věnovat kolekci ArrayList, protože je to jedna z nejpoužívanějších. Tento článek není kompletním popisem třídy ArrayList, ale budu se snažit
Návod k používání webové služby ABA-DOPRAVNÍ INFORMACE
Návod k používání webové služby ABA-DOPRAVNÍ INFORMACE 1. Vstupní obrazovka aplikace 1.1. Tabulka Historie Vašich objednaných dopravních informací : V tabulce budete vidět Vámi objednané požadavky na zasílání
10. Editor databází dotazy a relace
10. Editor databází dotazy a relace Dotazy Dotazy tvoří velkou samostatnou kapitolu Accessu, která je svým významem téměř stejně důležitá jako oblast návrhu a úpravy tabulek. Svým rozsahem je to ale oblast
sssssssssssssssssssssssssssssssssssssssssssssssssss UŽIVATELSKÁ PŘÍRUČKA ELEKTRONICKÁ PODATELNA - WEBOVÁ ČÁST APLIKACE Verze distribuce: 1.1.29.
řízený dokument sssssssssssssssssssssssssssssssssssssssssssssssssss UŽIVATELSKÁ PŘÍRUČKA VERZE: 4 ELEKTRONICKÁ PODATELNA - WEBOVÁ ČÁST APLIKACE Verze distribuce: 1.1.29.1 Počet stran: 41 Správa dokumentu
035 036 síťová verze - zaúčtování příjemek / výdejek POZOR! <ENTER> párování příjemek s fakturou 033 034 umazávání plachty při nízkém kreditu
novinky 13 (23).035 a 13 (23).036 síťová verze - zaúčtování příjemek / výdejek Při práci více uživatelů v síti se za určitých situací špatně zaúčtovaly příjemky resp. výdejky. Pokusili jsme se tyto problémy
Uživatelský manuál. A3600 DL ( Data Download)
Uživatelský manuál A3600 DL ( Data Download) Aplikace : Jednoduchý program pro přenášení dat z on line monitorovacího systému A3600 Export měřených statických dat do souboru Zobrazení grafů naměřených
VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů
VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE FAKULTA INFORMATIKY A STATISTIKY Hlavní specializace: Ekonometrie a operační výzkum Název diplomové práce Optimalizace trasy při revizích elektrospotřebičů Diplomant: Vedoucí
Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97. Vybrané části Excelu. Ing. Petr Adamec
INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97 Vybrané části Excelu Ing. Petr Adamec Brno 2010 Cílem předmětu je seznámení se s programem Excel
Sestavy dlaždic. Příprava dlaždic pro definici sestavy
Sestavy dlaždic Sestava dlaždic je předem připravené a na disk uložené uspořádání dlaždic, které lze pokládat buďto jednotlivě nebo na celou určenou plochu. Jedna sestava dlaždic může obsahovat dlaždice
Dotykový panel FTC03DALI
Dotykový panel FTC03DALI Kompletní uživatelský manuál a technická specifikace Foxtron spol. s r.o. Jeseniova 1522/53 130 00 Praha 3 tel/fax: +420 274 772 527 E-mail: info@foxtron.cz www: http://www.foxtron.cz
5.1 Vyhledávací portál uživatelské rozhraní
Uživatelská příručka Uživatelské rozhraní aplikace DoserFindIT se dělí na dvě části vyhledávací portál a administrační rozhraní. Vyhledávácí portál umožňuje základní a rozšířené vyhledávání článků a vyhledávání
ISO 400 1/250 sekundy f/2,8 ohnisko 70 mm. 82 CANON EOS 550D: Od momentek k nádherným snímkům
4 ISO 400 1/250 sekundy f/2,8 ohnisko 70 mm 82 CANON EOS 550D: Od momentek k nádherným snímkům Kreativní zóna DOSTAŇTE SE NA VYŠŠÍ ÚROVEŇ Kreativní zóna je název, který Canon vybral pro pokročilejší fotografické
- příkaz pohybující želvou zpět a o kolik. vlevo 45 vl 45 libovolně zadáme) směrem doleva. Na obrázku jsme pro
Logo Imagine Základní příkazy První informací by mělo být, že nejdůležitějším objektem a tím, od kterého se vše odvíjí dál je želva. Při prvním spuštění programu je to to první, co můžete uprostřed bianco
Teorie množin. kapitola 2
Teorie množin kapitola 2 kapitola 2 část 3 Intervaly Základní poznatky Teorie množin Co po tobě budu dneska chtít? V této podkapitole tě naučím pracovat s intervaly, správně je zapisovat a zakreslovat
TE-218 TG-218 TW-218. Electronic Publishers EURO INTERPRETER. Návod k použití
24 Electronic Publishers TE-218 TG-218 TW-218 EURO INTERPRETER Návod k použití 1 Licenční smlouva NEŽ ZAČNETE VÝROBEK POUŽÍVAT, PŘEČTĚTE SI TUTO LICENČNÍ SMLOUVU. POUŽÍVÁNÍ VÝROBKU ZNAMENÁ, ŽE JSTE AKCEPTOVALI
E-ZAK, verze M-2 jednoduchý elektronický nástroj pro veřejné zakázky
E-ZAK, verze M-2 jednoduchý elektronický nástroj pro veřejné zakázky uživatelská příručka pro zadavatele, verze 1.2 2008 QCM, s.r.o. Obsah Úvod......5 Požadavky na provoz......6 Přihlášení......6 Odhlášení......7
Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31
Vztah teorie vyčíslitelnosti a teorie složitosti IB102 Automaty, gramatiky a složitost, 2. 12. 2013 1/31 IB102 Automaty, gramatiky a složitost, 2. 12. 2013 2/31 Časová složitost algoritmu počet kroků výpočtu
Gravitační pole manuál Jan Hrnčíř, Martin Klejch, 2005. Gravitační pole. Využití multimédií při výuce fyziky. Manuál k multimediální prezentaci
Gravitační pole Využití multimédií při výuce fyziky Manuál k multimediální prezentaci Jan Hrnčíř jan.hrncir@gfxs.cz Martin Klejch martin.klejch@gfxs.cz Gymnázium F. X. Šaldy Liberec Obsah Obsah... 1 Úvod...
ZÁKLADY PRÁCE S PROHLÍŽEČEM
ZÁKLADY PRÁCE S PROHLÍŽEČEM 1. Způsoby vyhledávání Hlavní vyhledávací funkce VaDeMecum tvoří tři základní prvky: a) Fulltextové vyhledávání b) Rozšířené vyhledávání c) Postupné procházení strukturou archivního
AUTOMATICKÁ SEKAČKA VÝZKUMNÁ ZPRÁVA
AUTOMATICKÁ SEKAČKA VÝZKUMNÁ ZPRÁVA PŘEDMĚT: 4IT495 Simulace systémů AUTOR: Ladislav Dyntar TYP MODELU: Multiagentní PROVEDENO V: NetLogo [1] 1 Definice problému V dnešní moderní době je snahou valné většiny
FTC08 instalační manuál k dotykovému panelu systému Foxys
FTC08 instalační manuál k dotykovému panelu systému Foxys Foxtron spol. s r.o. Jeseniova 1522/53 130 00 Praha 3 tel/fax: +420 274 772 527 E-mail: info@foxtron.cz www: http://www.foxtron.cz Verze dokumentu
DUM 14 téma: Barevné korekce fotografie
DUM 14 téma: Barevné korekce fotografie ze sady: 2 tematický okruh sady: Bitmapová grafika ze šablony: 09 Počítačová grafika určeno pro: 2. ročník vzdělávací obor: vzdělávací oblast: číslo projektu: anotace:
Uživatelská příručka
Uživatelská příručka PC výkaznictví JASU (program pro zpracování účetního výkaznictví) březen 2012 Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 P.O.Box 36 111 21 Praha 1 telefon: 224 091 619 fax:
Metodika Portálu pohledávek ve vztahu k uživateli
Metodika Portálu pohledávek ve vztahu k uživateli Obsah Úvod 1. Základní vlastnosti a pojmy 1.1. Ikony 1.2. Vaše první přihlášení do aplikace 1.3. Přístupové údaje 2. Popis práce v aplikaci portálu pohledávek
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA INFORMAČNÍCH TECHNOLOGIÍ. Uživatelská příručka k programu FloodFilling Art
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA INFORMAČNÍCH TECHNOLOGIÍ Uživatelská příručka k programu FloodFilling Art Autor: Jan Bílek e-mail: xbilek14@stud.fit.vutbr.cz 8. 4. 2009 Obsah 1 Princip vytváření
Téma: Arkanoid. X36SOJ Strojově orientované jazyky Semestrální práce. Vypracoval: Marek Handl Datum: červen 2006
Vypracoval: Marek Handl Datum: červen 2006 X36SOJ Strojově orientované jazyky Semestrální práce Téma: Arkanoid Úvod Program je verzí klasické hry Arkanoid. Na herní ploše jsou rozloženy kostičky, které
VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1
Manuál správce VNI 5.1 verze 0.2 Manuál správce VNI 5.1 VARIANT plus, spol. s.r.o., U Obůrky 5, 674 01 TŘEBÍČ, tel.: 565 659 600 technická linka 565 659 655 (pracovní doba 7:30 15:00) www.variant.cz isb@variant.cz
Pojem algoritmus a jeho základní vlastnosti
DUM Algoritmy DUM III/2-T1-1-1 PRG-01A-var1 Téma: Úvod do algoritmů - výklad Střední škola Rok: 2012 2013 Varianta: A Zpracoval: Mgr. Pavel Hrubý VÝKLAD Pojem algoritmus a jeho základní vlastnosti Obsah
Turingovy stroje. Teoretická informatika Tomáš Foltýnek
Turingovy stroje Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Teoretická informatika strana 2 Opakování z minulé přednášky Jaké znáte algebraické struktury s jednou operací? Co je to okruh,
RC-300. U ivatelská pøíruèka. Instalaèní firma: Servisní telefon: Datum Počet stran Číslo dokumentu 11/2003 6 PU-RC-3-01-C
RC-300 U ivatelská pøíruèka Instalaèní firma: Servisní telefon: Datum Počet stran Číslo dokumentu 11/2003 6 PU-RC-3-01-C 2 RC-300 1. Bezpečnostní pokyny 1.1 Účel příručky Tato příručka je určena pro koncového
2 Spojité modely rozhodování
2 Spojité modely rozhodování Jak již víme z přednášky, diskrétní model rozhodování lze zapsat ve tvaru úlohy hodnocení variant: f(a i ) max, a i A = {a 1, a 2,... a p }, kde f je kriteriální funkce a A
Helios RED a Internetový obchod
(pracovní verze!) Helios RED a Internetový obchod Obsah dokumetace: 1. Úvod 2. Evidované údaje na skladové kartě 3. Přenos skladových karet z Helios RED do e-shopu 4. Přenos objednávek z e-shopu do Helios
DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky
DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky ze sady: 02 tematický okruh sady: Tabulkový editor ze šablony: 07 KANCELÁŘSKÝ SOFTWARE určeno pro: 1-4. ročník
Obsah: KR2 - Uživatelská příručka -1-
KR2 - Uživatelská příručka -1- Obsah: 1. Obecné... 2 2. Funkce řadiče...2 2.1. Obecný popis... 2 2.2. Režimy řízení...2 2.2.1. Řízení na konstantní teplotu...2 2.2.2. Pseudoekviterm...2 2.2.3 Řízení dle
PROGRAM RP83. Kreslení perspektiv a vyhodnocení rozhledů. Příručka uživatele. Revize 5. 05. 2014. Pragoprojekt a.s. 1986-2014
ROADPAC 14 PROGRAM Kreslení perspektiv a vyhodnocení rozhledů Příručka uživatele Revize 5. 05. 2014 Pragoprojekt a.s. 1986-2014 PRAGOPROJEKT a.s., 147 54 Praha 4, K Ryšánce 16 Kreslení perspektiv 1. Úvod
Manuál k databázi soupisů duší
Manuál k databázi soupisů duší Obsah Úvod... 3 1. Orientace v databázi... 3 2. Vkládání údajů do databáze... 4 2.1 Formulář obec... 5 2.2 Formulář dům... 6 2.3 Formulář domácnost... 7 2.4 Formulář osoba...
FORMÁTOVÁNÍ ODSTAVCE
FORMÁTOVÁNÍ ODSTAVCE Autor: Mgr. Dana Kaprálová Datum (období) tvorby: srpen 2013 Ročník: šestý Vzdělávací oblast: Informatika a výpočetní technika 1 Anotace: Žák se orientuje v prostředí aplikace WORD.
Aplikace Repaint Magic pro úpravu obrázků v MS Word
Aplikace Repaint Magic pro úpravu obrázků v MS Word Tato aplikace poskytuje nástrojový panel Repaint Magic s příkazy pro hromadný výběr grafických elementů obrázku se shodnou barvou výplně či čáry a umožňuje
FAKULTA INFORMAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Teorie programovacích jazyků. Dvourozměrné jazyky a digitální obrazy
FAKULTA INFORMAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Teorie programovacích jazyků Dvourozměrné jazyky a digitální obrazy Ak.rok: 2008/2009 Jiří Koutný Abstrakt Následující text je projektem do
Složitost Filip Hlásek
Složitost Filip Hlásek Abstrakt. Příspěvek popisuje dva základní koncepty teoretické informatiky, Turingovy stroje a složitost. Kromě definic důležitých pojmů uvádí také několik souvisejících tvrzení,
NÁVOD K POUŽITÍ SET-TOP-BOXU ARRIS VIP 1113
NÁVOD K POUŽITÍ SET-TOP-BOXU ARRIS VIP 1113 EDERA Group a. s. tel.: 775 212 034 e-mail: porucha@edera.cz web: www.edera.cz Vážení klienti, jsme rádi, že jste si za svého poskytovatele televizních služeb
Automatizovaný systém velení a řízení pro malé jednotky. Automated command and control system for the small units
Univerzita obrany Fakulta ekonomiky a managementu Katedra vojenského managementu a taktiky Softwarová dokumentace Automatizovaný systém velení a řízení pro malé jednotky Automated command and control system
POPIS PROSTŘEDÍ PROGRAMU GIMP 2. Barvy 2. Okno obrázku 4 ZÁKLADNÍ ÚPRAVA FOTOGRAFIÍ V GRAFICKÉM EDITORU 6. Změna velikosti fotografie 6
Obsah POPIS PROSTŘEDÍ PROGRAMU GIMP 2 Barvy 2 Okno obrázku 4 ZÁKLADNÍ ÚPRAVA FOTOGRAFIÍ V GRAFICKÉM EDITORU 6 Změna velikosti fotografie 6 Ořezání obrázku 7 TRANSFORMACE 9 Rotace 9 Překlopení 11 Perspektiva
Knihomol. Manuál pro verzi 1.2
Knihomol Manuál pro verzi 1.2 Strana - 2 - I. Základy práce s programem Úvod do práce s programem Knihomol: Program knihomol slouží pro vedení evidence spojené s provozem malé knihovny. Je určen především
Program pro flexibilní tvorbu evidencí. VIKLAN - Evidence. Uživatelská příručka. pro seznámení se základními možnostmi programu
Program pro flexibilní tvorbu evidencí VIKLAN - Evidence Uživatelská příručka pro seznámení se základními možnostmi programu Vlastimil Kubínek, Ing. Josef Spilka VIKLAN - Evidence Verse 1.11.8.1 Copyright
MANUÁL K OBSLUZE REDAKČNÍHO SYSTÉMU / wordpress
MANUÁL K OBSLUZE REDAKČNÍHO SYSTÉMU / wordpress www.webdevel.cz Webdevel s.r.o. IČ 285 97 192 DIČ CZ28597192 W www.webdevel.cz E info@webdevel.cz Ostrava Obránců míru 863/7 703 00 Ostrava Vítkovice M 603
Navigace na webových stránkách
Navigace na webových stránkách Tato kapitola navazuje na kapitoly o přístupnosti, použitelnosti a optimalizaci webových stránek a podrobněji popisuje tvorbu informační architektury webových stránek, zejména
Editor formulářů Money S3
Editor formulářů Money S3 Obsah I Obsah Část I 2 1 Co je Editor formulářů... 2 Co je to formulář... 3 Struktura formuláře... 3 Nastavení tisku... v Money S3 3 Základní ovládání... 4 Svislá lišta ikon...
Nástroj WebMaker TXV 003 28.01 první vydání Únor 2009 změny vyhrazeny
Nástroj WebMaker TXV 003 28.01 první vydání Únor 2009 změny vyhrazeny 1 TXV 003 28.01 Historie změn Datum Vydání Popis změn Únor 2009 1 První verze (odpovídá stavu nástroje ve verzi 1.6.2) Obsah 1 Úvod...3
Výpočetní složitost I
Výpočetní složitost I prooborlogikanaffuk Petr Savický 1 Úvod Složitostí algoritmické úlohy se rozumí především její časová a paměťová náročnost při řešení na počítači. Časová náročnost se měří počtem
TURINGOVY STROJE. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
TURINGOVY STROJE Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 12 Evropský sociální fond Praha & EU: Investujeme do vaší
UŽIV ATELSKÁ PŘÍRUČKA
UŽIVATELSKÁ PŘÍRUČKA Autor: Marek Klimša Úprava: Stanislav Chromý Verze dokumentu: 1.1 Poslední aktualizace: 11. května 2012 Obsah 1. Začínáme 3 1.1 Co je to ADVOKÁTNÍ SPIS 3 1.2 Po prvním spuštění 3 1.3
Algoritmizace. 1. Úvod. Algoritmus
1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá
AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace
AUTOMATY A 11 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně
Seznámení Corel Draw. PDF vytvořeno zkušební verzí pdffactory Pro www.fineprint.cz. Panel Vlastnosti. panel základních kreslicích nástrojů
Seznámení Corel Draw Okno programu Objeví se po spuštění, většinou je připraven nový, prázdný dokument, obvyklá velikost A4. Pamatujme, že na běžném monitoru se stránka zobrazí menší, takže při tisku budou
Číslo 17/2012 Vyšlo 2.10.2012
INFORMAČNÍ ZPRAVODA Číslo 17/2012 Vyšlo 2.10.2012 Obsah Tramvajová výluka Želivského Vozovna Strašnice... 1 Trvalé změny od 24. 9. 2012... 1 Plná integrace železniční zastávky Stratov... 2 Trvalé změny
UniLog-D. v1.01 návod k obsluze software. Strana 1
UniLog-D v1.01 návod k obsluze software Strana 1 UniLog-D je PC program, který slouží k přípravě karty pro záznam událostí aplikací přístroje M-BOX, dále pak k prohlížení, vyhodnocení a exportům zaznamenaných
VYTVÁŘENÍ OBSAHU KURZŮ
VYTVÁŘENÍ OBSAHU KURZŮ Mgr. Hana Rohrová Mgr. Linda Huzlíková Ing. Martina Husáková Fakulta informatiky a managementu Univerzity Hradec Králové Projekt je spolufinancován Evropským sociálním fondem a státním
Maticové operace projekt č. 3
Dokumentace k projektu pro předměty IZP a IUS Maticové operace projekt č. 3 9.12.2007 Autor: Václav Uhlíř, xuhlir04@stud.fit.vutbr.cz Fakulta Informačních Technologii Vysoké Učení Technické v Brně Obsah
Redakční systém. SimpleAdmin Beta. Jan Shimi Šimonek shimi@quick.cz jan.simonek@quick.cz http://www.shimi.webz.cz/
Redakční systém SimpleAdmin Beta Jan Shimi Šimonek shimi@quick.cz jan.simonek@quick.cz http://www.shimi.webz.cz/ Obsah Obsah... 2 Co je to SimpleAdmin Beta?... 3 Ovládání Administrace... 3 Články... 3
TDS-TECHNIK 13.1 pro AutoCAD LT
TDS-TECHNIK 13.1 pro AutoCAD LT V následujícím textu jsou uvedeny informace o novinkách strojírenské nadstavby TDS- TECHNIK pro AutoCAD LT. V přehledu je souhrn hlavních novinek verzí 13.0 a 13.1. Poznámka:
NP-úplnost problému SAT
Problém SAT je definován následovně: SAT(splnitelnost booleovských formulí) Vstup: Booleovská formule ϕ. Otázka: Je ϕ splnitelná? Příklad: Formule ϕ 1 =x 1 ( x 2 x 3 )jesplnitelná: např.přiohodnocení ν,kde[x
Obsah. Začínáme pracovat v InventorCAMu - frézování. 1995-2009 SolidCAM WWW.INVENTORCAM.CZ. All Rights Reserved.
Obsah Začínáme pracovat v InventorCAMu - frézování WWW.INVENTORCAM.CZ 1995-2009 SolidCAM All Rights Reserved. 1 2 2 Obsah Obsah 1. Přehled modulů InvnetorCAMu... 11 1.1 2.5D Frézování... 12 1.2 Obrábění
M I S Y S - W E B. Intranet řešení systému MISYS. Verze 9.00. Příručka uživatele
M I S Y S - W E B Intranet řešení systému MISYS Verze 9.00 Příručka uživatele GEPRO s.r.o. Září 2008 Copyright GEPRO s.r.o. 2008 Ochranné známky GEPRO spol. s r.o. KOKEŠ, MISYS Ochranné známky Microsoft
Základní ovládání aplikace
Základní ovládání aplikace Základem ovládání aplikace je jednoduchý toolbar (panel nástrojů) ve spodní části obrazovky, který umožňuje přepínání mezi jednotlivými obrazovkami aplikace. Jsou zde zobrazeny
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
První přihlášení do datové schránky krok za krokem
První přihlášení do datové schránky krok za krokem Dostali jste do rukou přístupové údaje ke vstupu do Vaší datové schránky a nevíte, kde začít? Stačí pět základních kroků, aby Vaše datová schránka byla
Fotogalerie pro redakční systém Marwel Obscura v. 2.0
Fotogalerie pro redakční systém Marwel Obscura v. 2.0 postupy a doporučení pro práci redaktorů verze manuálu: 1.1 QCM, s. r. o., březen 2011 Podpora: e-mail: podpora@qcm.cz tel.: +420 538 702 705 Obsah
Volby a Referenda. 2013 ALIS spol. s r.o.
21.10.2013 2 Obsah 1 KEOX - Volby 4 2 Postup zpracování 5 3 Číselníky a parametry 9 3.1 Číselníky-přehled... 9 3.2 Číselníky-popis... 9 3.3 Parametry... 10 4 Metodika a legislativa 12 4.1 Úvod... 12 pojmy
Popis úprav SQL verze ProBaze Majetek a Nářadí
Popis úprav SQL verze ProBaze Majetek a Nářadí Karta majetku a nářadí Byla provedena úprava týkající se uživatelského definování sloupců a výběrových seznamů dalších polí k zobrazení. Karta majetku nově
Spinelterminal. Terminálový program pro ladění aplikací s protokolem Spinel. 20. září 2005 w w w. p a p o u c h. c o m v.0.9.5.18
Terminálový program pro ladění aplikací s protokolem Spinel 20. září 2005 w w w. p a p o u c h. c o m v.0.9.5.18 Spinelterminal Katalogový list Vytvořen: 15.4.2004 Poslední aktualizace: 20.9.2005 10:34
2. RBF neuronové sítě
2. RBF neuronové sítě Kapitola pojednává o neuronových sítích typu RBF. V kapitole je popsána základní struktura tohoto typu neuronové sítě. Poté následuje definice a charakteristika jednotlivých radiálně
NOVÁ VERZE OBD A JEJÍ VYUŽÍVÁNÍ Ing. Martina Valášková
NOVÁ VERZE OBD A JEJÍ VYUŽÍVÁNÍ Ing. Martina Valášková studijní materiál ke kurzu Odborné publikování, citační etika a autorské právo s podporou ICT Fakulta informatiky a managementu Univerzity Hradec
Standardně máme zapnutý panel nástrojů Formátování a Standardní.
Zapnutí a vypnutí panelů nástrojů Standardně máme zapnutý panel nástrojů Formátování a Standardní. Úkol: Vyzkoušejte si zapnout a vypnout všechny panely nástrojů. Nechte zapnutý panely nástrojů Formátování
Petr Chvosta. vlevo, bude pravděpodobnost toho, že se tyč na počátku intervalu τ B nachází nad vpravo
MOLEKULÁRNÍ MOTORY Petr Chvosta. Automobil v krupobití aneb brzděním k pohybu Uvažme automobil stojící na mírném svahu a bombardovaný rovnoměrně ze všech stran obrovskými kroupami. Svah stoupá směrem doprava
Postup při zápisu údajů do AIS EO. ohlašovnami. změny ve formulářích CzechPOINT. verze 1.00. Zpracoval: odbor správních činností
Postup při zápisu údajů do AIS EO ohlašovnami změny ve formulářích CzechPOINT verze 1.00 Zpracoval: odbor správních činností Zápis údajů do AIS evidence obyvatel ohlašovnami prostřednictvím rozhraní CzechPOINT@office
GRAFY A GRAFOVÉ ALGORITMY
KATEDRA INFORMATIKY PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO GRAFY A GRAFOVÉ ALGORITMY ARNOŠT VEČERKA VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ
Čtvrtá část odpovědi aneb jak je to vlastně s interakcí <<include>>
Čtvrtá část odpovědi aneb jak je to vlastně s interakcí autor RNDr. Ilja Kraval leden 2008 www.objects.cz Úvod Tento článek navazuje jako pokračování na články předešlé. Minule jsme si zde
Ovladač Fiery Driver pro systém Mac OS
2016 Electronics For Imaging, Inc. Informace obsažené v této publikaci jsou zahrnuty v Právní oznámení pro tento produkt. 30. května 2016 Obsah Ovladač Fiery Driver pro systém Mac OS Obsah 3...5 Fiery
Operační systém UNIX
UNIX z pohledu uživatele 1 Operační systém UNIX Nejzákladnější komponenty:! jádro (kernel)! shell! utility Jádro operačního systému! v podstatě představuje vlastní operační systém! fyzicky je to jediný
Manuál administrátora FMS...2
Manuál administrátora Manuál administrátora FMS...2 Úvod... 2 Schéma aplikace Form Management System... 2 Úvod do správy FMS... 3 Správa uživatelů... 3 Práva uživatelů a skupin... 3 Zástupci... 4 Avíza
Čísla značí použité pravidlo, šipka směr postupu Analýza shora. Analýza zdola A 2 B 3 B * C 2 C ( A ) 1 a A + B. A Derivace zleva:
1) Syntaktická analýza shora a zdola, derivační strom, kanonická derivace ezkontextová gramatika gramatika typu 2 Nechť G = je gramatika typu 1. Řekneme, že je gramatikou typu 2, platí-li: y
BAKALÁŘSKÁ PRÁCE. Numerické metody jednorozměrné minimalizace
UNIVERZITA PALACKÉHO V OLOMOUCI PŘÍRODOVĚDECKÁ FAKULTA KATEDRA MATEMATICKÉ ANALÝZY A APLIKACÍ MATEMATIKY BAKALÁŘSKÁ PRÁCE Numerické metody jednorozměrné minimalizace Vedoucí bakalářské práce: RNDr. Horymír