Regulární výrazy, práce s textem a daty. IB111 Úvod do programování skrze Python
|
|
- Robert Hruška
- před 8 lety
- Počet zobrazení:
Transkript
1 Regulární výrazy, práce s textem a daty IB111 Úvod do programování skrze Python / 68
2 Výhled dnes: práce s textem příště: práce s obrázky příkazy pro práci s textem/obrázky ukázky na konkrétních příkladech použití dříve probíraných konstrukcí, datových struktur (seznam, slovník) uvažování o problémech, volba přístupu, kladení otázek 2 / 68
3 Práce s textem Příklady: statistiky o studentech frekvenční analýza textu zpracování dotazníku, ankety 3 / 68
4 Čeština v tomto kurzu pro zjednodušení pracujeme jen s anglickou abecedou resp. s texty bez hacku a carek pro zájemce viz např. základ: specifikovat kódování na začátku souboru # -*- coding: utf-8 -*- 4 / 68
5 Regulární výrazy: motivace vyhledání ových adres v textu vyhledání odkazů v HTML dokumentu náhrada jméno příjmení za příjmení jméno změna formátu datumů odstranění bílých znaků 5 / 68
6 Regulární výrazy: použití programování textové editory příkazová řádka: např. grep teorie: formální jazyky, konečné automaty 6 / 68
7 7 / 68
8 Regulární výrazy obecně používaný nástroj základní syntax stejná ve většině jazyků, prostředí následuje: základní syntax regulárních výrazů použití v Pythonu nerozebíráme všechny technické detaily (podrobněji viz dokumentace) 8 / 68
9 Ukázka import re f = open("testovaci-soubor.txt") for radek in f.readlines(): if re.search(r [a-z]+@[a-z]+\.cz, radek): print radek f.close() 9 / 68
10 Znaky a speciální znaky základní znak vyhoví právě sám sobě např. cz v předchozím příkladě speciální znaky:. ^ $ * +? { } [ ] \ ( ) umožňují konstrukci složitějších výrazů chceme, aby odpovídaly příslušnému symbolu prefix \ 10 / 68
11 Výběr ze skupiny znaků [] [abc] jeden ze znaků a, b, c [a-z] výběr z intervalu (malé písmeno anglické abecedy) ^ na začátku výběru = negace: [^abc] cokoliv jiného než a, b, c 11 / 68
12 Často používané skupiny znaků \d Čísla: [0-9] \D Cokoliv kromě čísel: [^0-9] \s Bílé znaky: [ \t\n\r\f\v] \S Cokoliv kromě bílých znaků: [^ \t\n\r\f\v] \w Alfanumerické znaky: [a-za-z0-9_] \W Nealfanumerické znaky: [^a-za-z0-9_] 12 / 68
13 Speciální symboly. libovolný znak ^ začátek řetězce $ konec řetězce alternativa výběr jedné ze dvou možností 13 / 68
14 Příklady Jaký je význam následujících výrazů? kocka pes ^[Pp]rase$ \d[a-z]\d \d\d\d\d 14 / 68
15 Opakování * nula a více opakování + jedno a více opakování? nula nebo jeden výskyt {m,n} m až n opakování Pozn. *, + jsou hladové, pro co nejmenší počet opakování *?, +? 15 / 68
16 Příklady Jaký je význam následujících výrazů? ^\s*nadpis ^a.+a$ \d{3}\s?\d{3}\s?\d{3} ^To:\s*(fi 16 / 68
17 Příklady Která z následujících slov vyhoví jednotlivým výrazům? ps pes pse poe prase poklice p[ars]e p[ars]*e p[^ars]e 17 / 68
18 Příklady Která z následujících slov vyhoví jednotlivým výrazům? p[ars]e p[ars]*e p[^ars]e ps pes pse poe prase poklice 18 / 68
19 Kontrola tabulky v Pythonu texty = ["ps","pes","pse","poe","prase","poklice"] vyrazy = [ r p[ars]e, r p[ars]*e, r p[^ars]e ] for text in texty: print text, for vyraz in vyrazy: if re.search(vyraz, text): print 1, else: print 0, print 19 / 68
20 Backreference odkaz na předchozí část textu pomocí \1, \2, \3,... příklad: slova, která obsahují opakovaně stejnou trojici písmen (jinde než) na začátku a konci periferie starosta jak zapsat regulární výraz? jaká další slova splňují? 20 / 68
21 Backreference a trojice písmen seznam slov, např. regulární výrazy: ^(...).*\1$.(...).*\1. výstupy např.: bramborami multikulturní ostrost skaliska 21 / 68
22 Bez regulárních výrazů Varianta uvnitř slova : def shoda(slovo): for i in range(1, len(slovo)-3): for j in range(i+1, len(slovo)-3): if slovo[i:i+3] == slovo[j:j+3]: return True return False Je to ekvivalentní? 22 / 68
23 Detekce opakovaných trojic regulární výraz:.(...).*\1. kontrola podmínky: slovo[i:i+3] == slovo[j:j+3] rozdílné chování: skleneneho, kovovou, kocicich Co je správně? Nejasná specifikace problému / 68
24 Regulární výrazy: xkcd / 68
25 Regulární výrazy v Pythonu knihovna re (import re) re.match hledá shodu na začátku řetězce re.search hledá shodu kdekoliv v řetězci (re.compile pro větší efektivitu) raw string r vyraz nedochází k interpretaci speciálních znaků jako u běžných řetězců v Pythonu 25 / 68
26 Regulární výrazy v Pythonu: práce s výsledkem match/search vrací MatchObject pomocí kterého můžeme s výsledkem pracovat pomocí kulatých závorek () označíme, co nás zajímá Alice\s+(\w+) 26 / 68
27 Regulární výrazy v Pythonu: práce s výsledkem >>> m = re.match(r"(\w+) (\w+)", \ "Isaac Newton, fyzik") >>> m.group(0) Isaac Newton >>> m.group(1) Isaac >>> m.group(2) Newton 27 / 68
28 Substituce nahrazení řetězce jiným výrazem nejen statické řetězce, ale i regulární výrazy re.sub 28 / 68
29 Rozdělení řetězce split rozdělí řetězec podle zadaného podřetězce, vrací seznam částí join spojení seznamu řetězců do jednoho >>> retezec = "Holka modrooka nesedavej u potoka" >>> retezec.split() [ Holka, modrooka, nesedavej, u, potoka ] >>> retezec.split( o ) [ H, lka m, dr,, ka nesedavej u p, t, ka >>> retezec.split( ka ) [ Hol, modroo, nesedavej u poto, ] 29 / 68
30 Řetězce: další funkce find, count vyhledávání a počítání podřetězců lower, upper převod na malá/velká písmena ljust, rjust, center zarovnání textu lstrip, rstrip ořezání bílých znaků na začátku/konci 30 / 68
31 Práce se soubory připomenutí Otevírání a zavírání: f = open("mujsoubor.txt") otevření pro čtení f = open("mujsoubor.txt","w") otevření pro zápis f.close() uzavření souboru zápis pomocí with lepší praxe (ale pokročilejší, souvisí s výjimkami) Čtení a zápis: f.readline() vrátí další řádek ze souboru f.readlines() vrátí seznam všech zbývajících řádků f.write(retezec) zapíše do souboru 31 / 68
32 Příklad: Zpracování HTML vstup: HTML soubor cíl: vybrat odkazy a nadpisy ukážeme naivní řešení se soubory, reg. výrazy systémovější řešení: využití knihoven pro práci s URL zdroji, parsování HTML, web scraping 32 / 68
33 regex-match-open-tags-except-xhtml-self-contained-tags/ # / 68
34 Příklad: Zpracování HTML 34 / 68
35 Hledání nadpisů def najdi_nadpisy(jmeno_souboru): soubor = open(jmeno_souboru) for radek in soubor.readlines(): m = re.search(r <h(\d)>(.*?)</h\d>,radek) if m: print m.group(1), "\t", m.group(2) soubor.close() Kdy nebude fungovat korektně? 35 / 68
36 Hledání odkazů stejná základní kostra, jen jiný regulární výraz pokus č. 1: <a href="(.*)">(.*)</a> nedostatky? 36 / 68
37 Hledání odkazů stejná základní kostra, jen jiný regulární výraz pokus č. 1: <a href="(.*)">(.*)</a> nedostatky? <a href=" <a href=" <a href=" target="_blank">seznam</a> 37 / 68
38 Hledání odkazů rozšíření (stále nedostatečná): <a href="(.*?)">(.*?)</a> <a href="(.*?)".*?>(.*?)</a> * hladové hledání ( co nejvíc ) *? co nejmíň 38 / 68
39 Příklad: Jak vykrást banku? Přesněji: Jak převzít kurzy ze stránky ČNB? 39 / 68
40 Příklad: Kurzy ze stránky ČNB Základní řešení: najít řádek, na kterém jsou kurzy (začíná <tr><td>aust) rozdělit na řádky tabulky (podle </tr><tr>) hledat trojice velkých písmen a za nimi čísla převést na typ float, uložit do slovníku Nevýhody? 40 / 68
41 Příklad: Kurzy ze stránky ČNB def zjisti_kurzy(jmeno_souboru): kurzy = {} soubor = open(jmeno_souboru) for radek in soubor.readlines(): if re.match(r <tr><td>aust,radek): for radek_tab in radek.split( </tr><tr> ): m = re.search( r <td>([a-z]{3}).*right">([\d,]+)</td> radek_tab) kurzy[m.group(1)] = float(re.sub(,,.,m.group(2))) soubor.close() return kurzy 41 / 68
42 Příklad: informace o studentech Export informací z ISu (CSV soubor): 1.;50668;"Sukany, Martin";zk;"FI B-AP BcAP [sem 1, roc 2.;421714;"Veznik, Ondrej";zk;"FI B-AP SOCI [sem 2, roc 3.;564138;"Machala, David";zk;"FI B-AP BcAP [sem 1, roc 4.;43583;"Mikes, Martina";zk;"FF B-FI PLIN [sem 5, cyk 5.;81908;"Sulc, Tomas";zk;"FF B-FI PLIN [sem 5, cyk 1]" 6.;844632;"Novak, Karel";zk;"FI B-IN PSK [sem 1, roc 1] 7.;798639;"Dunickova, Dagmar";zk;"FI B-AP SOCI [sem 1, 8.;195660;"Stipsky, Tomas";zk;"FI B-AP BcAP [sem 1, roc 9.;278740;"Fojt, Roman";zk;"FI B-AP INVS [sem 3, roc 2] 10.;236293;"Zachar, Samuel";zk;"FI B-IN UMI [sem 1, roc Pozn. Příklad je mutovaný z důvodu ochrany osobních údajů. 42 / 68
43 Statistiky o studentech výpis křestních jmen (abecedně seřazený) statistika studovaných oborů 43 / 68
44 Výpis křestních jmen def krestni_jmena(jmeno_souboru): f = open(jmeno_souboru) jmena = [] for radek in f.readlines(): m = re.match(r \d+\.;\d+;"\w+, (\w+), radek) if m: jmena.append(m.group(1)) jmena.sort() print " ".join(jmena) f.close() Jiné řešení: použití split 44 / 68
45 Statistiky oborů def obory(jmeno_souboru): f = open(jmeno_souboru) vyskyty_oboru = {} for radek in f.readlines(): m = re.search(r \s(\w+) \[sem, radek) if m: obor = m.group(1) vyskyty_oboru[obor] = \ vyskyty_oboru.get(obor, 0) + 1 f.close() for obor in vyskyty_oboru.keys(): print obor, vyskyty_oboru[obor] Nedostatky: např. studenti studující více oborů. 45 / 68
46 Regulární výrazy: Rekapitulace často používané:. libovolný znak \d čísla \w alfanumerické znaky \s bílé znaky + * opakování ^ $ začátek, konec řádku [ ] výběr z možností 46 / 68
47 Procvičení regulárních výrazů úloha Regulární výrazy 40 příkladů vyhledávání, nahrazování 47 / 68
48 Analýza textu statistiky délky slov a vět: x průměr s směrodatná odchylka (míra variability) slova věty x s x s Starý zákon Čapek Pelánek Wikipedie / 68
49 Analýza textu postup 1 text seznam délek slov (vět) 2 seznam délek statistiky přímočaré řešení 1. kroku: procházet vstup po znacích pamatovat si délku aktuálního slova, věty speciální znak (mezera, tečka a podobně) aktualizace seznamu 49 / 68
50 Imitace textu vstup: rozsáhlý text výstup: náhodně generovaný text, který má podobné charakteristiky jako vstupní text imitace na úrovni písmen nebo slov 50 / 68
51 Náhodnostní imitace vstupního textu I špiské to pole kavodali pamas ne nebo kdy v Dejný Odm sem uvalini se zabijí s Pan stěží ře, a silobe lo v ne řečekovících blova v nadrá těly jakvěmutelaji rohnutkohonebout anej Fravinci V A pěk finé houty. zal Jírakočítencej ské žil, kddo jak a to Lorskříže si tomůžu schno mí, kto. Kterak král kočku kupoval V zemi Taškářů panoval král a zapřisáhl se velikou přísahou že bude pochválena První pán si jí ani nevšimnul zato druhý se rychle shýbl a Jůru pohladil Aha řekl sultán a bohatě obdaroval pana Lustiga koupil od něho telegram z Bombaje v Indii není o nic horší člověk nežli někdo z mých hraček Kdepak mávl Vašek rukou 51 / 68
52 Základní přístup 1 vstupní text statistiky textu 2 statistiky generování náhodného textu Co jsou vhodné statistiky? 52 / 68
53 Statistiky textu základ: frekvence písmen (slov) rozšíření: korelace mezi písmeny (slovy) příklad: pokud poslední písmeno bylo a: e velmi nepravděpodobné (méně než obvykle) l, k hodně pravděpodobná (více než obvykle) 53 / 68
54 Implementace základní frekvenční analýza datová struktura slovník písmeno frekvence rozšířená analýza slovník slovníků písmeno { písmeno frekvence } generování podle aktuálního písmene získám frekvence vyberu náhodné písmeno podle těchto frekvencí vážená ruleta 54 / 68
55 Imitace sofistikovaněji Recurrent Neural Networks dokáží postihnout i složitější aspekty jazyka básně, recepty, Wikipedia články, zdrojové kódy, / 68
56 Statistiky jmen data: četnosti jmen, příjmení podle roků, krajů,... zdroj: Ministerstvo vnitra ČR cetnost-jmen-a-prijmeni aspx XLS pro zpracování v Pythonu uložit jako CSV (comma-separated values) doporučené cvičení snadno zpracovatelné zajímavá data cvičení na vymýšlení otázek následuje několik ukázek pro inspiraci / 68
57 Poznámky ke zpracování slovník: jméno seznam výskytů CSV funkce split seznam normalizace (relativní výskyty jmen) podělit součtem (pro daný rok) různě velké ročníky neúplná data u starých ročníků 57 / 68
58 Vyučující IB111: JAN, JAROSLAV, JIŘÍ, MAREK, MATĚJ, NIKOLA, ONDŘEJ, RADEK, TOMÁŠ, VALDEMAR 58 / 68
59 59 / 68
60 60 / 68
61 Otázky Co zajímavého můžeme z dat zjistit? Kladení otázek důležitá dovednost hodná tréninku. Computers are useless. They can only give you answers. (Pablo Picasso) 61 / 68
62 Identifikace trendů U kterých jmen nejvíce roste/klesá popularita? co to vlastně znamená? jak formalizovat? 62 / 68
63 Nejdelší růst/pokles Kolik let v řadě roste popularita jména: Tobiáš 14 Viktorie, Ella, Sofie 9 Elen, Tobias 8 Kolik let v řadě klesá popularita jména: Jana 26 Martin 21 Petra 11 Zdeněk 9 63 / 68
64 Největší skok v popularitě za 10 let alespoň desetinásobný nárůst popularity: Sofie, Elen, Amálie, Ella, Nicol, Nella, Tobias pokles alespoň o 60 %: Petra, Pavlína, Martina 64 / 68
65 65 / 68
66 Zdroje zajímavých dat Otevřená data / Open data / 68
67 Zpracování dat seriózněji využití existujících knihoven: načítání dat ve standardních formátech: HTML, XML, JSON, CSV,... operace s daty: numpy, pandas vizualizace: matplotlib prostředí ipython interaktivní prozkoumávání dat 67 / 68
68 Shrnutí regulární výrazy obecně užitečný nástroj práce s textem, soubory, daty v Pythonu příklady kurzovní lístek zpracování seznamu studentů imitace textu statistiky jmen příště: obrázky 68 / 68
Regulární výrazy, práce s textem a daty. IB111 Úvod do programování skrze Python
Regulární výrazy, práce s textem a daty IB111 Úvod do programování skrze Python 2014 1 / 57 Výhled dnes: práce s textem příště: práce s obrázky příkazy pro práci s textem/obrázky ukázky na konkrétních
Využití datových struktur, práce s textem. IB111 Úvod do programování
Využití datových struktur, práce s textem IB111 Úvod do programování 2016 Výhled dnes: logické úlohy a hry, textová data příště: obrázky nástroje pro práci s textem/obrázky ilustrační příklady využití
Práce s daty. IB111 Základy programování Radek Pelánek
Práce s daty IB111 Základy programování Radek Pelánek 2017 1 / 76 Práce s daty připomenutí Jaká data budu zpracovávat? Jaká data budu potřebovat k řešení problému? Jaké operace s daty budu chtít provádět?
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
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
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
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é
Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace
Programování: základní konstrukce, příklady, aplikace IB111 Programování a algoritmizace 2011 Připomenutí z minule, ze cvičení proměnné, výrazy, operace řízení výpočtu: if, for, while funkce příklady:
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
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
IB111 Úvod do programování skrze Python
Vyhledávání, řazení, složitost IB111 Úvod do programování skrze Python 2012 Otrávené studny 8 studen, jedna z nich je otrávená laboratorní rozbor dokáže rozpoznat přítomnost jedu ve vodě je drahý (je časově
DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v
DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve
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
Ú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
Úvod do programování 6. hodina
Úvod do programování 6. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Algoritmy Třídění pole: Selection
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.
Programování v Pythonu
ƒeské vysoké u ení technické v Praze FIT Programování v Pythonu Ji í Znamená ek P íprava studijního programu Informatika je podporována projektem nancovaným z Evropského sociálního fondu a rozpo tu hlavního
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.
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)
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
(a kryptografické odbočky) IB111 Úvod do programování skrze Python
Řetězce a seznamy (a kryptografické odbočky) IB111 Úvod do programování skrze Python 2013 1 / 50 Rozcvička: šifry 1 C S A R B V E K T E O A 2 C S B U J T M B W B 3 A J L B N O C E 2 / 50 Transpoziční šifry
VISUAL BASIC. Práce se soubory
VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit
Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 3. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.
Zdokonalování gramotnosti v oblasti ICT Kurz MS Excel kurz 3 1 Obsah Řazení dat... 3 Seřazení textu a čísel... 3 Další možné seřazení je možné podle barev, písma a ikon... 4 Filtry, rozšířené filtry...
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
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
NPRG030 Programování I, 2017/18 1 / :22:16
NPRG030 Programování I, 2017/18 1 / 26 20. 10. 2017 11:22:16 Ordinální typy standardní: integer, char, boolean Vlastnosti ordinálních typů: 1. hodnot je konečný počet a hodnoty jsou uspořádány 2. ke každé
IB111 Úvod do programování skrze Python
Vyhledávání, řazení, složitost IB111 Úvod do programování skrze Python 2014 1 / 48 Otrávené studny 8 studen, jedna z nich je otrávená laboratorní rozbor dokáže rozpoznat přítomnost jedu ve vodě je drahý
IV122 Matematika a programování Úvod kurzu. Radek Pelánek
IV122 Matematika a programování Úvod kurzu Radek Pelánek Cíle předmětu Lepší pochopení matematických pojmů a metod skrze praktické programování. Procvičení programátorských schopností; trénink přechodu
Vstupní požadavky, doporučení a metodické pokyny
Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem
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
KIV/ZIS cvičení 5. Tomáš Potužák
KIV/ZIS cvičení 5 Tomáš Potužák Úvod do SQL (1) SQL (Structured Query Language) je standardizovaný strukturovaný dotazovací jazyk pro práci s databází Veškeré operace v databázi se dají provádět pomocí
Standardní algoritmy vyhledávací.
Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární
Úvod Informace o prostředí Práce se soubory Regulární výrazy Konec. Programování v C# Soubory a regulární výrazy. Petr Vaněček 1 / 27
Programování v C# Soubory a regulární výrazy Petr Vaněček 1 / 27 Obsah přednášky Informace o prostředí Práce se soubory Regulární výrazy 2 / 27 Zprostředkování informací Třída System.Environment Poskytuje
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ý
Scrapping stránek prakticky: Dívka dne na TN.cz
Scrapping stránek prakticky: Dívka dne na TN.cz Obsah Scrapping stránek prakticky: Dívka dne na TN.cz...1 Praktický příklad scrapping-u v Python-u...1 Analýza galerie Dívky dne...2 Krok 1: zjištění URL
HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT
HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT Funkce Najít a nahradit slouží k rychlému vyhledávání určitých slov a jejich nahrazování jinými slovy. Lze hledat i určité varianty slov a nahrazovat je buď hromadně (všechny
Algoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
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í
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE
III/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň
Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b
Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -
Programování v Pythonu
ƒeské vysoké u ení technické v Praze FIT Programování v Pythonu Ji í Znamená ek P íprava studijního programu Informatika je podporována projektem nancovaným z Evropského sociálního fondu a rozpo tu hlavního
PHP tutoriál (základy PHP snadno a rychle)
PHP tutoriál (základy PHP snadno a rychle) Druhá, vylepšená offline verze. Připravil Štěpán Mátl, http://khamos.wz.cz Chceš se naučit základy PHP? V tom případě si prostuduj tento rychlý průvodce. Nejdříve
Programování v jazyce JavaScript
Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Operátory a příkazy BI-JSC Evropský sociální fond
Druhy souborů. textové. binární. nestrukturované txt strukturované - ini, xml, csv. veřejné bmp, jpg, wav proprietární docx, cdr, psd
Soubory Druhy souborů textové nestrukturované txt strukturované - ini, xml, csv binární veřejné bmp, jpg, wav proprietární docx, cdr, psd Základy zápisu using System.IO; nutné pro odkázání na jmenný prostor,
Tabulková data. budeme pracovat s CSV soubory položky oddělené středníkem, např.
Tabulková data budeme pracovat s CSV soubory položky oddělené středníkem, např. Číslo zákazníka;příjmení;jméno;datum narození 17;Novotná;Bohdana;25.11.1982 22;Kender;David;24.12.1986 29;Čihák;Jan;18.3.1969
Databáze prodejců. Tlačítka. Vytvoří kartu nového prodejce (Alt+N); Změní vybraného prodejce Uloží nového prodejce nebo změnu (Alt+U);
Databáze prodejců Tlačítka Vytvoří kartu nového prodejce (Alt+N); Změní vybraného prodejce (Alt+E); Uloží nového prodejce nebo změnu (Alt+U); Při zakládání nového prodejce zadejte jeho číslo (musí to být
Obsah. Předmluva 13. O autorovi 15. Poděkování 16. O odborných korektorech 17. Úvod 19
Předmluva 13 O autorovi 15 Poděkování 16 O odborných korektorech 17 Úvod 19 Co kniha popisuje 19 Co budete potřebovat 20 Komu je kniha určena 20 Styly 21 Zpětná vazba od čtenářů 22 Errata 22 KAPITOLA 1
Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová. 5. Statistica
Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová 5. Statistica StatSoft, Inc., http://www.statsoft.com, http://www.statsoft.cz. Verze pro Mac i PC, dostupná
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
Semestrální úloha 1 z předmětu Programovací jazyk C. Textový merge. Student:
Semestrální úloha 1 z předmětu Programovací jazyk C Textový merge Napište program, který spojí dva textové soubory. První soubor je datový, obsahuje databázi, tj. první řádek představuje seznam sloupců
Programování v C++, 2. cvičení
Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule
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
Da D to t v o é v ty t py IB111: Datové typy
Datové typy IB111: Datové typy Data a algoritmizace jaká data potřebuji pro vyřešení problému? jak budu data reprezentovat? jaké operaci s nimi potřebuji provádět? Navržení práce s daty je velice důležité
Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.
Přednáška 7 Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. 1 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu
Penframe ESHOP. Basic Standard Pro. 34 900 Kč 69 900 Kč 99 900 Kč. Grafický návrh. Redesign šablon: barevnost, hlavička, logo, grafické prvky stránky
Grafický návrh Redesign šablon: barevnost, hlavička, logo, grafické prvky stránky Tvorba individuálního grafického návrhu na přání klienta Základní moduly a funkčnost aplikace Počet jazykových mutací 1
Ú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
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,
Popis programu EnicomD
Popis programu EnicomD Pomocí programu ENICOM D lze konfigurovat výstup RS 232 přijímačů Rx1 DIN/DATA a Rx1 DATA (přidělovat textové řetězce k jednotlivým vysílačům resp. tlačítkům a nastavovat parametry
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í
IB111 Základy programování Radek Pelánek
Proměnné, paměť, soubory IB111 Základy programování Radek Pelánek 2017 1 / 54 Rozcvička I a = [3, 1, 7] print(sorted(a)) print(a) b = [4, 3, 1] print(b.sort()) print(b) 2 / 54 Rozcvička II a = ["magic"]
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
Kolekce, cyklus foreach
Kolekce, cyklus foreach Jen informativně Kolekce = seskupení prvků (objektů) Jednu již známe pole (Array) Kolekce v C# = třída, která implementuje IEnumerable (ICollection) Cyklus foreach ArrayList pro
Programování v Pythonu
ƒeské vysoké u ení technické v Praze FIT Programování v Pythonu Ji í Znamená ek P íprava studijního programu Informatika je podporována projektem nancovaným z Evropského sociálního fondu a rozpo tu hlavního
1. Téma 03 - Rozhodování
1. Téma 03 - Rozhodování Cíl látky Seznámit se a prakticky si vyzkoušet zápis rozhodování v jazyce Java 1.1. Úvod Jednou z nejčastěji používanou konstrukcí při programování je rozhodování. Právě této problematice
Hledání v textu algoritmem Boyer Moore
Zápočtová práce z Algoritmů a Datových Struktur II (NTIN061) Hledání v textu algoritmem Boyer Moore David Pěgřímek http://davpe.net Algoritmus Boyer Moore[1] slouží k vyhledání vzoru V v zadaném textu
Ú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í
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
ALGORITMIZACE A PROGRAMOVÁNÍ
Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení
PSK3-9. Základy skriptování. Hlavička
PSK3-9 Název školy: Autor: Anotace: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Základy skriptování v unixovém shellu Vzdělávací oblast: Informační a komunikační technologie
Výukový materiál zpracován v rámci projektu EU peníze školám
Výukový materiál zpracován v rámci projektu EU peníze školám Název školy: Střední zdravotnická škola a Obchodní akademie, Rumburk, příspěvková organizace Registrační číslo projektu: CZ.1.07/1.5.00/34.0649
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
Programy a algoritmy pracující s čísly. IB111 Úvod do programování
Programy a algoritmy pracující s čísly IB111 Úvod do programování 2016 1 / 56 Dnešní přednáška práce s čísly v Pythonu ukázky programů, ilustrace použití základních konstrukcí ukázky jednoduchých algoritmů,
- 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á
Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávání v informačních a komunikačních technologií
VY_32_INOVACE_33_05 Škola Střední průmyslová škola Zlín Název projektu, reg. č. Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávací oblast Vzdělávání v informačních a komunikačních
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
Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru
Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru Textové řetězce V jazyce C neexistuje typ proměnné, který by byl určen výhradně pro ukládání textu V jazyce C používáme
Databázové systémy. Cvičení 6: SQL
Databázové systémy Cvičení 6: SQL Co je SQL? SQL = Structured Query Language SQL je standardním (ANSI, ISO) textovým počítačovým jazykem SQL umožňuje jednoduchým způsobem přistupovat k datům v databázi
Základy XML struktura dokumentu (včetně testových otázek)
Základy XML struktura dokumentu (včetně testových otázek) Otakar Čerba Oddělení geomatiky Katedra matematiky Fakulta aplikovaných věd Západočeská univerzita v Plzni Přednáška z předmětu Počítačová kartografie
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 23 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 2 / 23 biologové často potřebují najít často se opakující sekvence DNA tyto sekvence bývají relativně krátké,
Výčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
1 ZÁKLADNÍ POPIS 2 3 DOPORUČENÁ NASTAVENÍ ÚČETNÍHO SYSTÉMU 6 4 TRANSAKČNÍ SOUBOR 6 5 PŘÍKLAD SOUBORU 6
FORMÁT ABO/KPC OBSAH 1 ZÁKLADNÍ POPIS 2 2 STRUKTURA ZÁZNAMU UHL1 2 2.1 Struktura hlavičky účetního souboru výpisu záznam 074 3 2.2 Struktura hlavičky skupiny 3 2.3 Struktura účetní položky 4 3 DOPORUČENÁ
B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11
333LP - lgoritmy a programování - Zkouška z předmětu 333LP Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8]
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
Vlastnosti regulárních jazyků
Vlastnosti regulárních jazyků Podobně jako u dalších tříd jazyků budeme nyní zkoumat následující vlastnosti regulárních jazyků: vlastnosti strukturální, vlastnosti uzávěrové a rozhodnutelné problémy pro
DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA
DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: vzdělávací
ANOTACE vytvořených/inovovaných materiálů
ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a
Maturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
1 Webový server, instalace PHP a MySQL 13
Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
Kombinatorika, výpočty
Kombinatorika, výpočty Radek Pelánek IV122 Styl jednoduché výpočty s čísly vesměs spíše opakování + pár dílčích zajímavostí užitečný trénink programování Kombinace, permutace, variace Daná množina M s
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
Obsah KAPITOLA 1 Několik slov o Wordu 2007 9
KAPITOLA 1 Několik slov o Wordu 2007 9 Pás karet 10 Další možnosti ovládání Wordu 12 Nastavení Wordu 13 Ovládání Wordu 2007 klávesnicí 14 KAPITOLA 2 Základní operace 17 Základní nastavení 17 Rozdělení
Zadání druhého zápočtového projektu Základy algoritmizace, 2005
Zadání druhého zápočtového projektu Základy algoritmizace, 2005 Jiří Dvorský 2 května 2006 Obecné pokyny Celkem je k dispozici 8 zadání příkladů Každý student obdrží jedno zadání Vzhledem k tomu, že odpadly
Praktické využití Mathematica CalcCenter. Ing. Petr Kubín, Ph.D. xkubin@fel.cvut.cz www.powerwiki.cz Katedra elektroenergetiky, ČVUT v Praze, FEL
Praktické využití Mathematica CalcCenter Ing. Petr Kubín, Ph.D. xkubin@fel.cvut.cz www.powerwiki.cz Katedra elektroenergetiky, ČVUT v Praze, FEL Obsah Popis Pojetí Vlastnosti Obecná charakteristika Ovladače
IB111 Úvod do programování skrze Python Přednáška 7
IB111 Úvod do programování skrze Python Přednáška 7 Správa paměti (proměnné podrobněji) Práce se soubory Nikola Beneš 2. listopad 2016 IB111 přednáška 7: správa paměti, práce se soubory 2. listopad 2016
Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:
Skripta ke školení Základy VBA vypracoval: Tomáš Herout e-mail: herout@helpmark.cz tel: 739 719 548 2016 Obsah TROCHA TEORIE VBA...2 ZPŮSOB ZÁPISU VE VBA...2 CO JE TO FUNKCE...2 CO JE TO PROCEDURA...2
KAPITOLA 5. Práce s textovými řetězci. V této kapitole najdete: Deklarace textových řetězců Operace s řetězci Ukázkový kód pro operace s řetězci
KAPITOLA 5 Práce s textovými řetězci V této kapitole najdete: Deklarace textových řetězců Operace s řetězci Ukázkový kód pro operace s řetězci 94 Kapitola 5: Práce s textovými řetězci Slova jsou textovými
Informatika pro moderní fyziky (11) web scraping; API; zadání zápočtových úloh
Informatika pro moderní fyziky (11) web scraping; API; zadání zápočtových úloh František HAVLŮJ e-mail: haf@ujv.cz ÚJV Řež oddělení Reaktorové fyziky a podpory palivového cyklu akademický rok 2014/2015