52. ročník Matematické olympiády 2002/2003
|
|
- Vítězslav Veselý
- před 8 lety
- Počet zobrazení:
Transkript
1 52. ročník Matematické olympiády 2002/2003 Úlohy domácího kola kategorie P Řešení každého příkladu musí obsahovat podrobný popis použitého algoritmu, zdůvodnění jeho správnosti a diskusi o efektivitě zvoleného řešení (tzn. posouzení časových a paměťových nároků programu). V praktických úlohách P-I- a P-I-3 je třeba k řešení připojit odladěný program zapsaný v jazyce Pascal, C nebo C++. Program se odevzdává v písemné formě (jeho výpis je tedy součástí řešení) i na disketě, aby bylo možné otestovat jeho funkčnost. Slovní popis řešení musí být ovšem jasný a srozumitelný, aniž by bylo nutno nahlédnout do zdrojového textu programu. V úloze P-I-2 se odladěný program nepožaduje, stačí uvést dostatečně podrobný zápis algoritmu. V úloze P-I-4 zapište navržený algoritmus ve formě reverzibilní procedury. Řešení úloh domácího kola MO kategorie P vypracujte a odevzdejte nejpozději do Vzorová řešení úloh naleznete po tomto datu na Internetu na adrese Na stejném místě jsou stále k dispozici veškeré aktuální informace o soutěži a také archív soutěžních úloh a výsledků minulých ročníků. P-I- Čajovník Pan Nyi byl dvorním pěstitelem čaje císaře Tiang-tonga. Byl to pěstitel skutečně vyhlášený a jeho čajové lístky putovaly nejen do blízkých šálků císaře Tianga, ale i do dalekých zemí za oceánem. Tajemství Nyiho skvělého čaje spočívalo především v pečlivosti, s jakou se o své čajové keře staral. Nyi byl tak pečlivý, že si o každém svém keři vedl záznamy. Psal si dokonce i to, kolik větviček vychází z kterého místa keře. Po smrti pana Nyiho byly záznamy rozkradeny a jeho nástupce pan Myi tak měl práci o mnoho těžší. Rozhodl se proto, že záznamy získá zpět. Problémem ale je, že mnoho různých podvodníků mu nabízí záznamy falešné. Ty naštěstí většinou obsahují nesmyslné počty větvení, a tak se dají snadno odhalit. Pana Myiho neustálé ověřování pravosti záznamů už unavuje, a proto vás požádal, abyste mu napsali program, který mu s ověřováním pomůže. Váš program dostane na vstupu počet významných míst N na údajném čajovníku. Významným místem na čajovníku je buď místo, kde se čajovník větví, nebo místo, kde končí nějaká větev čajovníku. Protože žádné dvě větve čajovníku nemohou srůstat, nemohou vznikat cykly z větví. Dále je na vstupu programu zadáno N kladných celých čísel c, c 2,..., c N, kde c i určuje počet částí kmene, které vycházejí z i-tého významného místa. Na výstup program vypíše zprávu, zda může existovat čajovník, který bude mít takovéto počty větvení. Formát vstupu: Vstupní textový soubor caj.in obsahuje dva řádky. Na prvním řádku je uvedeno jediné celé číslo N, N 000. Druhý řádek obsahuje celá čísla c, c 2,..., c N oddělená mezerami, c i N. Formát výstupu: Výstupní textový soubor caj.out obsahuje jediný řádek tvořený buď slovem EXISTUJE nebo slovem NEEXISTUJE. Příklad : (viz obrázek vpravo) caj.in caj.out 4 EXISTUJE Příklad 2: caj.in caj.out 6 NEEXISTUJE P-I-2 Knihovna Knihovnice Míla potřebuje objednat další skříň s poličkami do své knihovny; bohužel však sama neumí spočítat její optimální rozměry. Míla by ráda do nové skříně umístila N knih. Každá kniha má přiřazen jednoznačný číselný kód a tyto kódy určují pořadí knih ve skříni. Kniha s menším kódem se má nacházet na stejné nebo výše umístěné poličce než kniha s větším kódem; na každé poličce mají být knihy s menšími kódy umístěny vlevo od knih s většími kódy. Vstupem vašeho programu bude posloupnost N čísel v i, i N, kde v i je výška i-té knihy (uspořádáno podle rostoucích kódů). Pro zjednodušení můžete předpokládat, že všechny knihy mají stejnou tloušťku cm. Váš program by měl ze zadaných údaju spočítat následující: 4
2 Šířku skříně označme ji s. Počet poliček ve skříni označme ho p. Výšku w i i-té poličky pro každé i p. Rozmístění knih do skříně se spočítanými parametry, které respektuje požadavky na pořadí knih zmíněné v zadání tohoto příkladu. Navíc si knihovnice Míla přeje, aby skříň byla co nejužší a přitom aby se vešla do místnosti vysoké 250 cm. Rozmístění knih, které váš program nalezne, musí tedy ještě splňovat následující podmínky: Výška libovolné z knih umístěných do i-té poličky je nejvýše w i. Součet tlouštěk knih umístěných do jedné poličky je nejvýše s cm, tj. tato polička obsahuje nejvýše s knih. Výška skříně, která je rovna p i= w i +(p+) cm (předpokládáme, že šířka desek oddělujících poličky ve skříni je cm), nesmí přesáhnout výšku místnosti 250 cm. s je nejmenší možné. Příklad: Předpokládejme, že Míla chce do skříně umístit celkem knih, jejichž výšky jsou v pořadí podle jejich kódů následující: 40 cm, 0 cm, 40 cm, 25 cm, 40 cm, 25 cm, 50 cm, 40 cm, 40 cm, 25 cm a 40 cm. Jedno z optimálních řešení by mohlo vypadat následovně: Skříň bude mít šířku pro 3 knihy a celkem 4 poličky s následujícími výškami: 40 cm, 40 cm, 50 cm a 40 cm. Výška skříně je v tomto případě 75 cm. Nalezení jednoho konkrétního možného umístění knih do skříně je snadné. P-I-3 Transformace Jedna z metod zpracování textu používá následující transformační algoritmus: Na vstupu mějme n-znakový řetězec C = c c 2... c n, jehož všechny znaky jsou navzájem různé. Řetězec C = c k+ c k+2... c n c... c k nazýváme řetězcem C zrotovaným o k (tedy např. eldat je řetězec datel zrotovaný o 3). Vezměme si zadaný řetězec C a napišme si pod sebe C, C zrotovaný o,..., C zrotovaný o n. Tím jsme získali tabulku n řetězců. Ty setřídíme v běžném lexikografickém pořadí (tzn. podle abecedy). Z výsledné tabulky si vybereme poslední sloupec S; dále si také zapamatujeme číslo řádku ř, na němž se po setřídění nachází náš původní řetězec. Dvojice (S, ř) je výsledek transformace zadaného vstupu. Jakkoli magicky to vypadá, tyto dva údaje stačí k rekonstrukci původního řetězce. Příklad: Na vstupu máme slovo datel. Transformace probíhá takto: datel ateld ateld datel * telda eldat eldat ldate ldate telda Výsledkem tedy je slovo dltea a informace, že původně zadané slovo je na druhém řádku setříděné tabulky. Soutěžní úloha: Program dostane na vstupu řetězec S délky n ( n 00), jehož všechny znaky jsou navzájem různé (tj. je-li S = s s 2... s n, pak s i s j pro každá i, j, i j), a číslo ř ( ř n). Úkolem je najít řetězec C takový, že dvojice (S, ř) je výsledkem aplikace výše popsané transformace na řetězec C (máte zaručeno, že takový existuje). Uvědomte si, že při použití v praxi se délky zpracovávaných vstupů pohybují řádově ve stovkách kilobytů; je tedy nevhodné, aby váš program měl kvadratické časové nebo paměťové nároky. Formát vstupu: Na prvním řádku vstupního souboru bw.in se nachází řetězec S (řetězec neobsahuje mezery). Na druhém řádku je jedno celé číslo ř. Formát výstupu: Výstupní soubor bw.out je tvořen jedním řádkem, obsahujícícím řetězec C (jehož transformací je dvojice (S, ř)). Příklad: bw.in dltea 2 bw.out datel 2
3 P-I-4 Reverzibilní výpočty: Políčko pole Při hledání nových, úspornějších polovodičových technologií se zjistilo, že nejvíce energie se spotřebovává při mazání informací, tudíž že optimální jsou ty výpočty, při nichž se žádné informace neztrácejí. Takovým výpočtům se říká reverzibilní, protože díky této vlastnosti mohou probíhat oběma směry dokáží nejen spočítat ze vstupu výstup, ale také z výstupu jednoznačně určit vstup. Vydejme se proto i my do tohoto zvláštního symetrického světa a prozkoumejme, jak se programuje ekologicky. Začněme tím nejjednodušším, co se v klasických programovacích jazycích vyskytuje, a to je přiřazovací příkaz. Nic takového si bohužel dovolit nemůžeme, ztratili bychom totiž původní obsah proměnné, do níž se přiřazuje. Místo toho zavedeme několik příkazů modifikujících proměnnou vratně: proměnná += hodnota přičte hodnotu k proměnné. proměnná -= hodnota odečte hodnotu od proměnné. proměnná ^= hodnota přixoruje hodnotu k proměnné. (xor je bitová operace, která má pro jednobitová čísla výsledek právě tehdy, když jsou oba vstupy různé: 0 xor 0 = xor = 0, 0 xor = xor 0 =. Vícebitová čísla se xorují po bitech i-tý bit prvního čísla s i-tým bitem druhého dají i-tý bit výsledku: 5 xor 5 = (00) 2 xor () 2 = (00) 2 = 0. Obecně pro libovolná čísla x a y platí x xor y = y xor x, x xor x = 0, x xor 0 = x a (x xor y) xor z = x xor (y xor z). Podobně lze zavést operace and a or: 0 and 0 = 0 and = and 0 = 0, and =, 0 or 0 = 0, 0 or = or 0 = or =, ale ty nejsou reverzibilní, takže pro nás nebudou tak důležité.) proměnná =:= proměnná prohodí obsah dvou proměnných. Abychom se vyhnuli problémům s přetečením (co by pak byla inverzní operace?), dohodněme se, že budeme počítat pouze s nezápornými celými čísly v rozsahu 0... maxword (takovým číslům budeme říkat přirozená) a všechny operace budou vydávat výsledky modulo maxword +, tedy opět přirozené číslo. Příkaz += provedený pozpátku je pak totéž, co -= a opačně; přikazy ^= a =:= jsou inverzní samy k sobě. Co všechno ale může být hodnota? Jistě libovolná konstanta nebo proměnná (ovšem různá od té, do které přiřazujeme, jinak bychom mohli napsat třeba a -= a, což určitě reverzibilní není). Také bychom měli povolit nějaké další aritmetické operace ty samy nemusí být reverzibilní, důležité je, aby se jejich výsledek zpracoval reverzibilně. Každý složitější výraz pak už můžeme přepsat na výrazy s jedinou operací, například x ^= (a*b)+(c*d) rozepíšeme takto: t += a*b; t2 += c*d; x ^= t+t2; t2 -= c*d; t -= a*b; Zde t a t2 jsou pomocné proměnné, které jsou na počátku výpočtu nulové a po dopočítání výrazu se opět k nulovým hodnotám vrátí, takže je můžeme používat pro všechny výrazy v celém programu. Podobně se vypořádáme s každým výrazem nejdříve si spočítáme všechny mezivýsledky do pomocných proměnných, pak hlavní výsledek použijeme, načež mezivýsledky opět odpočítáme. Takže můžeme používat i slozité výrazy a spolehnout se na překladač, že je sám rozepíše. Trik s odpočítáváním mezivýsledků a spouštěním částí programu pozadu je, zdá se, velice šikovný, tak si rovnou nadefinujeme, že undo příkaz znamená spustit příkaz pozpátku a wrap příkaz on příkaz 2 provede nejdříve příkaz, pak příkaz 2 a nakonec undo příkaz pro odpočítání mezivýsledků. Náš příklad s výrazem pak snadno zapíšeme takto: wrap begin t += a*b; t2 += c*d end on x ^= t+t2 Podmíněné příkazy if then else můžeme používat bez obav, pokud zaručíme, že po provedení podmíněného příkazu dopadne podmínka úplně stejně jako předtím (třeba proto, že žádná z proměnných, které v ní vystupují, není v podmíněné části programu měněna). Pak totiž i při provádění výpočtu pozpátku rozpoznáme, kterou z větví se výpočet má vydat. 3
4 S cykly je situace svízelnější, protože tam si s neměnícími se podmínkami nevystačíme (to by každý cyklus buďto neproběhl nikdy nebo by se opakoval do nekonečna). Dalo by se to, pravda, zachránit tím, že by každý cyklus měl jednu podmínku, která by fungovala současně jako vstupní i výstupní sami si rozmyslete, jak by takové cykly vypadaly. My si ale pro naše účely vystačíme s cykly for, ty určitě reverzibilní jsou, pokud řídící proměnnou cyklu ani její meze žádný příkaz uvnitř cyklu nemodifikuje, a to se koneckonců nesmí ani v mnoha jiných programovacích jazycích. Navíc abychom nemuseli řešit, co se v řídící proměnné musí vyskytovat před začátkem cyklu a co po jeho konci, domluvíme se, že příkaz for si tuto proměnnou sám vytvoří a na konci ji zase zruší. Příkaz goto pro jistotu zakážeme úplně. Procedury mohou také fungovat reverzibilně, ale musíme se vyhnout kopírování parametrů a výsledků, budeme proto vše vždy předávat odkazem (pascalské var). Lokální proměnné budou při spuštění procedury vždy nulové a procedura sama je musí, než skončí, opět do tohoto stavu vrátit. Rekurze je bez problémů. Nyní již máme vše potřebné, abychom si vybudovali reverzibilní programovací jazyk. Ten náš bude vzdáleným příbuzným Pascalu. Vypadá takto: Datové typy: K dispozici máme typy word (celá čísla bez znaménka), bit (jednobitové číslo, tedy 0 nebo ; používá se rovněž pro pravdivostní hodnoty) a pole array [x..y] of typ (x a y udávají meze indexů a jsou to buďto čísla nebo výrazy, jejichž hodnota se po dobu existence pole nezmění to si proti Pascalu dovolíme navíc). Prvky polí mohou být také pole, čímž získáme pole vícerozměrná. Svůj vlastní typ si můžete zavést deklarací type identifikátor = typ; Identifikátory slouží k pojmenovávání typů, proměnných a procedur a jsou to libovolné řetězce písmen, číslic a znaků _, které nezačínají číslicí a které se neshodují s některým z klíčových slov jazyka (zde sázena courierem). Malá a velká písmena se nerozlišují. Procedury se deklarují konstrukcí procedure identifikátor ( parametry ); deklarace lokálních typů, proměnných a procedur begin příkazy oddělené středníky end; Zde parametry mají syntaxi var jméno:typ, kde jméno je identifikátor, jímž se lze na předaný parametr uvnitř procedury odkazovat. Pokud má procedura parametrů více, oddělují se středníky, jsou-li stejného typu, lze zkracovat, např.: procedure X(var m,n:integer; var Z:array [..n] of bit); Všechny deklarované objekty (parametry, typy, proměnné i procedury) existují pouze během volání této procedury, každá procedura vidí své lokální proměnné a navíc lokální proměnné všech procedur, uvnitř kterých je deklarována (zastiňování se řídí stejnými pravidly jako v Pascalu nebo C). Proměnné jsou pojmenovány identifikátory, musí se vytvořit deklarací var identifikátor : typ;. Při vstupu do procedury, v níž jsou deklarovány, mají nulovou hodnotu (v případě pole ji mají všechny jeho prvky) a než proměnná na konci procedury zanikne, musí být opět nulová. Deklaraci více proměnných téhož typu lze zkrátit, např. var i, i 2,..., i n : typ;. Výrazy mohou obsahovat: konstanty (přirozená čísla a maxword reprezentující maximální dostupné číslo), proměnné, prvky polí (pole[výraz]), číselné operace (vstupem i výstupem jsou přirozená čísla) +, -, *, div (celá část podílu), mod (zbytek po dělení), and, or, xor (bitové operace viz definice o pár odstavců výše) a not (prohození nulových a jedničkových bitů), výsledky jsou automaticky modulo maxword +. relační operace (vstupem jsou dvě čísla, výstupem bitová hodnota, když relace platí, 0 pokud nikoliv) <, >, =, <=, >= a <>, závorky (pokud nezávorkujeme, operátory mají své obvyklé priority). Příkazy existují tyto: Blok: begin příkazy oddělené středníky end způsobí vykonání všech příkazů, které obsahuje, v daném pořadí. 4
5 Modifikační příkazy: proměnná += výraz způsobí vyhodnocení výrazu a přičtení jeho výsledku k dané proměnné (může to být rovněž prvek pole indexovaný nějakým výrazem). Proměnná, kterou příkaz modifikuje, (resp. prvek pole) se již nesmí nikde jinde v témže příkazu vyskytnout. Analogicky příkazy -= a ^=. Prohazovací příkaz: proměnná =:= proměnná prohodí obsah dvou proměnných stejného typu. Pokud se jedná o prvky polí, nesmí se ve výrazech určujících indexy používat žádné z těchto polí. Podmíněný příkaz: if podmínka then příkaz else příkaz 2 vyhodnotí se podmínka, což je výraz s bitovým výsledkem, a pokud je roven jedné, vykoná se první z příkazů, jinak druhý. Platnost podmínky musí zůstat po vykonání příkazu nezměněna. Část else je možno vypustit, v případech typu if x then if y then a else b se pak else vztahuje vždy k nejbližšímu předchozímu ještě neukončenému příkazu if. Příkaz cyklu: for var identifikátor = d to h do příkaz založí novou proměnnou daného jména a daný příkaz vykonává pro tuto proměnnou nabývající postupně hodnot d, d +,..., h, načež proměnnou opět zruší. Meze d a h jsou celočíselné výrazy, pokud d > h, příkaz se neprovede ani jednou. Přikaz musí zachovávat hodnotu řídící proměnné, jakož i mezí cyklu (to znamená, že je může modifikovat, ale na konci jednoho průchodu cyklem musí mít obojí opět původní hodnotu). Též je možno použít h downto d, tehdy cyklus běží pozpátku, tj. h, h,..., d. Volání procedury: procedura(parametr,..., parametr n ) zavolá proceduru se zadanými parametry, což mohou být buďto proměnné nebo indexovaná pole (výrazy v indexech ovšem musí mít po návratu z procedury stejnou hodnotu jako před jejím zavoláním) a jejich počet i typy musí odpovídat deklaraci procedury. Příkaz obrácení výpočtu: undo příkaz provede daný příkaz pozpátku podle následujících pravidel: undo begin p ;... ; p n end begin undo p n ;... ; undo p end undo x += y x -= y undo x -= y x += y undo x ^= y x ^= y undo x =:= y x =:= y undo if x then y else z if x then undo y else undo z undo for x = d to h do p for x = h downto d do undo p undo P (x,..., x n ) undo těla procedury (begin... end) undo undo p p Konstrukce begin p ; undo p end tedy nevykoná nic, ač může počítat poměrně dlouho. Příkaz lokálního výpočtu: wrap příkaz on příkaz 2 je zkratkou za konstrukci begin příkaz ; příkaz 2 ; undo příkaz end. Hlavní program nebudeme zavádět. Abychom se vyhnuli problémům se vstupy a výstupy, budeme vše vždy programovat jako procedury. Ty jako své parametry dostanou jak proměnné, které obsahují vstupní data, tak proměnné, které mají být předepsaným způsobem zmodifikovány podle výsledku. Časová a prostorová složitost se definuje podobně jako v klasickém programování: časovou složitostí výpočtu je počet vykonaných příkazů modifikujících proměnné, ať již proběhly kterýmkoliv směrem. Množství paměti využité programem v nějakém okamžiku výpočtu spočítáme jako součet velikostí všech lokálních proměnných (typy bit a word mají jednotkovou velikost, pole má velikost rovnou součtu velikostí svých prvků) a parametrů (ty se všechny počítají jako jednotka, ať už jsou kteréhokoliv typu, protože jsou předávány odkazem) všech právě zavolaných procedur + jednotka navíc za každou takovou proceduru. Prostorovou složitostí programu nazveme pak maximum z využitého množství paměti přes celou dobu běhu programu. (Pozor, jelikož program je pro nás vždy procedurou, jeho vstupy a výstupy se do prostorové složitosti započítávají pouze jednotkově, i když to mohou být velká pole.) Zbývá maličkost: cokoliv uzavřeného do složených závorek { a } je komentářem, který je počítačem zcela ignorován, jako kdyby na jeho místě byla mezera. Komentář nesmí uvnitř obsahovat složené závorky. Příklad : Procedura pro prohození obsahu dvou proměnných (která ukazuje, že =:= se dá snadno odvodit pomocí ostatních operací). Časová i prostorová složitost jsou konstantní, tedy O(). procedure Prohod(var x,y:word); begin { x = X, y = Y (X,Y jsou pův. hodnoty) } x ^= y; { x = X xor Y, y = Y } 5
6 y ^= x; { x = X xor Y, y = Y xor (X xor Y) = X } x ^= y { x = (X xor Y) xor X = Y, y = X } end; Příklad 2: Procedura pro výpočet maxima ze zadaných n čísel. Je dáno pole X celých čísel a proměnná max, k níž máme spočtené maximum přičíst. To dokážeme takto: Nejprve si předpočítáme do M[i] maximum z čísel X[],..., X[i], pak přičteme M[n] k max a nakonec M[i] opět vyprázdníme, což snadno zapíšeme pomocí příkazu wrap. Časová i prostorová složitost jsou O(n) čili lineární. Soutěžní úloha: procedure Maximum(var n:word; var X:array [..n] of word; var max:word); var M:array [0..n] of word; begin wrap for var i= to n do if X[i]>M[i-] then M[i] += X[i] else M[i] += M[i-] on max += M[n]; end; Napište reverzibilní proceduru Najdi(var n:word; var X:array [..n] of word; var co, kde:word). Tato procedura má za úkol v n-prvkovém poli X hledat hodnotu co a pokud se tam tato hodnota vyskytuje, přičíst k proměnné kde pozici jejího výskytu, tedy i takové, že X i = co. Navíc je známo, že pole X je uspořádáno vzestupně, tedy že pro každé i < j platí X i < X j ; proto také může být výskyt nejvýše jeden. Ve svém řešení se snažte dosáhnout co nejmenší časové i prostorové složitosti. 6
52. ročník Matematické olympiády 2002/2003
52. ročník Matematické olympiády 2002/2003 Úlohy krajského kola kategorie P Krajské kolo 52. ročníku MO kategorie P se koná v úterý 7. 1. 2003 v dopoledních hodinách. Na řešení úloh máte 4 hodiny čistého
52. ročník Matematické olympiády 2002/2003
5. ročník Matematické olympiády 00/003 Úlohy celostátního kola kategorie P 1. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Řešení každého příkladu musí obsahovat: Popis řešení, to znamená
Č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
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
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
Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)
Programovací jazyk - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Odlišnosti implementace od normy - odchylky např.: nepovinná hlavička programu odlišná
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
Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky
Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové
- 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á
Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem
Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel
53. ročník Matematické olympiády 2003/2004
5. ročník Matematické olympiády 00/004 Úlohy celostátního kola kategorie P. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Řešení každého příkladu musí obsahovat: Popis řešení, to znamená slovní
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
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í
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. 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.
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
Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7
Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí
Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1
Výraz - syntaxe i sémantika podobné jako v matematice - obsahuje proměnné, konstanty, operátory, závorky, volání funkcí - všechny operátory nutno zapisovat (nelze např. vynechat znak násobení) - argumenty
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
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.
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
ANTAGONISTICKE HRY 172
5 ANTAGONISTICKÉ HRY 172 Antagonistický konflikt je rozhodovací situace, v níž vystupují dva inteligentní rozhodovatelé, kteří se po volbě svých rozhodnutí rozdělí o pevnou částku, jejíž výše nezávisí
3. ANTAGONISTICKÉ HRY
3. ANTAGONISTICKÉ HRY ANTAGONISTICKÝ KONFLIKT Antagonistický konflikt je rozhodovací situace, v níž vystupují dva inteligentní rozhodovatelé, kteří se po volbě svých rozhodnutí rozdělí o pevnou částku,
Úvod do programování
Úvod do programování Základní literatura Töpfer, P.: Algoritmy a programovací techniky, Prometheus, Praha učebnice algoritmů, nikoli jazyka pokrývá velkou část probíraných algoritmů Satrapa, P.: Pascal
Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo
Operátory, výrazy Tomáš Pitner, upravil Marek Šabo Operátor "Znaménko operace", pokyn pro vykonání operace při vyhodnocení výrazu. V Javě mají operátory napevno daný význam, nelze je přetěžovat jako v
V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2
Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných
dovolují dělení velkých úloh na menší = dekompozice
Podprogramy dovolují dělení velkých úloh na menší = dekompozice Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012
Obecná informatika Přednášející Putovních přednášek Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Podzim 2012 Přednášející Putovních přednášek (MFF UK) Obecná informatika Podzim 2012 1 / 18
2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5
Obsah Obsah 1 Řídicí struktury 1 2 Podmínka 1 2.1 Podmínka typu case......................... 2 3 Příkaz skoku 3 4 Cykly 4 4.1 Cyklus s podmínkou na začátku................... 4 4.2 Cyklus s podmínkou
for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }
5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu
59. ročník Matematické olympiády 2009/2010
59. ročník Matematické olympiády 2009/2010 Úlohy ústředního kola kategorie P 1. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Řešení každé úlohy pište na samostatný list papíru. Při soutěži
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
Binární soubory (datové, typované)
Binární soubory (datové, typované) - na rozdíl od textových souborů data uložena binárně (ve vnitřním tvaru jako v proměnných programu) není čitelné pro člověka - všechny záznamy téhož typu (může být i
Souhrn Apendixu A doporučení VHDL
Fakulta elektrotechniky a informatiky Univerzita Pardubice Souhrn Apendixu A doporučení VHDL Práce ke zkoušce z předmětu Programovatelné logické obvody Jméno: Jiří Paar Datum: 17. 2. 2010 Poznámka k jazyku
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
Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).
JAZYK PASCAL ÚVOD materiály pro studenty Jiráskova gymnázia v Náchodě (verze 2005-10-28) RNDr Jan Preclík, PhD preclik@gymnachodcz Jazyk Pascal byl navržen profesorem curyšské univerzity Niklausem Wirthem
Programy na PODMÍNĚNÝ příkaz IF a CASE
Vstupy a výstupy budou vždy upraveny tak, aby bylo zřejmé, co zadáváme a co se zobrazuje. Není-li určeno, zadáváme přirozená čísla. Je-li to možné, používej generátor náhodných čísel vysvětli, co a jak
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
Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;
Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky
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
Ú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) -
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)
II. Úlohy na vložené cykly a podprogramy
II. Úlohy na vložené cykly a podprogramy Společné zadání pro příklady 1. - 10. začíná jednou ze dvou možností popisu vstupních dat. Je dána posloupnost (neboli řada) N reálných (resp. celočíselných) hodnot.
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
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í
NPRG030 Programování I, 2015/16 1 / :25:32
NPRG030 Programování I, 2015/16 1 / 21 22. 10. 2015 13:25:32 Podprogramy Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X
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ÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Řídicí struktury. alg3 1
Řídicí struktury Řídicí struktura je programová konstrukce, která se skládá z dílčích příkazů a předepisuje pro ně způsob provedení Tři druhy řídicích struktur: posloupnost, předepisující postupné provedení
Pointery II. Jan Hnilica Počítačové modelování 17
Pointery II 1 Pointery a pole Dosavadní způsob práce s poli zahrnoval: definici pole jakožto kolekce proměnných (prvků) jednoho typu, umístěných v paměti za sebou int pole[10]; práci s jednotlivými prvky
DUM 06 téma: Tvorba makra pomocí VBA
DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie
- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.
Základní symboly - písmena A B C Y Z a b c y z - číslice 0 1 2 9 - speciální symboly + - * / =., < > = a další - klíčová slova and array begin case const a další Klíčová slova jsou chráněnými útvary,
PODPROGRAMY PROCEDURY A FUNKCE
PODPROGRAMY PROCEDURY A FUNKCE Programy bez podprogramů Příklady: a) Napište program, který na obrazovku nakreslí čáru složenou ze znaků pomlčka. program Cara; b) Napište program, který na obrazovku nakreslí
Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost
Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,
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 -
Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy
Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou
NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č
NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č.404 http://ksvi.mff.cuni.cz/~holan/ Tomas.Holan@mff.cuni.cz NPRG030 Programování I, 2014/15 1 / 37 6. 10. 2014 11:42:59 NPRG030 Programování I,
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!
Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false
Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární
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á
6 Příkazy řízení toku
6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní
1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
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
Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2
* násobení maticové Pro čísla platí: Pro matice - násobení inverzní maticí inv inverzní matice A -1 k dané matici A je taková matice, která po vynásobení s původní maticí dá jednotkovou matici. Inverzní
Sada 1 - Základy programování
S třední škola stavební Jihlava Sada 1 - Základy programování 07. Základní příkazy vstup a výstup hodnot Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284
Rekurze. Pavel Töpfer, 2017 Programování 1-8 1
Rekurze V programování ve dvou hladinách: - rekurzivní algoritmus (řešení úlohy je definováno pomocí řešení podúloh stejného charakteru) - rekurzivní volání procedury nebo funkce (volá sama sebe přímo
0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Lineární rovnice o 2 neznámých Definice 011 Lineární rovnice o dvou neznámých x, y je rovnice, která může být vyjádřena ve tvaru ax + by = c, kde
Lekce 01 Úvod do algoritmizace
Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním
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
[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici
[1] Determinant je číslo jistým způsobem charakterizující čtvercovou matici det A = 0 pro singulární matici, det A 0 pro regulární matici používá se při řešení lineárních soustav... a v mnoha dalších aplikacích
Závěrečná zkouška z informatiky 2011
Závěrečná zkouška z informatiky 2011 1) Číslo A je v dvojkové soustavě a má hodnotu 1101011. Číslo B je v šestnáctkové soustavě a má hodnotu FF3. Vypočítejte : A * B a výsledek napište v desítkové soustavě.
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í
Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu
1 Podklady předmětu pro akademický rok 2006/2007 Radim Farana Obsah 2 Obsah předmětu, Požadavky kreditového systému, Datové typy jednoduché, složené, Programové struktury, Předávání dat. Obsah předmětu
Časová a prostorová složitost algoritmů
.. Časová a prostorová složitost algoritmů Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Hodnocení algoritmů Programovací techniky Časová a prostorová
VISUAL BASIC. Přehled témat
VISUAL BASIC Přehled témat 1 ÚVOD DO PROGRAMOVÁNÍ Co je to program? Kuchařský předpis, scénář k filmu,... Program posloupnost instrukcí Běh programu: postupné plnění instrukcí zpracovávání vstupních dat
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
Základy algoritmizace a programování
Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 21. září 2009 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Organizace předmětu Přednášky 1. 5. Základní
Jazyk C# a platforma.net
Jazyk C# a platforma.net Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe jazyka C# - 1. část BI-DNP Evropský sociální fond
KTE / PPEL Počítačová podpora v elektrotechnice
KTE / PPEL Počítačová podpora v elektrotechnice Ing. Lenka Šroubová, Ph.D. email: lsroubov@kte.zcu.cz http://home.zcu.cz/~lsroubov 3. 10. 2012 Základy práce s výpočetními systémy opakování a pokračování
Sada 1 - Základy programování
S třední škola stavební Jihlava Sada 1 - Základy programování 04. Datové typy, operace, logické operátory Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284
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
Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).
7 Barevnost grafu Definice 71 Graf G se nazývá k-obarvitelný, jestliže každému jeho uzlu lze přiřadit jednu z barev 1 k tak, že žádné dva sousední uzly nemají stejnou barvu Definice 72 Nejmenší přirozené
Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
2 Strukturované datové typy 2 2.1 Pole... 2 2.2 Záznam... 3 2.3 Množina... 4
Obsah Obsah 1 Jednoduché datové typy 1 2 Strukturované datové typy 2 2.1 Pole.................................. 2 2.2 Záznam................................ 3 2.3 Množina................................
Více o konstruktorech a destruktorech
Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení
CZ.1.07/1.5.00/
Celá čísla Celočíselný typ má označení INTEGER. Kromě tohoto základního jsou k dispozici ještě další celočíselné typy, které uvádí následující tabulka. Každý typ umožňuje definovat určitý rozsah celých
Překladač a jeho struktura
Překladač a jeho struktura Překladače, přednáška č. 1 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 23. září 2008 Definice
5 Orientované grafy, Toky v sítích
Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost
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
Programujeme v softwaru Statistica
Programujeme v softwaru Statistica díl druhý Newsletter Statistica ACADEMY Téma: Programování, makra, skripty Typ článku: Návody V tomto článku si ukážeme další možnosti při psaní maker v softwaru Statistica.
Číselné charakteristiky a jejich výpočet
Katedra ekonometrie, FVL, UO Brno kancelář 69a, tel. 973 442029 email:jiri.neubauer@unob.cz charakteristiky polohy charakteristiky variability charakteristiky koncetrace charakteristiky polohy charakteristiky
Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program
Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup
Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.
Přiřazovací příkaz V := E, V jednoduchá nebo indexovaná proměnná, E výraz, jehož typ je kompatibilní podle přiřazení s typem proměnné V. 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.
Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:
Plán předmětu Název předmětu: Algoritmizace a programování (PAAPK) Školní rok: 2007/2008 Forma studia: Kombinovaná Studijní obory: DP, DI, PSDPI, OŽPD Ročník: I Semestr: II. (letní) Typ předmětu: povinný
Aritmetické operace a obvody pro jejich realizaci
Kapitola 4 Aritmetické operace a obvody pro jejich realizaci 4.1 Polyadické číselné soustavy a jejich vlastnosti Polyadické soustavy jsou určeny přirozeným číslem z, kterému se říká základ nebo báze dané
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é
Dijkstrův algoritmus
Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované
IB112 Základy matematiky
IB112 Základy matematiky Řešení soustavy lineárních rovnic, matice, vektory Jan Strejček IB112 Základy matematiky: Řešení soustavy lineárních rovnic, matice, vektory 2/53 Obsah Soustava lineárních rovnic