Distanční opora předmětu: Programování v jazyce C Tématický blok č. 2: Proměnná, výraz, příkaz, podmínka, cyklus Autor: RNDr. Jan Lánský, Ph.D.

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Distanční opora předmětu: Programování v jazyce C Tématický blok č. 2: Proměnná, výraz, příkaz, podmínka, cyklus Autor: RNDr. Jan Lánský, Ph.D."

Transkript

1 Distanční opora předmětu: Programování v jazyce C Tématický blok č. 2: Proměnná, výraz, příkaz, podmínka, cyklus Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Proměnné 1.1 Deklarace a inicializace proměnných 1.2 Lokální proměnné 1.3 Globální proměnné 1.4. Předávání parametrů funkcí hodnotou 2 Motivační příklad: Malá násobilka 3 Výraz 4 Příkaz 4.1 Podmíněný příkaz if 4.2 Vnořování podmíněných příkazů 4.3 Vícenásobné větvení switch 5 Cykly 5.1 Cyklus while 5.2 Cyklus for 5.3 Ukončení cyklu break 5.4 Ukončení jedné iterace continue 6 Příkaz skoku goto Studijní cíle Cíle nutné k zahájení studia dalšího tématického bloku Další cíle Znát klíčové pojmy tohoto tématického bloku (alespoň pasivní znalost je podmínkou pro studium dalších bloků). Ve svých programech umět aktivně používat příkazy if, for, while, včetně jejich vzájemného zanoření. Ve svých programech umět aktivně využívat lokální proměnné a parametry funkcí. Podle slovního zadání umět napsat a odladit jednoduchý program pracující se vstupem velikosti několik celých čísel (tedy bez použití řetězců a polí). Ve svých programech umět aktivně používat příkazy switch, break, continue. Umět definovat výraz a příkaz. Pasivní znalost existence příkazu goto Čas potřebný ke studiu 1-3 hodiny na prostudování výukových textů + zodpovězení otázek k rekapitulaci 2-6 hodiny na vypracování modelových úloh na PC 1-3 hodiny na praktické zopakování učiva na PC ( v jiný den)

2 30 minut na (znovu)zodpovězení otázek k rekapitulaci (v jiný den) 2-8 hodin vypracování úlohy POT 1 Časy jsou hodně individuální a jsou závislé na míře znalostí z předmětu Úvod do programování a Programování a případných programátorských zkušenostech z jiných jazyků. Úvod V tomto bloku probereme následující témata. Naučíme se ve svých programech používat lokálních proměnných a vysvětlíme si mechanizmus předávání parametrů funkcí. Ukážeme si i jak deklarovat globální proměnné. Vysvětlíme si pojmy výraz a příkaz, naučíme se vytvářet a správně používat složené příkazy. Probereme problematiku podmíněných příkazů, vícenásobného větvení a cyklů. Zaměříme si i na časté chyby při psaní zdrojového kódu a prevenci proti nim. Výkladová část Vysvětlivky Červený text Porušením nebo opomenutím takto označených pravidel vznikají těžko odladitelné chyby (zejména pro začínající programátory). Modrý text Doporučení jak programovat v praxi. Často prevence závažných chyb. 1 Proměnné Proměnná je místo v paměti, kde je uložena nějaká informace ( = hodnota proměnné). Každá proměnná má svůj název, pomocí kterého s ní pracujeme. Proměnná má také svůj typ, který udává, jak hodnotu proměnné ( = obsah paměti) interpretovat. Typ proměnné může být například celé číslo či reálné číslo. 1.1 Deklarace a inicializace proměnných Proměnné se deklarují uvedením názvu datového typu následovaného jménem proměnné. Deklarace proměnné končí středníkem. Na slajdu č. 24 v zeleném rámečku vidíme deklaraci několika proměnných. Například zápis int p; deklaruje proměnnou typu celé číslo s názvem p. Můžeme hromadně deklarovat i více proměnných jednoho typu, pokud jejich názvy oddělíme čárkou. Například zápis int q, r; deklaruje dvě proměnné q a r typu celé číslo. Při deklaraci proměnné můžeme určit její počáteční hodnotu (= inicializovat proměnnou), pokud za jejím jménem následuje operátor = a hodnota. Zápis int s = 5; například deklaruje proměnnou s typu celé číslo, která je inicializována na hodnotu 5. Deklarovat můžeme více proměnných najednou a zároveň jednu nebo některé z nich inicializovat. Například zápis int x, z = 0, y; deklaruje proměnné x, z a y typu celé číslo, navíc je proměnná z inicializována na hodnotu 0.

3 1.2 Lokální proměnné V jazyce C se lokální proměnné deklarují na začátku těla funkce, ihned po otevíracích složených závorkách. Mezi deklaracemi proměnných nesmí být žádný příkaz. V jazyku C++ lze proměnné deklarovat kdekoliv v těle funkce. Přestože používáme překladač C++, budeme se snažit dodržovat deklarace podle jazyka C a deklarovat proměnné na začátku těla funkce. Lokální proměnnou můžeme používat pouze v těle funkce, kde je deklarována, při pokusu o její použití mimo tělo této funkce kompilátor zahlásí chybu neznámý identifikátor. V různých funkcích můžeme používat stejný název proměnné. Velmi často se ve více funkcích používá název proměnné i pro řídící proměnnou cyklu. Lokální proměnná existuje jen po dobu běhu funkce. Po skončení běhu funkce je hodnota lokální proměnné nenávratně ztracena. Pokud lokální proměnné v jazyku C neurčíme explicitně inicializační hodnotu, je její hodnota náhodná. Chceme pracovat pouze s inicializovanými proměnnými, a proto z lokální proměnné můžeme číst hodnotu teprve poté, co byla tato proměnná buďto explicitně zinicializována při deklaraci, a nebo byla do ní nějaká hodnota přiřazena předchozími příkazy. Toto pravidlo se dá zjednodušit. Pokud se proměnná vyskytla v nějakém příkazu či deklaraci nalevo od operátoru =, smíme ji pak použít v následujících příkazech i napravo od operátoru =. Velmi často lidé mylně předpokládají, že lokální proměnné budou samy od sebe inicializovány hodnotou nula a s touto informací pracují. Při ladění programu se pak obvykle objevují zcela nesmyslná čísla (v případě proměnné typu int se jedná o čísla v řádu stovek milionů). Na slajdu č. 24 na příkladu v zeleném rámečku vidíme na posledním řádku výraz z+x. Proměnná z má hodnotu 0, zatímco proměnné x, zatím žádná hodnota nebyla přiřazena, a x tedy obsahuje náhodnou hodnotu. Výsledkem celého výrazu bude náhodná hodnota. Tento výraz následuje za return, proto celá funkce vrací náhodnou hodnotu. 1.3 Globální proměnné Globální proměnné se deklarují mimo těla funkcí. Pro lepší přehlednost se globální proměnné ve zdrojovém souboru obvykle deklarují úplně na jeho začátku. Globální proměnné jsou viditelné ( = můžeme s nimi pracovat) ve všech funkcích. Globální proměnné se inicializují při startu programu hodnotou nula, nebo inicializační hodnotou použitou při deklaraci globální proměnné. Globální proměnná zaniká pouze s koncem celého programu. Pokud hodnotu globální proměnné modifikujeme v těle nějaké funkce, je tato změna trvalá a nezmizí s koncem běhu funkce. Na slajdu č. 27 vidíme použití globální proměnné g. Zkuste si slajd prohlédnout a určit, co bude návratovou hodnotou funkce main. Až budete mít odpověď, můžete pokračovat dál ve čtení. Ve funkci fce do proměnné g přičítáme hodnotu z*x, kde z je lokální proměnná a x je parametr funkce. Funkce fce je dvakrát zavolána z funkce main. Po jejím prvním volání bude v g hodnota 5, po druhém volání 11. Hodnota proměnné g bude i návratovou hodnotou programu (opět 11). Na slajdu si můžete zopakovat i učivo minulého tématického bloku: formální a skutečný parametr funkce.

4 Globální proměnné by jsme měli používat pouze ve výjimečných případech, například pro sdílená data, se kterými pracuje většina funkcí programu. Dalším dobrým důvodem může být ladění programu, pokud do globální proměnné ukládáme ladící data (například počet průchodů vybranou funkcí či velikost celkově alokované paměti). Každý program lze napsat bez použití globálních proměnných, a to by měl být náš cíl. Jsou programovací jazyky (například Java), kde globální proměnné neexistují Předávání parametrů funkcí hodnotou V jazyku C se všechny parametry funkcí předávají hodnotou. Můžeme si představit, že formální parametry funkce se chovají jako lokální proměnné inicializované skutečnou hodnotou parametru, se kterou byla funkce zavolána. Skutečné parametry funkce se tedy pouze okopírují a my pracujeme s kopiemi místo původních hodnot. Hodnoty parametrů funkce můžeme tedy libovolně modifikovat, ale změny se projeví pouze uvnitř těla funkce. Ve chvíli kdy funkce skončí, všechny lokální proměnné zanikají a s nimi i tyto kopie skutečných parametrů, se kterými jsme pracovali. Na slajdu č. 26 vidíme neúspěšný pokus o napsání funkce swap, která by prohodila mezi sebou hodnoty svých dvou parametrů. Algoritmus použitý v těle funkce je v pořádku, provádí výměnu hodnot parametrů x a y s použitím jedné pomocné lokální proměnné pom. V čem je tedy problém? Zkusíme si tento kus kódu vytrasovat ( = projít v pořadí v jakém se vykonávají jednotlivé příkazy). Z funkce fce se volá funkce swap se skutečnými parametry a a b. Po zavolání funkce swap se hodnoty skutečných parametrů okopírují do lokálních proměnných, které vzniky z formálních parametrů. Do x se přiřadí hodnota proměnná a, tedy 1. Do y se přiřadí hodnota proměnná b, tedy 2. Nyní se vykoná tělo funkce swap a hodnoty v x a y se správně vymění. V x je hodnota 2, v y je hodnota 1. Funkce swap skončí a zaniknou její lokální proměnné, mezi nimi i x a y. Výměna skutečně proběhla, ale pouze na kopiích x a y, proměnné a a b zůstaly nezměněny. Hodnota, která se v dalším příkazu spočítá do proměnné c je tedy 4. nikoliv 5 jak by jsme na první pohled čekali. Může se nám zdát nelogické, že takto předávání parametrů funkcí funguje. Díky kopírování hodnot parametrů však můžeme funkci swap zavolat i přímo s parametry 1 a 2 (a ne jen přes proměnná a a b). Pokud by jsme chtěli, aby se modifikovaná hodnota parametru propagovala do volající funkce (= parametr předávaný odkazem), musíme použít mechanizmy ukazatelů nebo referencí, které budeme probírat v pozdějších tématických blocích. 2 Motivační příklad: Malá násobilka Na slajdu č. 25 vidíme už trochu složitější příklad. V klidu si ho prohlédněte a zkuste popsat, co program přesně dělá. Zkuste, aby váš popis byl jednoznačný a úplný. Všimněme si, že funkce main je zde uvedena bez svých parametrů, které slouží ke zpracování parametrů programu zadaných z příkazové řádky. Na slajdech budeme parametry funkce main vynechávat z důvodu úspory místa. Ve svých programech je nevynechávejte, protože se nám časem budou hodit. Ve funkci main máme deklarovanou lokální proměnou cislo, inicializovanou na hodnotu 7. Hodnota této proměnné je použita jako skutečný parametr funkce vynásob, se kterým je tato funkce zavolána. Funkce main končí vrácením hodnoty

5 0, tedy oznámením operačnímu systému, že vše v programu proběhlo v pořádku (dle našeho názoru). Na prvním řádku vidíme použití direktivy #include, pro vložení hlavičkového souboru studio.h, v němž se nachází hlavička funkce printf. Hlavička funkce vynasob je uvedena na dalším řádku. Funkce vrací návratovou hodnotu typu celé číslo a má jeden formální parametr c také typu celé číslo. Ve funkci jsou definovány dvě lokální celočíselné proměnné i a v, proměnná i má inicializační hodnotu 1. Na dalších řádcích vidíme použity dvě nové syntaktické konstrukce (podmínku if a cyklus while), které si probereme velmi podrobně v dalších kapitolách tohoto textu. V podmínce následující po klíčovém slovu if testujeme, zda parametr c, není z intervalu [1,10]. K tomu jsme použili disjunkci ( = logické nebo) dvou podmínek c < 1 a c > 10. Všimněme si že podmínka uvedená za if musí být v závorce bez ohledu na její složitost. Pokud parametr c není z intervalu [1,10], podmínka je splněná a vykoná se její tělo, příkaz return -1;. Tímto příkazem funkce končí. Funkce vynásob odmítá zpracovávat hodnoty parametru c, které nejsou z intervalu [1,10]. Následuje cyklus while, jehož tělo se vykonává, dokud je platná podmínka uvedená v závorce, v našem případě hodnota proměnné i je menší nebo rovna 10. V těle cyklu jsou tři příkazy. Nejprve počítáme hodnotu proměnné v jako i*c. Poté tiskneme na standardní výstup (nejčastěji obrazovku) jeden řádek malé násobilky (například při prvním průchodu cyklem vytiskneme 1 * 7 = 7). Poslední řádek v těle cyklu zvyšuje hodnotu proměnní i o 1. Tento cyklus se vykoná celkem desetkrát a vypíše nám všechny násobky parametru c (v našem případě 7). Po skončení while cyklu následuje ukončení funkce vynasob s návratovou hodnotou 0. Zkusme se zamyslet, jak by jsme mohli program zpřehlednit či vylepšit jeho funkčnost. Zde jsou tři nápady. Možná nás překvapilo použití while cyklu, když jsme znali přesný počet iterací cyklu. Použití for cyklu by program zpřehlednilo. Ve funkci main by před return 0; mohla být zavolána funkce getch, abychom měli šanci si přečíst, co program vypsal. Ve funkci main by return místo hodnoty 0 mohl vracet návratovou hodnotu funkce vynasob, kterou teďka ignorujeme. Využili bychom toho,že funkce vynasob oznamuje, zda proběhla v pořádku, či ne. 3 Výraz Podle normy jazyka C je výraz posloupnost operací a operátorů specifikující výpočet hodnoty. Někomu se může zdát přehlednější následující rekurzivní definice. A) Proměnná nebo hodnota jsou výraz. (příklady: 1, "ahoj") B) Posloupnost unární operátor a výraz je opět výraz (příklady: -1, -x, *p ) C) Posloupnost výraz, binární operátor a výraz je opět výraz (příklady: -1*a, 3-x, 7+4*a)

6 D) Volání funkce je výraz, pokud všechny její parametry jsou výrazy. (příklady: sin(x), printf("ahoj"), fce(2+sin(x)*-6,1,"baf"), fce2()) E) Pomocí závorek () můžeme ve výrazu upřesnit pořadí vykonávání operátorů (příklady: (2+3)*4, -(2+sin(x))). Každý výraz má svojí hodnotu a datový typ. V případě, že výrazem je volání funkce, je hodnotou výrazu návratová hodnota volané funkce. Na slajdu č. 28 vlevo v zeleném rámečku vidíme několik dalších příkladu výrazů. Všimněme si, že výraz může mít i nějaký vedlejší efekt. Například výraz printf("ahoj") má vedlejší efekt, že vytiskne na standardní výstup řetězec ahoj. Hodnotou tohoto výrazu je samozřejmě návratová hodnota volání funkce, tedy počet vytisknutých znaků, číslo 4. Přiřazovací výraz je také výrazem, jeho hodnotou je přiřazovaná hodnota. Je možné i vícenásobné použití operátoru přiřazení v rámci jednoho výrazu, například při inicializaci více lokálních proměnných na stejnou hodnotu (příklad a = b = 0). Toho, že přiřazovací výraz má svoji hodnotu, se velmi často využívá i v následující konstrukci: if (( x = fce()!= 0) Na jednom řádku do proměnné x uložíme hodnotu volání funkce a tuto hodnotu otestujeme například na nerovnost od nuly. 4 Příkaz (Jednoduchý) příkaz je výraz ukončený středníkem. Složený příkaz vznikne pokud několik příkazů uzavřeme do složených závorek { a }. Na rozdíl od jazyka Pascal nemůžeme v jazyku C u posledního příkazu ve složeném příkazu vynechat středník. V jazyku C každý jednoduchý příkaz končí středníkem bez ohledu na jeho postavení ve zdrojovém kódu (tedy i pokud je posledním příkazem před else, nebo posledním příkazem ve složené závorce. Složený příkaz může být i prázdný {}, tedy neobsahovat žádný příkaz. Příklady výrazů vidíme na slajdu č. 29 vlevo, příklad na složený příkaz vidíme vpravo Příkazem jsou i programové konstrukce if, if-else, switch, while, do-while, for, break, continue, return, goto, které si probereme nyní podrobněji. 4.1 Podmíněný příkaz if Na slajdu č. 30 nahoře vidíme formální syntaktický zápis podmíněného příkazu. Po klíčovém slovu if následuje v kulatých závorkách výraz (ten označujeme jako podmínka). Pokud je podmínka splněna, pak se vykoná příkaz, který je za ní (za zavírací kulatou závorkou) uveden ( = kladná větev). Podmíněný příkaz může nepovinně pokračovat klíčovým slovem else následovaným příkazem, který se vykoná v případě, že podmínka splněna nebyla ( = else větev). Podmínka za klíčovým slovem if musí být povinně v kulaté závorce, i když je velmi jednoduchá. Podmínka je splněna, když hodnota jejího výrazu je různá od hodnoty nula. Pokud v kladné (či else) větvi máme více příkazů než jeden, je nutné je uzavřít do složených závorek a tak z nich udělat jeden složený příkaz.. Na slajdu č. 30 vlevo na zeleném podkladu vidíme dva podmíněné příkazy. První z nich vytiskne na standardní výstup text OK, pokud hodnota proměnná a je větší než 1. Druhý podmíněný příkaz je ještě doplněn o else větev, která se vykoná když podmínka splněna není, vytiskne se nee.

7 Na slajdu č. 30 vprostředku na červeném podkladu vidíme dvě chybná použití podmíněného příkazu. V obou případech jsme zapomněli uzavřít příkazy, které se mají vykonat při splnění podmínky, do složených závorek, aby se z nich stal jeden složený příkaz. Opravené verze příkladů vidíme na zeleném podkladu, úplně napravo na slajdu. V horním příkladě podmíněný příkaz neobsahuje else větev, tak se tato chyba projeví pouze ve špatném chování programu text OK se bude vypisovat bez ohledu na výsledek vyhodnocení podmínky. Ve spodním příkladě s else větví nepůjde program ani zkompilovat. Kompilátor ohlásí chybu, že nalezl else, který nepatří k žádnému if. Velmi často se chybuje při přidávání příkazů do kladné nebo else větve již existujícího podmíněného příkazu, pokud původně v dané větvi byl pouze jeden příkaz zapomíná se příkazy uzavřít do složených závorek. 4.2 Vnořování podmíněných příkazů Vnořený podmíněný příkaz je označení podmíněného příkazu, který se nachází v kladné větvi jiného podmíněného příkazu. Pokud právě jeden z těchto dvou podmíněných příkazů má else větev, stává se zdrojový kód nepřehledným. Existuje však možnost, jak přehlednost tohoto zdrojového kódu zvýšit. Kladnou větev vnějšího podmíněného příkazu celou uzavřeme do složených závorek, i když by v konkrétním případě uzavřena být nemusela. Na slajdu č. 31 vidíme několik příkladů. Vlevo na červeném podkladu vidíme podle odsazení zdrojového kódu, že else větev měla podle programátora patřit vnějšímu podmíněnému příkazu. V jazyce C platí pravidlo, že else větev patří vždy k nejvíce vnořenému podmíněnému příkazu, z těch co přicházejí v úvahu. Tedy v našem případě else větev patří vnitřnímu podmíněnému příkazu. Vpravo na zeleném podkladu vidíme dvě verze zdrojového kódu, které získáme různým umístěním složených závorek. První verze odpovídá tomu, co si přál programátor podle odsazení zdrojového kódu (nalevo na červeném podkladu). Druhá verze ukazuje, co ve skutečnosti napsal. 4.3 Vícenásobné větvení switch Pokud chceme vykonat různé akce na základě více než dvou možných hodnot (nula, různé od nuly) jednoho výrazu, můžeme použít několik zřetězených podmíněných příkazu if nebo vícenásobné větvení switch, které udělá zdrojový kód přehlednějším. Motivačním příkladem může být funkce, která ve své návratové hodnotě vrací číslo chyby, která při jejím běhu nastala. My chceme podle čísla dané chyby vypsat na obrazovku chybovou hlášku, případně provést další příkazy. Na slajdu č. 32 vlevo vidíme formální syntaktický zápis vícenásobného větvení. Za klíčovým slovem switch v kulaté závorce následuje výraz, podle jehož hodnoty se budeme rozhodovat. Tento výraz musí být celočíselného datového typu. Tělo příkazu switch je uzavřeno ve složených závorkách obsahuje posloupnost příkazů a case návěští. Case návěští je posloupností klíčového slovo case následovaného konkrétní hodnotou a dvojtečkou. Case návěští musí obsahovat právě jednu hodnotu, není povolen interval nebo výčet více hodnot. V těle příkazu switch se může nejvýše jednou vyskytovat defaultní návěští, ale za ním nesmí následovat žádné další case návěští. Default návěští je posloupnost klíčového slova default následovaného dvojtečkou.

8 Postup vyhodnocování výrazu switch je na první pohled poněkud překvapivý. Vyhodnotí se výraz uvedený v kulaté závorce za switch a najde se takové case návěští, jehož hodnotě (hodnotě uvedené za slovem case) se rovná. Pokud žádné takové case návěští nebylo nalezeno a je zde default návěští, bude nalezeným návěštím toto default návěští. Nyní se postupně provedou příkazy následující za nalezeným návěštím až do konce těla switch nebo do nalezení příkazu break. Nebere se ohled na přítomnost dalších návěští. Obvykle chceme, aby se vykonávání příkazů zastavilo před dalším návěštím, umístíme zde tedy příkaz break. Opačná situace, že chceme pokračovat i příkazy uvedenými za dalším návěštím, je tak vzácná, že chybějící příkaz break se vysvětluje komentářem v programu. Pokud chceme více možných hodnot výrazu uvedeného v závorce za switch ošetřit pomocí stejného zdrojového kódu, uvedeme několik case návěští za sebou, aniž by mezi nimi byly příkazy. Příkazy budu teprve za posledním case návěštím. Na slajdu č.32 veprostřed na zeleném podkladu je ukázka zpracování návratové hodnoty funkce, která v ní předává číslo chyby. Tato návratová hodnota je uložena v proměnné errc, jejíž hodnotu pomocí příkazu switch testujeme. Všimněme si důsledného uvádění příkazu break před každým novým návěštím s výjimkou případu -2 a -3, které chceme ošetřit společně. Na slajdu č. 32 vpravo nahoře na červeném podkladu je ukázka zapomenutého příkazu break. U hodnoty 0 se nám vypíše text jak OK tak i text spatne. Příklad napravo dole ukazuje marný pokus o zpracování intervalu. 5 Cykly Cyklus je tvořen klíčovým slovem určujícím jeho typ a podmínkou určující zda a jak dlouho se bude vykonávat tělo cyklu. Tělo cyklu je tvořeno jedním příkazem (obvykle složeným). Každé vykonání těla cyklu se nazývá iterace cyklu. Přestože máme tři syntaktické konstrukce jak cyklus zapsat (while, do-while a for), dají se všechny tyto zápisy navzájem mezi sebou převést. Cyklus, který neobsahuje podmínku, nebo obsahuje podmínku, která je vždy splněna je nekonečným cyklem. Jeho tělo se bude stále opakovat. Nejčastěji takový cyklus vznikne chybou programátora a běžící aplikaci obsahující tento nekonečný cyklus jde potom ukončit jen násilně prostředky operačního systému. Občas se ale nekonečné cykly vytvářejí úmyslně a předpokládá se jejich ukončení uvnitř cyklu pomocí příkazu break (viz 5.3). 5.1 Cyklus while Po klíčovém slovu while následuje v kulatých závorkách podmínka, při jejímž splnění se vykoná tělo cyklu tvořené jedním příkazem (obvykle složeným). Po vykonání těla cyklu se opět vyhodnotí podmínka a rozhodne se o dalším vykonání těla cyklu atd. Vyhodnocování podmínky se řídí stejnými pravidly, jako u podmíněného příkazu if. Podmínka je splněna, když hodnota jejího výrazu je různá od nuly. Podmínka musí být povinně v kulaté závorce bez ohledu na její složitost.

9 Existuje i obdoba repeat cyklu z Pascalu. Po klíčovém slovu do následuje tělo cyklu, po kterém následuje klíčové slovo while a podmínka v kulatých závorkách. V tomto případě se nejdříve vykoná tělo a teprve poté se testuje podmínka, zda budeme pokračovat další iterací. Na slajdu č. 33 vidíme tři ukázky zdrojového kódu. Nejprve se podíváme na příklad vlevo nahoře. Zkuste si rozmyslet, jaká bude hodnota proměnné a po skončení cyklu v závislostí na její počáteční hodnotě? Předpokládejme, že typ proměnné a je celočíselný. Pokud máte rozmyšlenou odpověď, můžete pokračovat dále ve čtení. Pokud je hodnota proměnné a nula nebo záporná, pak se cyklus nevykoná ani jednou a její hodnota zůstane nezměněna. Pokud je hodnota a například , tak se její hodnota v každé iteraci cyklu sníží na polovinu (celočíselné dělení dvěma). Tedy postupně a bude nabývat hodnot 7 982, 3 991, 1995, 997, 498, 249, 124, 62, 31, 15, 7, 3, 1. Všimněme si, že hodnota každého kladného čísla v cyklu postupně klesá a zastaví se na hodnotě jedna. Podívejme se na příklad vlevo dole. Předchozí příklad jsme obohatili o volání funkce fce se skutečným parametrem a uvnitř těla cyklu. Zkuste odpovědět na tu samou otázku jako v minulém příkladě. Jaká bude hodnota proměnné a na konci cyklu? Potřebujete ke své odpovědi vidět tělo funkce fce? Správná odpověď je stejná jako v minulém příkladě. Protože parametr a funkce fce byl předán hodnotou (viz kapitola 1.4), nemůže mít volání funkce fce vliv na hodnotu proměnné a v těle cyklu, bez ohledu na tělo funkce fce. Přiklad vpravo demonstruje použití do-while cyklu. Minulý příklad jsme modifikovali tak, že cyklus se vykoná alespoň jednou. Uhodnete, jak se změní odpověď na otázku, jaká bude hodnota proměnné a na konci cyklu? Pokud je hodnota proměnné a menší než 2, pak se celočíselně vydělí hodnotou dvě. V opačném případě se hodnota proměnné a po skončení cyklu změní na Cyklus for Na slajdu č. 34 vlevo nahoře vidíme syntaktický zápis for cyklu. Po klíčovém slovu for následuje kulatá závorka, ve které jsou tři výrazy (inicializace, podmínka a inkrement) navzájem oddělené středníky. Po kulaté závorce následuje příkaz (obvykle složený), který tvoří tělo cyklu. Velmi často lidé chybně mezi jednotlivými výrazy nahrazují operátor středníku operátorem čárky, případně zapomínají na kulatou závorku. Inicializace se provádí pouze jednou a to jako první příkaz před prvním průchodem těla cyklu. Obvykle se zde nastavuje hodnota řídící proměnné cyklu. Podmínka podobně jako ve while cyklu rozhoduje zda se vykoná další iterace těla cyklu. Obvykle se v podmínce porovnává hodnota řídící proměnné cyklu s nějakou konstantou. Po vykonání každé iterace cyklu se provede inkrement, obvykle změna (zvýšení) řídící proměnné cyklu. Následuje pak další test podmínky atd. V těle cyklu for není vhodné modifikovat řídící proměnnou cyklu, zdrojový kód se stává značně nepřehledným. Na slajdu č. 34 vlevo dále vidíme jak lze nahradit libovolný for cyklus while cyklem Vpravo nahoře na slajdu vidíme for cyklus, který postupně zavolá funkce fce se skutečnou hodnotou parametru 0 až 9. Vpravo dole je tento for cyklus nahrazen while cyklem, přesně podle vzoru. Uprostřed slajdu dole je ukázáno, že za inicializaci, podmínku a inkrement lze dosadit libovolný výraz.

10 Cyklem for lze také procházet spojový seznam nebo binární vyhledávací strom. Řídící proměnou cyklu je v těchto případech ukazatel na uzel dané datové struktury. 5.3 Ukončení cyklu break Občas nastane situace, kdy je potřeba cyklus náhle přerušit. Velmi často tak reagujeme na výsledek volání nějaké funkce, která může vrátit chybovou hodnotu. Například pokud v cyklu zapisujeme do souboru a dojde k zaplnění disku a je nám další zápis znemožněn. Toho můžeme dosáhnout modifikací podmínky cyklu, ale tím můžeme znepřehlednit zdrojový kód. Možným řešením je použití příkazu break, který na libovolném místě ukončí právě vykonávaný cyklus. Pokud je tento cyklus zanořen v jiném cyklu, ukončí se jen ten vnitřní cyklus, vnější cyklus pokračuje dál. Na slajdu č. 35 nalevo vidíme for cyklus který v kulatých závorkách obsahuje jen dva středníky. Není to syntaktická chyba, skutečně libovolný z výrazů inicializace, podmínka a inkrement může být prázdný, dokonce všechny tři na jednou. Jedná se o nekonečný cyklus, protože neobsahuje podmínku (je prázdná). V těle cyklus se volá funkci fce a testuje její návratovou hodnotu. Pokud je její návratová hodnota nezáporná tak se vykoná funkce jinafce a pokračuje se další iterací cyklu. Pokud je návratová hodnota funkce fce záporná (příznak, že při jejím volání došlo k chybě), ukončíme cyklus příkazem break. 5.4 Ukončení jedné iterace continue Někdy nastane situace, že nepotřebujeme ukončit cyklus celý, ale pouze právě vykonávanou iteraci. Příkaz continue přeskočí všechny nevykonané příkazy v aktuální iteraci cyklu a pokud je stále splněna podmínka cyklu, zahájí iteraci následující. Na slajdu č. 35 napravo vidíme příklad použití příkazu continue. Pokud návratová hodnota funkce get, ukončujeme aktuální iteraci cyklu příkazem continue (přeskakujeme příkaz. kde bychom tou nulou vynásobili proměnou n, která se chová jako řídící proměnná cyklu). V další iteraci cyklu získáme další návratovou hodnotu funkce get. Prohlédněte si znovu příklad na slajdu č. 35 napravo a rozhodněte za jakých podmínek je cyklus nekonečný. Nápověda: zajímají nás návratové hodnoty funkce get. Pokud máte rozmyšlenou odpověď, můžete pokračovat dále ve čtení. Cyklus skončí ve chvíli, kdy hodnota proměnné n dosáhne hodnoty nejméně V každé iteraci cyklu se hodnota proměnné n násobí číslem, které je různé od nuly, tedy její hodnota se na první pohled stále pomalu zvětšuje. Pokud funkce get bude vracet pouze hodnoty jedna a nula, tak ovšem hodnota n neporoste a máme nekonečný cyklus. Další problém nastane pokud funkce get vrátí jedno záporné číslo. Hodnota proměnné n se stane zápornou a bude se dále zmenšovat (v absolutní hodnotě sice poroste). Poslední problém představuje přetečení hodnoty proměnné, což v případě násobení je velmi snadné, pokud funkce get vrátí velkou hodnotu. 6 Příkaz skoku goto Příkaz goto slouží ke skoku na libovolné místo v kódu funkce. Příkaz goto je v jazyku C zejména z historických důvodů. Dokáže nahradit podmínku či cyklus. Jeho použití pro tyto účely výrazně znepřehlední zdrojový kód. Není nutné, abychom znali jeho syntax nebo tento příkaz používali..

11 Na slajdu č. 36 vidíte jeden z mála příkladů oprávněného použití příkazu goto k vyskočení ze dvou vnořených for cyklů. Klíčové pojmy Proměnná (název, typ a hodnota; deklarace a inicializace; lokální a globální) Výraz a jeho hodnota Příkaz, složený příkaz, Podmíněný příkaz if, (kladná a else větev, vnořený podmíněný příkaz) Vícenásobné větvení switch (návěští case a default) Cyklus (nekonečný, iterace, tělo, podmínka) While cyklus For cyklus (podmínka, inicializace, inkrement, řídící proměnná) Ukončení cyklu break a continue Příkaz skoku goto Otázky k rekapitulaci Upozornění: odpovědi na některé zde uvedené otázky nelze najít ve studijním textu tohoto tématického bloku. Lze je získat vlastním experimentováním se zdrojovými kódy nebo studiem doporučené literatury. Jaký je rozdíl mezi globální a lokální proměnnou? Co je vhodnější používat? Lze deklarovat více proměnných stejného typu najednou v jedné deklaraci? Jakou hodnotou je inicializována globální proměnná (rozeberte všechny případy)? Jakou hodnotou je inicializována lokální proměnná (rozeberte všechny případy)? Můžeme mít deklarovanou lokální proměnou stejného jména, jako je jméno nějaké globální proměnné? Pokud je to možné, co se stane? Můžeme mít deklarovanou lokální proměnnou shodného jména, jako se jmenuje formální parametr funkce? Pokud je to možné, co se stane? Můžeme mít deklarovanou lokální proměnnou shodného jména, jako se jmenuje skutečný parametr funkce? Pokud je to možné, co se stane? Můžou dvě různé funkce obsahovat lokální proměnou stejného jména? Pokud je to možné, co se stane? Popište předávání parametrů funkce. Co je to výraz, jak se liší od příkazu. V jakých situacích můžeme za příkazem vynechat středník? Může výraz obsahovat operátor =? Jak syntakticky vytvoříme složený příkaz? K čemu slouží? Jak syntakticky vytvoříme podmíněný příkaz? Rozeberte obě dvě varianty. Jaké jsou kladeny požadavky na podmínku v podmíněném výrazu? Co je to vnořování podmíněných příkazů, jaký problém přináší a jak se tento problém řeší? K čemu složí vícenásobné větvení, jak ho syntakticky vytvořím?

12 Jaké jsou kladeny podmínky na výraz, podle jehož hodnoty se rozhodujeme v příkazu switch? Je nutné používat příkaz break uvnitř switch příkazu? Dá se v příkazu switch definovat návěští pro čísla z daného intervalu? V jakých situacích je vyžadováno použití kulatých závorek? (vyjmenujte alespoň 5 případů). Je nutné používat středník u posledního příkazu ve složením příkazu? Je nutné používat středník před else v podmíněném příkazu? Jaké jsou typy cyklů v jazyku C? Jakým způsobem bychom převedli obecný do-while cyklus na while cyklus? Jakým způsobem bychom převedli obecný while cyklus na do-while cyklus? Popište for cyklus, zaměřte se na obsah kulaté závorky. Jakým způsobem bychom převedli obecný for cyklus na while cyklus? Jakými příkazy můžeme přerušit cyklus? Jak se tyty příkazy od sebe liší? Co je to nekonečný cyklus, dá se nějak prakticky využít? Jaké příkazy můžeme příkazem goto nahradit? Je vhodnější použit goto nebo zmíněné příkazy? Své odpovědi zdůvodněte. Můžete přidat i syntaktické zápisy tam, kde je to vhodné. Doporučené příklady k naprogramování 1. Napište program malá násobilka (slaj č. 25) pomocí for cyklu. 2. Napište program, který pro daný měsíc (stačí jen do září) v roce zadaný číslem vypíše jeho název. 3. Napište program, který ze standardního vstupu čte tak dlouho text, dokud není zadáno písmeno X. 4. Napište program, který vygeneruje všechny textové řetězce délky X=3 z písmen T G C A. 5. Napište program, který pro dané číslo určí všechny jeho dělitele. 6. Napište program, který určí všechna prvočísla menší než dané číslo. 7. Program z (4) upravte pro obecné X. 8. Napište funkci, která vypíše na obrazovku hodnoty svých parametrů (typu celé číslo) setříděné vzestupně. Začněte se třemi parametry, obtížnost úlohy jde zvýšit čtyřmi nebo dokonce pěti parametry. Studijní literatura Výklad často odkazuje na slajdy (ve formátu.ppt), které je vhodné si vytisknout. Je vhodné si pořídit nějakou knihu o programování v C nebo C++. Uvedené příklady knih berte pouze jako inspirativní. Miroslav Virius: Programování v C++ (ČVUT, 2. vydání 2004)

13 Jesse Liberty, Bradley L. Jones: Naučte se C++ za 21 dní (Computer Press, 2. vydání, 2007) Knihu je dobré číst postupně a vlastním tempem, můžete mít i mírné zpoždění oproti našemu výkladu. Pořadí kapitol v knize neodpovídá úplně přesně pořadí, v jakém učivo probíráme. Tento tématický blok se zaměřte na příkazy if, switch,. while, for. Miroslav Virius: Pasti a propasti jazyka C++ (Brno, 2. vydání 2005) Kapitola 1.1 Příkazy

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

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

Více

MQL4 COURSE. By Coders guru www.forex-tsd.com. -5 Smyčky & Rozhodnutí Part 1

MQL4 COURSE. By Coders guru www.forex-tsd.com. -5 Smyčky & Rozhodnutí Part 1 MQL4 COURSE By Coders guru www.forex-tsd.com -5 Smyčky & Rozhodnutí Part 1 Vítejte v páté lekci mého kurzu MQL4. Předchozí lekci si můžete stáhnout z tohoto odkazu: http://forex-tsd.com /attachment.php?attachmentid=399

Více

Z. Kotala, P. Toman: Java ( Obsah )

Z. Kotala, P. Toman: Java ( Obsah ) Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný typem proměnné - ukazatel je tedy adresa společně s

Více

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

Více

2 Datové typy v jazyce C

2 Datové typy v jazyce C 1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,

Více

1. Téma 03 - Rozhodování

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

Více

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 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 formátovanému výstupu,

Více

Vstupní požadavky, doporučení a metodické pokyny

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

Více

Datové typy strana 29

Datové typy strana 29 Datové typy strana 29 3. Datové typy Jak již bylo uvedeno, Java je přísně typový jazyk, proto je vždy nutno uvést datový typ datového atributu, formálního parametru metody, návratové hodnoty metody nebo

Více

Algoritmy a datové struktury

Algoritmy a datové struktury Algoritmy a datové struktury 1 / 34 Obsah přednášky Základní řídící struktury posloupnost příkazů podmínka cyklus s podmínkou na začátku cyklus s podmínkou na konci cyklus s pevným počtem opakování Jednoduchá

Více

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 WSH Windows Script Hosting OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 Co je skript? Skriptování nástroj pro správu systému a automatizaci úloh Umožňuje psát skripty jednoduché interpretované programové

Více

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace

Více

Prezentace a vysvětlení programového prostředí NXC

Prezentace a vysvětlení programového prostředí NXC Úvod Další jazyk, který je možno použít pro programování NXT kostky je NXC Not exatly C Na rozdíl od jazyku NXT-G, kde jsme vytvářeli program pomocí grafických prvků přesněji řečeno pomocí programovacích

Více

Inovace bakalářského studijního oboru Aplikovaná chemie http://aplchem.upol.cz

Inovace bakalářského studijního oboru Aplikovaná chemie http://aplchem.upol.cz Inovace bakalářského studijního oboru Aplikovaná chemie http://aplchem.upol.cz CZ.1.07/2.2.00/15.0247 Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. Tvorba

Více

Kód. Proměnné. #include <iostream> using namespace std; int main(void) { cout << "Hello world!" << endl; cin.get(); return 0; }

Kód. Proměnné. #include <iostream> using namespace std; int main(void) { cout << Hello world! << endl; cin.get(); return 0; } Jazyk C++ Jazyk C++ je nástupcem jazyka C. C++ obsahuje skoro celý jazyk C, ale navíc přidává vysokoúrovňové vlastnosti vyšších jazyků. Z toho plyne, že (skoro) každý platný program v C je také platným

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++ Globální konstantní proměnné Konstantní proměnné specifikujeme s klíčovým slovem const, tyto konstantní proměné

Více

Programování v jazyce C pro chemiky (C2160) 5. Čtení dat ze souboru

Programování v jazyce C pro chemiky (C2160) 5. Čtení dat ze souboru Programování v jazyce C pro chemiky (C2160) 5. Čtení dat ze souboru Čtení dat ze souboru FILE *f = NULL; char str[10] = ""; float a = 0.0, b = 0.0; Soubor otevíráme v režimu pro čtení "r" f = fopen("/home/martinp/testdata/test1.txt",

Více

Program a životní cyklus programu

Program a životní cyklus programu Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy

Více

PHP tutoriál (základy PHP snadno a rychle)

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

Více

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

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

Více

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou

Více

Distanční opora předmětu: Databázové systémy Tématický blok č. 4: XML, DTD, XML v SQL Autor: RNDr. Jan Lánský, Ph.D.

Distanční opora předmětu: Databázové systémy Tématický blok č. 4: XML, DTD, XML v SQL Autor: RNDr. Jan Lánský, Ph.D. Distanční opora předmětu: Databázové systémy Tématický blok č. 4: XML, DTD, XML v SQL Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 XML 2 DTD 2.1 Atributy 2.2 Entity 3. XML v SQL Serveru Studijní cíle

Více

Proměnné a datové typy

Proměnné a datové typy Proměnné a datové typy KAPITOLA 2 V této kapitole: Primitivní datové typy Proměnné Opakování Mezi základní dovednosti každého programátora bezesporu patří dobrá znalost datových typů. Ta vám umožní efektivní

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

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

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

Sekvenční a podmíněné provádění

Sekvenční a podmíněné provádění Programování v Bourne shellu Sekvenční a podmíněné provádění Sekvenční provádění znamená vykonávání jednoho příkazu za druhým bez ohledu na okolnosti. Pro oddělení příkazů při sekvenčním provádění se používá

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

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

Výčtový typ strana 67

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

Více

Projekt Obrázek strana 135

Projekt Obrázek strana 135 Projekt Obrázek strana 135 14. Projekt Obrázek 14.1. Základní popis, zadání úkolu Pracujeme na projektu Obrázek, který je ke stažení na http://java.vse.cz/. Po otevření v BlueJ vytvoříme instanci třídy

Více

4.4.2012. Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady

4.4.2012. Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady Základy programování (IZAPR, IZKPR) Přednáška 5 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky Příkazy cyklu -

Více

Kombinované úlohy - cvičení

Kombinované úlohy - cvičení DUM Vyšší odborná škola, Obchodní akademie a Střední odborná škola EKONOM, o. p. s. Algoritmy DUM III/2-T1-1-16 PRG-01A-var1 Téma: Kombinované úlohy cvičení Střední škola Rok: 2012 2013 Varianta: A Zpracoval:

Více

O algoritmech. Výňatek z diplomové práce. Programovací jazyk pro podporu výuky algoritmů

O algoritmech. Výňatek z diplomové práce. Programovací jazyk pro podporu výuky algoritmů O algoritmech Výňatek z diplomové práce Programovací jazyk pro podporu výuky algoritmů Univerzita Hradec Králové - Fakulta informatiky a managementu - Katedra informatiky a kvantitativních metod duben

Více

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39 Programování v C# Hodnotové datové typy, řídící struktury Petr Vaněček 1 / 39 Obsah přednášky Referenční datové typy datové položky metody přístupové metody accessory, indexery Rozhraní Pole 2 / 39 Třídy

Více

Seminář Java II p.1/43

Seminář Java II p.1/43 Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii

Více

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:

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ý

Více

Seminář IVT. MS Excel, opakování funkcí

Seminář IVT. MS Excel, opakování funkcí Seminář IVT MS Excel, opakování funkcí Výuka Opakování z minulé hodiny. Založeno na výsledcích Vašich domácích úkolů, podrobné zopakování věcí, ve kterých děláte nejčastěji chyby. Nejčastější jsou následující

Více

PHP. 1. Úvod do PHP. 2. Základy PHP

PHP. 1. Úvod do PHP. 2. Základy PHP PHP 1. Úvod do PHP Tato přednáška obsahuje úvod do skritpového jazyka PHP. Ten je podobný ostatním jazykům vyšší úrovně, jako je například jazyk C, Pascal, Fortran nebo Java, takže programátoři se zkušeností

Více

Programování v jazyku LOGO - úvod

Programování v jazyku LOGO - úvod Programování v jazyku LOGO - úvod Programovací jazyk LOGO je určen pro výuku algoritmizace především pro děti školou povinné. Programovací jazyk pracuje v grafickém prostředí, přičemž jednou z jeho podstatných

Více

Algoritmy I, složitost

Algoritmy I, složitost A0B36PRI - PROGRAMOVÁNÍ Algoritmy I, složitost České vysoké učení technické Fakulta elektrotechnická v 1.01 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená??

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Dědičnost tříd v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Dědičnost tříd v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Dědičnost tříd v C++ Dědičnost tříd Dědičnost umožňuje vytvářet nové třídy z tříd existujících tak, že odvozené třídy (tzv. potomci) dědí vlastnosti

Více

Programy na PODMÍNĚNÝ příkaz IF a CASE

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

Více

17. Projekt Trojúhelníky

17. Projekt Trojúhelníky Projekt Trojúhelníky strana 165 17. Projekt Trojúhelníky 17.1. Základní popis, zadání úkolu Pracujeme na projektu Trojúhelníky, který je ke stažení na java.vse.cz. Aplikace je napsána s textovým uživatelským

Více

Už známe datové typy pro representaci celých čísel i typy pro representaci

Už známe datové typy pro representaci celých čísel i typy pro representaci Dlouhá čísla Tomáš Holan, dlouha.txt, Verse: 19. února 2006. Už známe datové typy pro representaci celých čísel i typy pro representaci desetinných čísel. Co ale dělat, když nám žádný z dostupných datových

Více

Lokální definice (1) plocha-kruhu

Lokální definice (1) plocha-kruhu Lokální definice (1) syntaxe: (local (seznam definic) výraz) definice jsou dostupné pouze uvnitř příkazu local příklad: (local ( (define Pi 3.1415926) (define (plocha-kruhu r) (* Pi r r)) ) (plocha-kruhu

Více

NP-úplnost problému SAT

NP-úplnost problému SAT Problém SAT je definován následovně: SAT(splnitelnost booleovských formulí) Vstup: Booleovská formule ϕ. Otázka: Je ϕ splnitelná? Příklad: Formule ϕ 1 =x 1 ( x 2 x 3 )jesplnitelná: např.přiohodnocení ν,kde[x

Více

Programování II. Mgr. Monika Pinkasová. Zlepšování podmínek pro využívání ICT ve výuce a rozvoj výuky angličtiny na SPŠei Ostrava

Programování II. Mgr. Monika Pinkasová. Zlepšování podmínek pro využívání ICT ve výuce a rozvoj výuky angličtiny na SPŠei Ostrava Programování II. Mgr. Monika Pinkasová Zlepšování podmínek pro využívání ICT ve výuce a rozvoj výuky angličtiny na SPŠei Ostrava č. projektu CZ.1.07/1.1.07/03.0089 Ostrava 2011 Obor: Informační technologie

Více

- dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h. - jak na vlastní makro:

- dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h. - jak na vlastní makro: 21.4.2009 Makra - dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h - jak na vlastní makro: #define je_velke(c) ((c) >= 'A' && (c)

Více

MySQLi (objektově) Příklad vytvoření instance třídy včetně parametrů pro připojení: $mysqli = new mysqli('localhost', 'login', 'heslo', 'databaze');

MySQLi (objektově) Příklad vytvoření instance třídy včetně parametrů pro připojení: $mysqli = new mysqli('localhost', 'login', 'heslo', 'databaze'); MySQLi (objektově) Rozšíření PHP MySQL - základní rozšíření umožňující práci s MySQL. Doporučuje se ho používat pouze do verze MySQL 4.1.3. I když je funkční i u novějších verzí, neumožňuje využití nových

Více

Výroková logika II. Negace. Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0).

Výroková logika II. Negace. Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0). Výroková logika II Negace Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0). Na konkrétních příkladech si ukážeme, jak se dají výroky negovat. Obecně se výrok dá negovat tak, že před

Více

Úvod do programování. Lekce 5

Úvod do programování. Lekce 5 I N V E S T I C E D O R O Z V O J E V Z D Ě L Á V Á N Í Inovace a zvýšení atraktivity studia optiky reg. č.: CZ.1.07/2.2.00/07.0289 Úvod do programování Lekce 5 Tento projekt je spolufinancován Evropským

Více

2 Strukturované datové typy 2 2.1 Pole... 2 2.2 Záznam... 3 2.3 Množina... 4

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

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

MQL4 COURSE. By Coders guru www.forex-tsd.com. -4 Operace & Výrazy

MQL4 COURSE. By Coders guru www.forex-tsd.com. -4 Operace & Výrazy MQL4 COURSE By Coders guru www.forex-tsd.com -4 Operace & Výrazy Vítejte ve čtvrté lekci mého kurzu MQL4. Předchozí lekce Datové Typy prezentovaly mnoho nových konceptů ; Doufám, že jste všemu porozuměli,

Více

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje Konstanty I možnosti: přednostně v paměti neexistuje žádný ; o preprocesor (deklarace) #define KONSTANTA 10 o konstantní proměnná (definice) const int KONSTANTA = 10; příklad #include v paměti

Více

8 Střední hodnota a rozptyl

8 Střední hodnota a rozptyl Břetislav Fajmon, UMAT FEKT, VUT Brno Této přednášce odpovídá kapitola 10 ze skript [1]. Také je k dispozici sbírka úloh [2], kde si můžete procvičit příklady z kapitol 2, 3 a 4. K samostatnému procvičení

Více

VZORCE A VÝPOČTY. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý

VZORCE A VÝPOČTY. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý Autor: Mgr. Dana Kaprálová VZORCE A VÝPOČTY 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

PHP. nejen pro začátečníky. $c; echo { Martin Pokorný. Vzdìlávání, které baví www.c-media.cz. Nakladatelství a vydavatelství.

PHP. nejen pro začátečníky. $c; echo { Martin Pokorný. Vzdìlávání, které baví www.c-media.cz. Nakladatelství a vydavatelství. }else{ { if($b >$ c){ echo $max=$b; // vypí }else{ echo $max=$c; // vypí?> cas se }e B : se{ echo B ; default: ($b>$c){ echo C ; } $max=$b; }else{ $max=$c; PHP nejen pro začátečníky k;?> $c; echo { Martin

Více

TEORIE ZPRACOVÁNÍ DAT

TEORIE ZPRACOVÁNÍ DAT Vysoká škola báňská - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky TEORIE ZPRACOVÁNÍ DAT pro kombinované a distanční studium Jana Šarmanová Ostrava 2003 Jana Šarmanová, 2003 Fakulta

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Vstup a výstup v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Vstup a výstup v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Vstup a výstup v C++ Proudy pro standardní vstup a výstup V jazyce C++ provádíme textový vstup a výstup prostřednictvím tzv. datových proudů Datové

Více

Datové struktury. alg12 1

Datové struktury. alg12 1 Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence

Více

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write(\nPrumerna teplota je {0}, tprumer); Pole (array) Motivace Častá úloha práce s větším množstvím dat stejného typu o Př.: průměrná teplota za týden a odchylka od průměru v jednotlivých dnech Console.Write("Zadej T pro.den: "); double t = Double.Parse(Console.ReadLine());

Více

ŠVP Gymnázium Ostrava-Zábřeh. 4.8.16. Úvod do programování

ŠVP Gymnázium Ostrava-Zábřeh. 4.8.16. Úvod do programování 4.8.16. Úvod do programování Vyučovací předmět Úvod do programování je na naší škole nabízen v rámci volitelných předmětů v sextě, septimě nebo v oktávě jako jednoletý dvouhodinový kurz. V případě hlubšího

Více

Seznámení s datovými typy a operátory

Seznámení s datovými typy a operátory Knihovny tříd Javy KAPITOLA 2 Seznámení s datovými typy a operátory Klíčové dovednosti a pojmy Seznámení s primitivními typy jazyka Java. Používání literálů. Inicializace proměnných. Seznámení s pravidly

Více

KAPITOLA 2. Hádání slov ( šibenice ) Jakou hru budete tvořit

KAPITOLA 2. Hádání slov ( šibenice ) Jakou hru budete tvořit KAPITOLA 2 Hádání slov ( šibenice ) Jakou hru budete tvořit Obsahem této kapitoly je vytvoření hry, ve které se hráč snaží uhodnout slovo pomocí hádání jednotlivých písmen během omezeného počtu pokusů.

Více

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML. 24. XML Úvod Značkovací jazyk XML (extensible Markup Language) vznikl ze staršího a obecnějšího jazyku SGML (Standard Generalized Markup Language). XML byl vyvinut konsorciem W3C, aby poskytl standardní

Více

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Vzdělávací oblast Informatika a informační a komunikační technologie pro vzdělávací obor Programování

Více

Iterátory v C++. int pole[20]; for (int *temp = pole, temp!= &pole[20]; temp++) { *temp = 0;

Iterátory v C++. int pole[20]; for (int *temp = pole, temp!= &pole[20]; temp++) { *temp = 0; Iterátory v C++. Iterátor v C++ je vlastně taková obdoba ukazatelů pro kontejnery. Dříve, než se dostaneme k bližšímu vysvětlení pojmu iterátor, ukážeme si jednoduchý příklad, jak pracovat s obyčejným

Více

Expresní kurs BASICu

Expresní kurs BASICu Expresní kurs BASICu BASIC (bejzyk) je zkratka z názvu "Beginners All purpose Symbolic Instruction Code", neboli "Všeobecný symbolický instrukční kód pro začátečníky". Vznikl počátkem šedesátých let a

Více

ABSTRAKTNÍ DATOVÉ TYPY

ABSTRAKTNÍ DATOVÉ TYPY Jurdič Radim ABSTRAKTNÍ DATOVÉ TYPY Veškeré hodnoty, s nimiž v programech pracujeme, můžeme rozdělit do několika skupin zvaných datové typy. Každý datový typ představuje množinu hodnot, nad kterými můžeme

Více

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly. Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?

Více

První začátky s C. Struktura programu a základní prvky. Základní termíny (1) Základní termíny (2)

První začátky s C. Struktura programu a základní prvky. Základní termíny (1) Základní termíny (2) Struktura programu a základní prvky První začátky s C Jazyk C/C++, co se týče struktury souboru, je daleko volnější oproti jiným programovacím jazykům. V podstatě je jedno, kde deklarujete proměnnou nebo

Více

Struktura programu a základní prvky

Struktura programu a základní prvky První začátky s C Struktura programu a základní prvky Jazyk C/C++, co se týče struktury souboru, je daleko volnější oproti jiným programovacím jazykům. V podstatě je jedno, kde deklarujete proměnnou nebo

Více

7. Datové typy v Javě

7. Datové typy v Javě 7. Datové typy v Javě Primitivní vs. objektové typy Kategorie primitivních typů: integrální, boolean, čísla s pohyblivou řádovou čárkou Pole: deklarace, vytvoření, naplnění, přístup k prvkům, rozsah indexů

Více

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

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

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

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

Distanční opora předmětu: Databázové systémy Tématický blok č. 3: OLAP, operátory CUBE a ROLLUP Autor: RNDr. Jan Lánský, Ph.D.

Distanční opora předmětu: Databázové systémy Tématický blok č. 3: OLAP, operátory CUBE a ROLLUP Autor: RNDr. Jan Lánský, Ph.D. Distanční opora předmětu: Databázové systémy Tématický blok č. 3: OLAP, operátory CUBE a ROLLUP Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 OLTP a OLAP 1.1 Datový sklad 1.2 Datová kostka 2 OLAP dotazy

Více

NADSTAVBOVÝ MODUL MOHSA V1

NADSTAVBOVÝ MODUL MOHSA V1 NADSTAVBOVÝ MODUL MOHSA V1 Nadstavbový modul pro hierarchické shlukování se jmenuje Mod_Sh_Hier (MOHSA V1) je součástí souboru Shluk_Hier.xls. Tento soubor je přístupný na http://jonasova.upce.cz, a je

Více

MQL4 COURSE. V tomto dodatku je obsažen popis 25 obchodních funkcí jazyka MQL4. Rozhodl jsem se napsat

MQL4 COURSE. V tomto dodatku je obsažen popis 25 obchodních funkcí jazyka MQL4. Rozhodl jsem se napsat MQL4 COURSE By Coders guru www.forex-tsd.com (Appendix 2) Trading Functions -------------------- V tomto dodatku je obsažen popis 25 obchodních funkcí jazyka MQL4. Rozhodl jsem se napsat tento dodatek

Více

Funkce. Definiční obor a obor hodnot

Funkce. Definiční obor a obor hodnot Funkce Definiční obor a obor hodnot Opakování definice funkce Funkce je předpis, který každému číslu z definičního oboru, který je podmnožinou množiny všech reálných čísel R, přiřazuje právě jedno reálné

Více

Hodnocení soutěžních úloh

Hodnocení soutěžních úloh Hodnocení soutěžních úloh Superciferný součet Koeficient 1 Kategorie mládež Soutěž v programování 24. ročník Krajské kolo 2009/2010 15. až 17. dubna 2010 Vaší úlohou je vytvořit program, který spočítá

Více

Roman Lukáš email: lukas@fit.vutbr.cz

Roman Lukáš email: lukas@fit.vutbr.cz ZADÁNÍ PROJEKTU Z PŘEDMĚTŮ IFJ A IAL Roman Lukáš email: lukas@fit.vutbr.cz 22. září 2008 1 Obecné informace Název projektu: Implementace interpretu imperativního jazyka IFJ08. Informace: diskusní skupina

Více

1. Průběh funkce. 1. Nejjednodušší řešení

1. Průběh funkce. 1. Nejjednodušší řešení 1. Průběh funkce K zobrazení průběhu analytické funkce jedné proměnné potřebujeme sloupec dat nezávisle proměnné x (argumentu) a sloupec dat s funkcí argumentu y = f(x) vytvořený obvykle pomocí vzorce.

Více

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

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

Více

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události Petr Blaha Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události Cykly Základní funkce (matematické, textové,

Více

Vyhledávací a databázové funkce v MS Excel 2007. Martin Tůma

Vyhledávací a databázové funkce v MS Excel 2007. Martin Tůma 1 Úvod Vyhledávací a databázové funkce v MS Excel 2007 Martin Tůma Cílem této seminární práce je stručně vysvětlit princip a syntaxi vyhledávacích a databázových funkcí v aplikaci MS Excel 2007 a na praktických

Více

STŘEDOŠKOLSKÁ MATEMATIKA

STŘEDOŠKOLSKÁ MATEMATIKA STŘEDOŠKOLSKÁ MATEMATIKA MOCNINY, ODMOCNINY, ALGEBRAICKÉ VÝRAZY VŠB Technická univerzita Ostrava Ekonomická fakulta 006 Mocniny, odmocniny, algebraické výrazy http://moodle.vsb.cz/ 1 OBSAH 1 Informace

Více

Bohemius, k.s. www.bohemius.cz

Bohemius, k.s. www.bohemius.cz Bohemius, k.s. www.bohemius.cz Modul je součástí administrativní i manažerské kalkulačky Formulář Malé DPH: Dále následuje : FORMULÁŘ - VLASTNÍ KALKULAČKA o produktu KDO BUDE S FORMULÁŘEM PŘEDEVŠÍM PRACOVAT

Více

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni! Java práce s řetězci Trochu povídání.. Řetězce jsou v Javě reprezentovány instancemi tříd StringBuffer a String. Tyto třídy jsou součástí balíčku java.lang, tudíž je možno s nimi pracovat ihned bez nutného

Více

MS Excel 2010. Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

MS Excel 2010. Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU MS Excel 2010 Základy maker Operační program Vzdělávání pro konkurenceschopnost Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU Registrační číslo: CZ.1.07/2.2.00/15.0224, Oblast podpory:

Více

ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094

ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094 10 ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094 Matematicko-fyzikální fakulta Univerzita Karlova v Praze 1 ROZHODOVÁNÍ TEORIÍ POMOCÍ SAT ŘEŠIČE (SMT)

Více

Mimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno

Mimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno 12 Délka výpočtu algoritmu Mimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno neméně důležité hledisko k posouzení vhodnosti algoritmu k řešení zadané úlohy. Jedná se o čas,

Více

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

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

Více

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus Pracovní listy - programování (algoritmy v jazyce Visual Basic) Předmět: Seminář z informatiky a výpočetní techniky Třída: 3. a 4. ročník vyššího stupně gymnázia Algoritmus Zadání v jazyce českém: 1. Je

Více

1 Mnohočleny a algebraické rovnice

1 Mnohočleny a algebraické rovnice 1 Mnohočleny a algebraické rovnice 1.1 Pojem mnohočlenu (polynomu) Připomeňme, že výrazům typu a 2 x 2 + a 1 x + a 0 říkáme kvadratický trojčlen, když a 2 0. Číslům a 0, a 1, a 2 říkáme koeficienty a písmenem

Více

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

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

Více

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch.

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch. 1. ŘEŠENÉ PŘÍKLADY 1.2 PŘÍKLAD 24-2-8-2_DOKONALÉ ČÍSLO Napište program, který má na vstupu přirozené číslo N > 1. Výstupem je informace o tom, zda toto číslo je/není dokonalé. (Dokonalé číslo je takové

Více