Regulární výrazy. Honza Vrbata

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

Download "Regulární výrazy. Honza Vrbata"

Transkript

1 Regulární výrazy Honza Vrbata

2 CO TO JE? Regulární výraz (regular expression) je speciálně zkonstruovaný řetězec popisující celou množinu řetězců, konkrétně regulární jazyk. Prakticky se používají na vyhledávání a nahrazování v textech. Teoreticky zpracováno v teorii formálních jazyků pány McCullochem, Pittsem a Kleenem kolem roku Pojem formální jazyk označuje množinu konečných slov (tj. slov konečné délky) nad určitou abecedou Příkladem abecedy je např. {a,b,c}, slovem nad touto abecedou je aabca, accbaa, Regulární jazyk je formální jazyk, jehož slova lze rozpoznat tak, že při načtení každého písmene se provede změna stavu v závislosti na předchozím stavu a přečteném písmenu. Pokud je výsledkem přečtení celého slova tzv. koncový stav, patří slovo do jazyka. Vlastní algoritmus zpracování bývá realizován tzv. konečným stavovým automatem (finite state machine).

3 KONEČNÝ STAVOVÝ AUTOMAT KSA je teoretický výpočetní model používaný v informatice pro studium vyčíslitelnosti a obecně formálních jazyků. Popisuje velice jednoduchý počítač, který může být v jednom z několika stavů, mezi kterými přechází na základě symbolů, které čte ze vstupu. Množina stavů je konečná, konečný automat nemá žádnou další paměť kromě informace o aktuálním stavu. S je konečná množina stavů. Σ je konečná množina vstupních symbolů, nazývaná abeceda. σ je tzv. přechodová funkce (též přechodová tabulka), popisující pravidla přechodů mezi stavy. Může mít buď podobu S Σ S (deterministický automat), nebo S {Σ ε} P(S) (nedeterministický automat). s je počáteční stav, s S. A je množina přijímajících (konečných) stavů, A S.

4 KONEČNÝ STAVOVÝ AUTOMAT Znázornění konečného stavového automatu : (Příklad: testuje dělitelnost dvojkového čísla třemi) S = (S 0, S 1, S 2 ) množina stavů Σ = (0, 1) abeceda s = S 0 počáteční stav A = {S 0 } přijímací stavy

5 Používané dialekty : POSIX (POSIX ) - BASIC - MODERN (extended) REGULÁRNÍ VÝRAZY PCRE - Perl Compatible Regular Expressions ( Aplikace : Jednoúčelové vyhledávací nástroje jako grep, egrep, fgrep, atd. Interaktivní a neinteraktivní editory jako ed, vi, sed, atd. Implementace v programovacích jazycích jako awk, PERL, PHP, JavaScript, JAVA, PYTHON,.NET, atd. Implementace v aplikačních programech jako www server Apache, poštovní server Postfix, atd.

6 REGULÁRNÍ VÝRAZY Typy regulárních strojů : Traditional NFA (klasický nedeterministický) sed, grep, less, Java,.NET, PCRE, Perl, Python, Ruby, atd. Posix NFA (nedeterministický podle POSIX) mawk, lex DFA (deterministický) GNU grep/egrep, GNU awk, Tcl

7 REGULÁRNÍ VÝRAZY Literatura a další studijní materiály : Mastering Regular Expressions, Jeffrey E. F. Friedl, O'Relly Media Elektronický seriál Pavla Satrapy Elektronická učebnice

8 LITERÁLY Literál (literal) : Literál je jeden libovolný znak. Jako alfanumerické znaky chápeme velká a malá písmena anglické abecedy a národních abeced. Ostatní znaky jako interpunkční znaménka a další speciální znaky označme jako nealfanumerické znaky. Příklad použití : Regulárnímu výrazu a (jeden literál) vyhoví jakýkoli řetězec, který daný literál obsahuje na jakémkoli místě, např.: a, abbc, ccxa, rracc, atd.

9 LITERÁLY Předpoklad : Jakýkoli alfanumerický znak reprezentuje vždy uvedený znak. Jakýkoli nealfanumerický znak má v regulárním výrazu speciální vlastnost. Tuto vlastnost lze potlačit pomocí escape sekvence (je to skupina znaků uvozených zpětným lomítkem, která se celá vyhodnotí jako jeden literál) : \. reprezentuje znak. \* reprezentuje znak * \\ reprezentuje znak \ Zápisem zpětného lomítka před alfanumerický znak je možné naopak aktivovat nějakou speciální vlastnost!!!!

10 ESCAPE SEKVENCE Escape sekvence (character shorthands) : \a alert 007 \b backspace 010 \e escape 033 \f form feed 014 \n newline 012 (na MacOS 015) \r carriage return 015 \t horizontal tab 011 \v vertical tab 013 \num \xnum \unum octal escape hex escape unicode escape Pozn.: ASCII hodnoty jsou uvedeny oktalově.

11 METAZNAKY Metaznaky (metacharacters) : Existuje celkem 12 metaznaků. Metaznak je znak z kategorie nealfanumerických znaků, který má v regulárním výrazu speciální funkci či vlastnost. Speciální vlastnost je možné potlačit pomocí escape sekvence (zpětné lomítko). Metaznaky : \,, (, ), ^, $, [,., *, +,?, { Poznámka : Ostatní nealfanumerické znaky žádné speciální významy nemají! Není tedy nutné je uvozovat zpětným lomítkem!! Pokud to ale uděláme, nic tím nezkazíme :-) To je dobré pravidlo pro začátek. Jinak řečeno tedy předpokládáme, že alfanumerické znaky používáme v jejich běžném významu, zatímco u nealfanumerických automaticky předpokládáme nějakou speciální vlastnost. Zpětné lomítko používáme na zapnutí resp. vypnutí této speciální funkce!

12 ZŘETĚZENÍ LITERÁLŮ Zřetězení znaků : Zřetězení je operace spojení jednotlivých znaků do jednoho celku, jedné skupiny znaků (literálů). Příklad použití : Regulárnímu výrazu abc (zřetězení znaků) vyhoví jakýkoli řetězec, který obsahuje uvedenou skupinu znaků na jakémkoli místě, např.: abc, abcx, ccxabc, rrabcdcc, atd.

13 Libovolný znak Libovolný znak (dot) : Metaznaku. v regulárním výrazu vyhoví jeden libovolný znak ve zkoumaném řetězci. Příklad použití : Regulárnímu výrazu a.c vyhoví jakýkoli řetězec, který obsahuje skupinu tří znaků např.: abc, axc, arcx, ccxa*c, rra&cdcc, atd.

14 VÝČET ZNAKŮ Výčet znaků (list of characters) : Skupina znaků je posloupnost znaků bez oddělovačů uzavřená v hranatých závorkách. Celé této skupině vyhoví právě jeden znak z této skupiny. Příklad použití : Regulárnímu výrazu gymná[sz]ium vyhoví například tyto řetězce : gymnázium, gymnásium, atd.

15 VÝČET ZNAKŮ Výčet znaků (list of characters) : V hranatých závorkách se uplatní pouze dva metaznaky : - interval ^ negace Příklad použití : Jednu číslici desítkové soustavy lze popsat regulárním výrazem [ ] Efektivněji to lze zapsat takto [0-9] Jedno malé písmeno anglické abecedy [abcdefghijklmnopqrstuvwxyz] Efektivněji to lze zapsat takto [a-z] Jedno malé nebo velké písmeno anglické abecedy nebo desítková číslice [a-za-z0-9] Jedno malé písmeno české abecedy [a-zěščřžýáíéťďóň]

16 VÝČET ZNAKŮ Výčet znaků (list of characters) : Operátor intervalu musí mít definovány obě strany intervalu!!! Operátor negace ^ musí být uveden hned po levé hranaté závorce jinak ztratí svůj speciální význam!!! Příklad použití : Jakýkoli jiný znak než malé a [^a] Jakýkoli jeden znak vyjma číslice desítkové soustavy [^0-9] Něco jiného než malé písmeno anglické abecedy [^a-z]

17 TŘÍDY ZNAKŮ Třídy znaků (character class) : Výčtem POSIX PCRE [0-9] [[:digit:]] \d [^0-9] [^[:digit:]] \D [a-za-z0-9_] [:alnum:] [[:alnum:]] \w [^a-za-z0-9_] [^[:alnum:]] \W [a-z] [[:alpha:]] Poznámka : Do třídy znaků jako [:alpha:] mohou patřit i znaky národních abeced!!! Záleží na nastavení lokalizace systému, kde regulární výrazy používáme.

18 TŘÍDY ZNAKŮ POSIX třídy znaků : [:alnum:] [:alpha:] [:blank:] [:digit:] [:lower:] [:space:] [:puntct:] [:upper:] [:xdigit:] písmena a číslice písmena mezera a tabelátor číslice malá písmena bílé znaky interpunkční znaky velká písmena hexadecimální číslice

19 TŘÍDY ZNAKŮ Ekvivalenty znaků (character equivalents) : Některé implementace národních prostředí definují ekvivalenty znaků. Například ekvivalentní třída n může obsahovat znaky n a ñ, nebo třída a může obsahovat znaky a, à nebo á. Ekvivalentní třída se pak zapisuje takto : [=n=] nebo [=a=], atp.

20 KVANTIFIKÁTORY (opakování) Kvantifikátory (quantifiers) : Kvantifikátory slouží ke kontrole počtu opakování. Základním kvantifikátorem je *. Kvantifikátor se vždy týká bezprostředně předcházejícího literálu v regulárním výrazu. Hvězdička značí, že daný znak se v řetězci může vyskytovat v libovolném počtu, tedy i v nulovém! Příklad použití : Libovolný počet znaku a i nulový počet výskytů a* Alespoň jeden znak a aa* Regulárnímu výrazu ab*c vyhoví skupina znaků, která začíná znakem a, končí znakem c a mezi nimi obsahuje libovolný počet znaků b, např.: ac, abc, abbbbbbbc,...

21 KVANTIFIKÁTORY (opakování) Kvantifikátory (quantifiers) : Kvantifikátory slouží ke kontrole počtu opakování. Dalším kvantifikátorem je +. Kvantifikátor se vždy týká bezprostředně předcházejícího literálu v regulárním výrazu. Plus značí, že daný znak se v řetězci musí vyskytovat alespoň jednou. Příklad použití : Alespoň jeden znak a a+ Regulárnímu výrazu ab+c vyhoví skupina znaků, která začíná znakem a, končí znakem c a mezi nimi obsahuje alespoň jeden znak b, např.: abc, abbbbbbbc,...

22 KVANTIFIKÁTORY (opakování) Kvantifikátory (quantifiers) : Kvantifikátory slouží ke kontrole počtu opakování. Dalším kvantifikátorem je?. Kvantifikátor se vždy týká bezprostředně předcházejícího literálu v regulárním výrazu. Otazník značí, že daný znak se v řetězci musí vyskytovat nejvýše jednou. Příklad použití : Nejvýše jeden znak a a? Regulárnímu výrazu ab?c vyhoví skupina znaků, která začíná znakem a, končí znakem c a mezi nimi obsahuje nejvýše jeden znak b : ac, abc

23 MECHANISMUS SROVNÁVÁNÍ Backtracking - hladovost (greediness) : Poznámka : Implicitně se všechny kvantifikátory chovají hladově!

24 KVANTIFIKÁRORY - syté verze Hladovost H kvantifikátorů *,+,? lze eliminovat použitím modifikátoru? : l a d Greediness Laziness o * *? v + +? o??? s t Příklad použití : Rozdíl mezi.*.*,.*?.* a.*.*? Příklad na minulé straně

25 KVANTIFIKÁRORY Kvantifikátory (přesný počet opakování) : H Kromě l obecných kvantifikátorů *,+,? existuje možnost přesného počtu a opakování pomocí konstrukce se složenými závorkami. Kvantifikátor d se vždy týká bezprostředně předcházejícího znaku v regulárním o výrazu. v Regulární výraz Počet opakování o {k} n=k s {min,max} min n max t {min,} min n {0,max} n max Pozn.: Tento kvantifikátor bez horní meze {min,} se chová hladově. Lze opět modifikovat pomocí modifikátoru?, tedy takto {min,}? Příklad použití : Rodné číslo [0-9]{2}[0156][0-9][0-3][0-9][ \/][0-9]{3,4}

26 Varianty (alternatives) : VARIANTY H Operátor l varianty umožňuje provádět v regulárním výrazu operaci a OR. Jeho platnost je až na hranici nejvnitřnějších kulatých závorek nebo d na celý vzor, pokud nejsou závorky použity. o v Příklad o použití : s Kočka t nebo pes kočka pes Výrazu aaa bbb ccc odpovídají řetězce aaa nebo bbb nebo ccc Výrazu aaa b c odpovídají řetězce aaa nebo b nebo c Výrazu aa(a b c) odpovídají řetězce aaa nebo aab nebo aac Pozor na prioritu Veselé Vánoce Velikonoce. Vyhoví řetězec Veselé Vánoce nebo řetězec Velikonoce, protože operace zřetězení má větší prioritu než operace alternativy!!! Regulární výraz pro testování dne v měsíci (číslice 1-31) 0?[1-9] [12][0-9] 3[01]

27 Varianty (alternatives) : VARIANTY H Je-li l v jednom okamžiku možné provádět porovnání s více variantami, provádí a se toto porovnání vždy zleva. Proto záleží na pořadí v jakém jednotlivé d varianty uvedeme. o v Zkoumaný o text aaabbbccc : s t regulárnímu výrazu b+ b+c+ vyhovuje bbb regulárnímu výrazu b+c+ b+ vyhovuje bbbccc Je nalezena vždy ta varianta, která je na prvním místě, i když je možné ve stejném řetězci nalézt varianty obě.

28 SESKUPOVÁNÍ H l Seskupování (parentheses) : a doperátor kulatých závorek () umožňuje vytvářet seskupení pro ozměnu priorit, platnost kvantifikátorů, zpětné reference, atd. v o spříklad použití : t Příklad s variantami Veselé (Vánoce Velikonoce) Příklad s kvantifikátorem a(bc)+d

29 SESKUPOVÁNÍ H Seskupování l (parentheses) - zpětné reference: a Operátor d kulatých závorek () umožňuje vytvářet seskupení pro změnu o priorit, platnost kvantifikátorů, zpětné reference, atd. Dochází k vzapamatování částí řetězce, které odpovídají regulárním podvýrazům. Reference o na ně je možné provádět pomocí metasymbolů \1, \2, atd. s t Příklad použití : Nalezení pětiznakových palindromů (.)(.).\2\1 Zápis data ve formátu dd.mm.rrrr (připouštíme oddělovač.-/) 0?[1-9] [12][09] 3[01]([./-])0?[1-9] 1[0-2]\1[12][0-9]{3}

30 SESKUPOVÁNÍ Seskupování bez zapamatování (grouping-only patentheses) : Operátor (?: ) vytváří seskupení bez zapamatování.

31 POZICOVÁNÍ - KOTVY Kotvy (anchors) : Kotvy ukazují na konkrétní místa v řetězci. Z testovaného řetězce nic nekonzumují. Stříška (caret) ^ reprezentuje začátek řetězce. Znak dolaru $ reprezentuje konec řetězce. V multiline režimu pracují obě kotvy s každým řádkem zvlášť. Hranice slov (word boundaries) : Kotva \< reprezentuje začátek slova a kotva \> konec slova. PERL má kotvu reprezentující hranici slova (začátek nebo konec) \b.

32 MODIFIKÁTORY Modifikátory (mode modifiers) : Používají se pro změnu chování regulárního stroje, resp. změnu chování jednotlivých operátorů v regulárním výrazu. Většinou se předávají jako parametr regulárního stroje, někdy je možné je přímo vepsat do regulárního výrazu. i m s x nerozlišuje malá a velká písmena zachází s řetězcem jako s více řádky (multiline) zachází s řetězcem jako s jedním řádkem (singleline) ignoruje bílé znaky v regulárním výrazu (free spacing and comments regex mode) Modifikátory lze zapsat do regulárního výrazu takto (?modifikátor), např. (?i) a (?-i).

33 KOMENTÁŘE Komentáře (comments) : Některé implementace regulárních strojů umožňují zápis komentářů způsobem (?#komentář). Nepoužívají se ale příliš často.

34 VÝHLEDY Výhledy (lookarounds) : Výhled pouze zkoumá zda-li daná část řetězce vyhovuje výrazu. Podobně jako kotvy nekonzumují výhledy žádný text. Řetězec odpovídající výhledu je vždy prázdný. Výhled dopředu (lookahead) (?=výraz) Pozitivní (positive) Výhled dozadu (lookbehind) (?<=výraz) (?!výraz) Negativní (negative) (?<!výraz)

35 VÝHLEDY Výhledy (lookarounds) : Příklad : Chceme nahradit slovo Jeffs slovem Jeff's Vyhledávací Náhrada : vzor: Jeffs (Jeff)(s) Jeff(?=s) (?<=Jeff)(?=s) (?=s)(?<=jeff) Jeff's \1'\2 Jeff' ' '

36 ATOMICKÉ SESKUPOVÁNÍ Atomické seskupování (atomic grouping) : Pomocí atomického seskupení lze vytvořit podvýrazy, které se při testování uplatňují kompletně celé. Není na ně uplatňován backtracking, atd. Příklad : Regulárnímu výrazu 1.*2 vyhoví řetězec 1ahoj2. Při použití atomického seskupení 1(?>.*)2 již daný řetězec nevyhoví, neboť uvnitř skupiny není povolen backtracking!!! Regulárnímu výrazu a(bc b)c vyhoví řetězec abcc a abc. Výrazu a(?>bc b)c vyhoví pouze abcc!!!!

37 SOBECKÉ KVANTIFIKÁTORY Sobecké kvantifikátory (possesive quantifiers) : Moderní implementace regulárních strojů implementují speciální odrůdu klasických hladových kvantifikátorů *+, ++,?+, {min,max}+. Principiálně pracují velice podobně jako atomické seskupování. Jejich použití má zejména výhodu v rychlosti vyhodnocování. Příklad : Regulární výraz.++ dosahuje stejného výsledku jako (?>.+).

Programování. Bc. Veronika Tomsová

Programování. Bc. Veronika Tomsová Programování Bc. Veronika Tomsová Regulární výrazy Regulární výrazy slouží k porovnání a zpracovaní textu PHP podporuje syntaxi POSIX-Extended Regulární výrazy jsou velice vhodné například k ověření emailové

Více

1-Úvod. Automaty a gramatiky(bi-aag) Plán přednášky. 8. Regulární výrazy - aplikace

1-Úvod. Automaty a gramatiky(bi-aag) Plán přednášky. 8. Regulární výrazy - aplikace BI-AAG (2011/2012) J. Holub: 8. Regulární výrazy - aplikace p. 2/51 BI-AAG (2011/2012) J. Holub: 8. Regulární výrazy - aplikace p. 4/51 1-Úvod Automaty a gramatiky(bi-aag) 8. Regulární výrazy - aplikace

Více

Co jsou to regulární výrazy? Regulárními výrazy se používají ke zpracovávání textových řetězců. Vytvoříme si tzv. masku a zjišťujeme, zda jí textový řetězec vyhovuje (např. zda se skládá ze samých čísel

Více

Úvod do UNIXu. Okruh č. 4 - vi, regulární výrazy, grep a sed. Jakub Galgonek. verze r2. inspirováno materiály Davida Hokszy

Úvod do UNIXu. Okruh č. 4 - vi, regulární výrazy, grep a sed. Jakub Galgonek. verze r2. inspirováno materiály Davida Hokszy Okruh č.4 Okruh č. 4 - vi, regulární výrazy, grep a sed verze 1.0.0-r2 inspirováno materiály Davida Hokszy Textové editory Okruh č.4 vi(m) prastarý textový editor (1976) dostupný v podstatě na každém UNIXovém

Více

Regulární výrazy. jemný úvod. Miloslav Brada

Regulární výrazy. jemný úvod. Miloslav Brada Regulární výrazy jemný úvod Miloslav Brada Regulární výrazy - RegExy K čemu vůbec jsou? Nástin možností Jednoduché vzory, pravidla regexpů Metaznaky Opakování Skupiny Jednoduchý příklad na závěr 2 Co RegExy

Více

grep a regulární výrazy

grep a regulární výrazy grep a regulární výrazy Josef Hajas hajasj1@fel.cvut.cz http://cs.felk.cvut.cz/~hajasj1/unix/ Vysázeno v LAT E Xu p.1/1 Co nás čeká grep: K čemu slouží? Jak používat? nejpoužívanější přepínače grepu regulární

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

Regulární výrazy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března / 20

Regulární výrazy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března / 20 Regulární výrazy M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 1/ 20 Regulární výrazy Jako například v aritmetice můžeme pomocí operátorů + a vytvářet výrazy jako (5+3)

Více

Regulární výrazy. Filtry grep, sed a awk.

Regulární výrazy. Filtry grep, sed a awk. Přednáška 5 Regulární výrazy. Filtry grep, sed a awk. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2011 Příprava studijního programu Informatika je podporována projektem

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,

Více

Programovací jazyk Pascal

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

Více

Úvod do programovacích jazyků (Java)

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

Více

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto: IB102 Automaty, gramatiky a složitost, 6. 10. 2014 1/29 Regulární výrazy Definice 2.58. Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto: 1 ε, a a pro každé a

Více

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4 1 Přednáška 4 Regulární výrazy. Filtry grep, sed a awk. 2 grep grep [přepínače] vzor [soubory] Implicitně vypíše na standardní výstup řádky, které obsahují zadaný vzor. Vzor může být definován základním

Více

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března / 32

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března / 32 Formální jazyky Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 1/ 32 Abeceda a slovo Definice Abeceda je libovolná neprázdná konečná množina symbolů(znaků). Poznámka: Abeceda se často

Více

Regulární výrazy. Vzory

Regulární výrazy. Vzory Regulární výrazy Regulární výrazy jsou určeny pro práci s textovými řetězci, jsou součástí J2SDK až od verze 1.4, v předchozích verzích je potřeba použít některou z externích knihoven, např. knihovnu ORO

Více

more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu.

more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu. GREP, AWK, SED a jiné filtry v LINUXu Vybrané filtry more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu. head [-n] tail [-n]

Více

UNIVERZITA PARDUBICE ÚSTAV ELEKTROTECHNIKY A INFORMATIKY VYUŽITÍ REGULÁRNÍCH VÝRAZŮ PŘI OPRAVÁCH TEXTU, ÚPRAVÁCH A GENEROVÁNÍ SOUBORŮ BAKALÁŘSKÁ PRÁCE

UNIVERZITA PARDUBICE ÚSTAV ELEKTROTECHNIKY A INFORMATIKY VYUŽITÍ REGULÁRNÍCH VÝRAZŮ PŘI OPRAVÁCH TEXTU, ÚPRAVÁCH A GENEROVÁNÍ SOUBORŮ BAKALÁŘSKÁ PRÁCE UNIVERZITA PARDUBICE ÚSTAV ELEKTROTECHNIKY A INFORMATIKY VYUŽITÍ REGULÁRNÍCH VÝRAZŮ PŘI OPRAVÁCH TEXTU, ÚPRAVÁCH A GENEROVÁNÍ SOUBORŮ BAKALÁŘSKÁ PRÁCE 2007 Miloš Kukla UNIVERZITA PARDUBICE ÚSTAV ELEKTROTECHNIKY

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

Regulární výrazy a grep

Regulární výrazy a grep A7B38UOS Úvod do operačních systémů 5. Cvičení Regulární výrazy a grep Grep grep [přepínače] vzor [soubory] Implicitně vypíše na standardní výstup řádky, které vyhoví zadanému vzoru. -i nerozlišuje malá

Více

2 Formální jazyky a gramatiky

2 Formální jazyky a gramatiky 2 Formální jazyky a gramatiky 2.1 Úvod Teorie formálních gramatik a jazyků je důležitou součástí informatiky. Její využití je hlavně v oblasti tvorby překladačů, kompilátorů. Vznik teorie se datuje přibližně

Více

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

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

Více

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

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 2/29 Hodnocení předmětu BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 4/29 Automaty a gramatiky(bi-aag) 1. Základní pojmy Jan Holub Katedra teoretické

Více

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÝCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMS SROVNÁNÍ RYCHLOSTI

Více

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

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

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h> 9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte

Více

Konstruktory překladačů

Konstruktory překladačů Konstruktory překladačů Miroslav Beneš Dušan Kolář Konstruktor Lex generátor lexikálních analyzátorů M. E. Lesk, 1975 - pro OS Unix flex - Vern Paxson, 1990 - GNU verze určeno pro generování výstupu v

Více

DUM č. 5 v sadě. 34. Inf-10 Praktická typografie s LO Writer/MS Word

DUM č. 5 v sadě. 34. Inf-10 Praktická typografie s LO Writer/MS Word projekt GML Brno Docens DUM č. 5 v sadě 34. Inf-10 Praktická typografie s LO Writer/MS Word Autor: Lukáš Rýdlo Datum: 30.01.2014 Ročník: 4AV, 4AF Anotace DUMu: Nahrazování textu a opravy pomocí regulárních

Více

Lexikální analýza. Rozhraní lexikálního analyzátoru. Miroslav Beneš Dušan Kolář. M. Beneš, D. Kolář: Lexikální analýza 1. Lexikální analýza 2

Lexikální analýza. Rozhraní lexikálního analyzátoru. Miroslav Beneš Dušan Kolář. M. Beneš, D. Kolář: Lexikální analýza 1. Lexikální analýza 2 Lexikální analýza Miroslav Beneš Dušan Kolář Rozhraní lexikálního analyzátoru Lexikální analýza 2 M. Beneš, D. Kolář: Lexikální analýza 1 Úkoly Čtení zdrojového textu Sestavování symbolů Odstranění mezer

Více

Lexikální analýza. Miroslav Beneš Dušan Kolář

Lexikální analýza. Miroslav Beneš Dušan Kolář Lexikální analýza Miroslav Beneš Dušan Kolář Rozhraní lexikálního analyzátoru Lexikální analýza 2 Úkoly Čtení zdrojového textu Sestavování symbolů Odstranění mezer a poznámek Normalizace symbolů (velká/malá

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

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

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

Více

Automaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T.

Automaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T. BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 2/41 Formální překlady BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 4/41 Automaty a gramatiky(bi-aag) 5. Překladové konečné

Více

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

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

Více

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března / 50

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března / 50 Formální jazyky Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 1/ 50 Abeceda a slovo Definice Abeceda je libovolná neprázdná konečná množina symbolů(znaků). Poznámka: Abeceda se často

Více

Formální jazyky a gramatiky Teorie programovacích jazyků

Formální jazyky a gramatiky Teorie programovacích jazyků Formální jazyky a gramatiky Teorie programovacích jazyků doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Připomenutí základních pojmů ABECEDA jazyk je libovolná podmnožina

Více

AUTOMATY A GRAMATIKY

AUTOMATY A GRAMATIKY AUTOMATY A 1 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky Stručný přehled přednášky Automaty Formální jazyky, operace

Více

Informatika Datové formáty

Informatika Datové formáty Informatika Datové formáty Radim Farana Podklady předmětu Informatika pro akademický rok 2007/2008 Obsah Datové formáty (datové typy). Textové formáty, vlastnosti zdroje zpráv. Číselné formáty, číselné

Více

Formátové specifikace formátovací řetězce

Formátové specifikace formátovací řetězce 27.2.2007 Formátové specifikace formátovací řetězce - je to posloupnost podle které překladač pozná jaký formát má výstup mít - posloupnosti začínají znakem % a určující formát vstupu/výstupu - pokud chcete

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

Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory

Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory Plán přednášky Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory Obecný algoritmus pro parsování bezkontextových jazyků dynamické programování 1 Zásobníkový

Více

- jak udělat konstantu long int: L long velka = 78L;

- jak udělat konstantu long int: L long velka = 78L; Konstanty (konstatní hodnoty) Např.: - desítkové: 25, 45, 567, 45.678 - osmičkové: 045, 023, 03 vždy začínají 0 - šestnáctkové: 0x12, 0xF2, 0Xcd, 0xff, 0xFF - jak udělat konstantu long int: 245566553L

Více

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty. Proměnná Pojmenované místo v paměti sloužící pro uložení hodnoty. K pojmenování můžeme použít kombinace alfanumerických znaků, včetně diakritiky a podtržítka Rozlišují se velká malá písmena Název proměnné

Více

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Jak v Javě primitivní datové typy a jejich reprezentace BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Obsah Celočíselný datový typ Reálný datový typ Logický datový typ, typ Boolean

Více

Programování v jazyce JavaScript

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

Více

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti LEXIKÁLNÍ ANALÝZA Kód ve vstupním jazyku Lexikální analyzátor

Více

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

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

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

Více

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44 Algoritmizace a programování Ak. rok 2012/2013 vbp 1. ze 44 Vladimír Beneš Petrovický K101 katedra matematiky, statistiky a informačních technologií vedoucí katedry E-mail: vbenes@bivs.cz Telefon: 251

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

NPRG030 Programování I, 2010/11

NPRG030 Programování I, 2010/11 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE když X, Y jsou (číselné) výrazy, potom X = Y X Y X < Y X > Y X = Y jsou

Více

Základní příkazy UNIXu (Linuxu)

Základní příkazy UNIXu (Linuxu) Základní příkazy UNIXu (Linuxu) Ostatní clear smazání obrazovky man nápověda k příkazům (zkus man man) Ovládání příkazu man PgUp, b stránka vzhůru PgDn, mezerník stránka dolů šipky nahoru a dolů pohyb

Více

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Funkce, podmíněný příkaz if-else, příkaz cyklu for Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto

Více

Základní jednotky používané ve výpočetní technice

Základní jednotky používané ve výpočetní technice Základní jednotky používané ve výpočetní technice Nejmenší jednotkou informace je bit [b], který může nabývat pouze dvou hodnot 1/0 (ano/ne, true/false). Tato jednotka není dostatečná pro praktické použití,

Více

NPRG030 Programování I, 2016/17 1 / :58:13

NPRG030 Programování I, 2016/17 1 / :58:13 NPRG030 Programování I, 2016/17 1 / 31 10. 10. 2016 10:58:13 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE NPRG030 Programování

Více

Složitost Filip Hlásek

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í,

Více

Parsování v Haskellu, knihovna Parsec

Parsování v Haskellu, knihovna Parsec Parsování v Haskellu, knihovna Parsec IB016 Seminář z funkcionálního programování Vladimír Štill, Martin Ukrop Fakulta informatiky, Masarykova univerzita Jaro 2016 IB016: Cvičení 09 Jaro 2016 1 / 12 Regulární

Více

Program grep. predn_05.doc

Program grep. predn_05.doc Program grep je filtr, který předává na výstup řádky obsahující resp. neobsahující zadaný vzor. Název grep je zkratka pro skupinu příkazů ex editoru: globally search for regular expression and print result

Více

Překladač sestrojující k regulárnímu výrazu ekvivalentní konečný automat Připomeňme si jednoznačnou gramatiku G pro jazyk RV({a, b})

Překladač sestrojující k regulárnímu výrazu ekvivalentní konečný automat Připomeňme si jednoznačnou gramatiku G pro jazyk RV({a, b}) Teoretická informatika průběh výuky v semestru 1 Týden 4 Přednáška Ukázali jsme jednoduchý převod konečného automatu na bezkontextovou gramatiku, čímž jsme prokázali, že každý regulární jazyk je bezkontextovým

Více

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

Více

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) % vstup a výstup na konzolu - vstupním zařízením je klávesnice, výstupním monitor (přístup jako k sériovým zařízením) - spojení s konzolami je nastaveno automaticky na začátku programu - ke konzole je možné

Více

Katedra počítačů FEL

Katedra počítačů FEL TIS 311 1. Navrhněte KMP vyhledávací stroj pro vzorek v = kakadu, 2. Pro stejný vzorek navrhněte deterministický konečný automat. 3. Simulujte činnost obou strojů na textu T = dukakakaduka, porovnejte

Více

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií 1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední

Více

Regulární výrazy v Mergadu

Regulární výrazy v Mergadu Regulární výrazy v Mergadu aneb Reguláry pro začátečníky i pokročilé Regulární výrazy mají v IT široké uplatnění. V aplikaci Mergado si s jejich pomocí ušetříte práci při vyhledávání skupin produktů a

Více

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Vstup, výstup BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Miroslav Balík Fakulta informačních technologií České

Více

Testování a spolehlivost. 1. Laboratoř Poruchy v číslicových obvodech

Testování a spolehlivost. 1. Laboratoř Poruchy v číslicových obvodech Testování a spolehlivost ZS 2011/2012 1. Laboratoř Poruchy v číslicových obvodech Martin Daňhel Katedra číslicového návrhu Fakulta informačních technologií ČVUT v PRaze Příprava studijního programu Informatika

Více

Úvod do programování. Lekce 1

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

Více

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

Vyhledávání v textu. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Vyhledávání v textu doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 9. března 209 Jiří Dvorský (VŠB TUO) Vyhledávání v textu 402

Více

FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika FUNKCE 3 Autor: Mgr. Dana Kaprálová Datum (období) tvorby: září, říjen 2013 Ročník: sedmý Vzdělávací oblast: Informatika a výpočetní technika 1 Anotace: Žáci se seznámí se základní obsluhou tabulkového

Více

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

Více

5 Přehled operátorů, příkazy, přetypování

5 Přehled operátorů, příkazy, přetypování 5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování

Více

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

Více

Čí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:

Čí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

Více

Formát a struktura položek a datových souborů

Formát a struktura položek a datových souborů Příloha č. 1 Pravidel systému CERTIS Formát a struktura položek a datových souborů verze 6 účinná od 1. března 2017 OBSAH 1. Datový soubor... 3 1.1. Struktura datového souboru... 3 1.2. Typy datových souborů...

Více

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů SPJA, cvičení 1 ipython, python, skripty základy syntaxe: základní datové typy, řetězce podmínky: if-elif-else, vyhodnocení logických výrazů cykly: for, while kolekce: seznam, n-tice, slovník funkce, list

Více

Poslední aktualizace: 14. října 2011

Poslední aktualizace: 14. října 2011 Lexikální analýza Překladače, přednáška č. 2 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 14. října 2011 Symboly Co je to

Více

Paměť počítače. alg2 1

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

Formát a struktura položek a datových souborů

Formát a struktura položek a datových souborů Příloha č. 1 Pravidel systému CERTIS Formát a struktura položek a datových souborů Verze 7 účinnost od 1. listopadu 2018 OBSAH 1 Datový soubor... 4 1.1 Struktura datového souboru... 4 1.2 Typy datových

Více

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. PHP - úvod Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. Klíčové pojmy: PHP, webový prohlížeč, HTTP, FTP Základní pojmy služba WWW = 1990 první prototyp serveru, od roku 1994

Více

Lekce 2. Řetězce a práce s nimi. Vstup a výstup. C2184 Úvod do programování v Pythonu podzim 2016

Lekce 2. Řetězce a práce s nimi. Vstup a výstup. C2184 Úvod do programování v Pythonu podzim 2016 . Vstup/výstup Lekce 2. Vstup/výstup. a práce s nimi. Vstup a výstup. C2184 Úvod do programování v Pythonu podzim 2016 Formátování Národní centrum pro výzkum biomolekul Masarykova univerzita 2.1 Char (znak)

Více

Znaky. IAJCE Přednáška č. 10. každému znaku je nutné přiřadit nějaké číslo (nezáporné přímé mapování znak <->

Znaky. IAJCE Přednáška č. 10. každému znaku je nutné přiřadit nějaké číslo (nezáporné přímé mapování znak <-> Znaky každému znaku je nutné přiřadit nějaké číslo (nezáporné přímé mapování znak číslo) kódování jiný příklad kódování existuje mnoho kódů pojmy: morseova abeceda problémy o znaková sada které znaky

Více

Úvod do databázových systémů

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování 4 fáze vytváření

Více

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNTAKTICKÁ ANALÝZA DOKONČENÍ, IMPLEMENTACE.

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNTAKTICKÁ ANALÝZA DOKONČENÍ, IMPLEMENTACE. PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNAKICKÁ ANALÝZA DOKONČENÍ, IMPLEMENACE. VLASNOSI LL GRAMAIK A JAZYKŮ. 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Gramatika

Více

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

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ě

Více

BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky

BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Vstup, výstup BI-PA1

Více

Proměnné a parametry. predn_08.odt :00:38 1

Proměnné a parametry. predn_08.odt :00:38 1 Proměnné a parametry predn_08.odt 16.04.2007 14:00:38 1 Proměnné a parametry Jméno proměnné - identifikátor [a-za-z_][a-za-z_0-9]* Hodnota proměnné textový řetězec celočíselná hodnota - ne v sh Přesun

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

Struktura a architektura počítačů (BI-SAP) 5

Struktura a architektura počítačů (BI-SAP) 5 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 5 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

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 Algoritmus Daniela Szturcová Tento

Více

PROGRAMOVÁNÍ V SHELLU

PROGRAMOVÁNÍ V SHELLU PROGRAMOVÁNÍ V SHELLU Prostředí, jazyk, zdrojový kód chceme-li posloupnost jistých příkazů používat opakovaně, případně z různých míst adresářové struktury, můžeme tuto posloupnost uložit souboru, který

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

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

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému BI-AAG (2011/2012) J. Holub: 10. Vlastnosti regulárních jazyků p. 2/22 Pumping lemma - podstata problému BI-AAG (2011/2012) J. Holub: 10. Vlastnosti regulárních jazyků p. 4/22 Automaty a gramatiky(bi-aag)

Více

Tabulkový procesor. Základní rysy

Tabulkový procesor. Základní rysy Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních

Více

LinuxDays 2017 Ondřej Guth GNU grep LD 17 1 / 14

LinuxDays 2017 Ondřej Guth GNU grep LD 17 1 / 14 Používáte GNU grep? A víte, jak funguje uvnitř? Ondřej Guth ondrej.guth@fit.cvut.cz LinuxDays 2017 Ondřej Guth GNU grep LD 17 1 / 14 1 Úvod 2 Přehled zpracování vstupu 3 Obyčejný řetězec jako regulární

Více

Nejvyšší řád čísla bit č. 7 bit č. 6 bit č.5 bit č. 4 bit č. 3 bit č. 2 bit č. 1 bit č. 0

Nejvyšší řád čísla bit č. 7 bit č. 6 bit č.5 bit č. 4 bit č. 3 bit č. 2 bit č. 1 bit č. 0 Číselné soustavy Cílem této kapitoly je sezn{mit se se z{kladními jednotkami používanými ve výpočetní technice. Poznat číselné soustavy, kódy a naučit se převody mezi číselnými soustavami. Klíčové pojmy:

Více

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Čí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

Úvod do databázových systémů

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Database Research Group Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz

Více