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.

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

6 Příkazy řízení toku

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í

Více

Programovací jazyk Pascal

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

Více

6. Příkazy a řídící struktury v Javě

6. Příkazy a řídící struktury v Javě 6. Příkazy a řídící struktury v Javě Příkazy v Javě Příkazy v Javě Řídicí příkazy (větvení, cykly) Přiřazovací příkaz = Řízení toku programu (větvení, cykly) Volání metody Návrat z metody - příkaz return

Více

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

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

Více

Algoritmizace a programová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

Více

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

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

Více

Distanční opora předmětu: Programování v jazyce C Tématický blok č. 8: Dynamické datové struktury, ladění programů Autor: RNDr. Jan Lánský, Ph.D.

Distanční opora předmětu: Programování v jazyce C Tématický blok č. 8: Dynamické datové struktury, ladění programů Autor: RNDr. Jan Lánský, Ph.D. Distanční opora předmětu: Programování v jazyce C Tématický blok č. 8: Dynamické datové struktury, ladění programů Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Dynamické datové struktury 1.1 Příklad:

Více

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

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

Více

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

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

Více

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné

Více

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

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Č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

Více

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální

Více

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

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

Více

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

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

Více

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19 Algoritmy I Cvičení č. 2, 3 1 ALG I, informace Cvičící RNDr. Eliška Ochodková, Ph.D., kancelář EA439 eliska.ochodkova@vsb.cz www.cs.vsb.cz/ochodkova Přednášející doc. Mgr. Jiří Dvorský, Ph.D., kancelář

Více

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

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

ALGORITMIZACE A PROGRAMOVÁNÍ

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í

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

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é

Více

Distanční opora předmětu: Programování v jazyce C Tématický blok č. 6: Dynamická alokace paměti, typové konstrukce Autor: RNDr. Jan Lánský, Ph.D.

Distanční opora předmětu: Programování v jazyce C Tématický blok č. 6: Dynamická alokace paměti, typové konstrukce Autor: RNDr. Jan Lánský, Ph.D. Distanční opora předmětu: Programování v jazyce C Tématický blok č. 6: Dynamická alokace paměti, typové konstrukce Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Dynamická alokace paměti 2 Organizace

Více

Distanční opora předmětu: Programování v jazyce C Tématický blok č. 4: Pole a ukazatele Autor: RNDr. Jan Lánský, Ph.D.

Distanční opora předmětu: Programování v jazyce C Tématický blok č. 4: Pole a ukazatele Autor: RNDr. Jan Lánský, Ph.D. Distanční opora předmětu: Programování v jazyce C Tématický blok č. 4: Pole a ukazatele Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Pole 1.1 Přístup k prvkům pole 1.2 Vícerozměrné pole 1.3 Inicializace

Více

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

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

Více

Řídicí struktury. alg3 1

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

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

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

Více

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

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 -

Více

Struktura programu v době běhu

Struktura programu v době běhu Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů

Více

PSK3-9. Základy skriptování. Hlavička

PSK3-9. Základy skriptování. Hlavička PSK3-9 Název školy: Autor: Anotace: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Základy skriptování v unixovém shellu Vzdělávací oblast: Informační a komunikační technologie

Více

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; } Pole Kdybychom v jazyce C++chtěli načíst větší počet čísel nebo znaků a všechny bylo by nutné všechny tyto hodnoty nadále uchovávat v paměti počítače, tak by bylo potřeba v paměti počítače alokovat stejný

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

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í

Více

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Začínáme vážně programovat Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Podmínky a cykly Dokončení stručného přehledu řídících struktur jazyka C. Složený příkaz, blok Pascalské

Více

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

Distanční opora předmětu: Databázové systémy Tématický blok č. 8: Transact SQL Autor: RNDr. Jan Lánský, Ph.D. Distanční opora předmětu: Databázové systémy Tématický blok č. 8: Transact SQL Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Motivace 2 Základy syntaxe 3 Procedury a Funkce 4 Kurzory 5 Výjimky Studijní

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

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

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

Více

Znalost výčtových typů. Aktivní znalost kombinovaných (zkrácených přiřazení). Znalost bitových operací. Znalost operátoru sekvence.

Znalost výčtových typů. Aktivní znalost kombinovaných (zkrácených přiřazení). Znalost bitových operací. Znalost operátoru sekvence. Distanční opora předmětu: Programování v jazyce C Tématický blok č. 3: Datové typy a operátory Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Datové typy 1.1 Celočíselné typy 1.2 Logické typy 1.3 Znakový

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

Úvod do programování - Java. Cvičení č.4

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

Pole a Funkce. Úvod do programování 1 Tomáš Kühr Pole a Funkce Úvod do programování 1 Tomáš Kühr (Jednorozměrné) pole u Datová struktura u Lineární u Homogenní = prvky stejného datového typu u Statická = předem určený počet prvků u Pole umožňuje pohodlně

Více

Programujeme v softwaru Statistica

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.

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

Maturitní otázky z předmětu PROGRAMOVÁNÍ

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

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

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

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

Více

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Preprocesor je možné ovládat pomocí příkazů - řádky začínající

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

Překladač a jeho struktura

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

Více

1. D Y N A M I C K É DAT O V É STRUKTUR Y

1. D Y N A M I C K É DAT O V É STRUKTUR Y 1. D Y N A M I C K É DAT O V É STRUKTUR Y Autor: Petr Mik Abychom se mohli pustit do dynamických datových struktur, musíme se nejdřív podívat na datový typ ukazatel. 1. D AT O V Ý TYP U K A Z AT E L Datové

Více

Algoritmizace. 1. Úvod. Algoritmus

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á

Více

PŘETĚŽOVÁNÍ OPERÁTORŮ

PŘETĚŽOVÁNÍ OPERÁTORŮ PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako

Více

Více o konstruktorech a destruktorech

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í

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

Programování v jazyce C a C++

Programování v jazyce C a C++ Programování v jazyce C a C++ Richter 1 Petyovský 2 1. března 2015 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno 2 Ing. Petyovský Petr, UAMT FEKT VUT Brno C++ Stručná charakteristika Nesdíĺı normu

Více

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

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

Více

Funkce, intuitivní chápání složitosti

Funkce, intuitivní chápání složitosti Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Funkce, intuitivní

Více

dovolují dělení velkých úloh na menší = dekompozice

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

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

Programování v C++ 1, 1. cvičení

Programování v C++ 1, 1. cvičení Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených

Více

Objektově orientované programování

Objektově orientované programování 10. října 2011 Pragmatické informace Volitelný předmět, zápočet: zápočtový program(s dokumentací), aktivní účast na cvičení(body v CodExu), praktický test, zkouška: zkoušková písemka na objektový návrh

Více

Úvod do programování. Lekce 3

Úvod do programování. Lekce 3 Úvod do programování Lekce 3 Řízení běhu programu - pokračování /2 příklad: program vypisuje hodnotu sin x dx pro různé délky integračního kroku 0 #include #include // budeme pouzivat funkci

Více

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

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

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

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

ZPRO v C Ing. Vít Hanousek. verze 0.3 verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout

Více

Větvení a cykly. Úvod do programování 1 Tomáš Kühr

Větvení a cykly. Úvod do programování 1 Tomáš Kühr Větvení a cykly Úvod do programování 1 Tomáš Kühr Konstrukce if u Příkazy se provádějí pouze při splnění dané podmínky u Podmínka = jakýkoli logický výraz = cokoli celočíselného u Volitelně i příkazy prováděné

Více

Pointery II. Jan Hnilica Počítačové modelování 17

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

Více

DUM 06 téma: Tvorba makra pomocí VBA

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

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento

Více

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

int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N

int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N Struktura (union) - struktura a union jsou složené typy, které "v sobě" mohou obsahovat více proměnných - struktura obsahuje v každém okamžiku všechny své proměnné, union obsahuje (=je "aktivní") pouze

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento

Více

PROGRAMOVÁNÍ V SHELLU

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

Více

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

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

Více

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr Koncepce (větších) programů Základy programování 2 Tomáš Kühr Parametry a návratová hodnota main Již víme, že main je funkce A také tušíme, že je trochu jiná než ostatní funkce v programu Funkce main je

Více

NPRG030 Programování I, 2015/16 1 / :25:32

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

Více

Řídicí příkazy KAPITOLA 3. Vstup znaků z klávesnice

Řídicí příkazy KAPITOLA 3. Vstup znaků z klávesnice Řídicí příkazy V této kapitole se seznámíte s příkazy, které řídí postup provádění programu Příkazy řízení programu se řadí do třech kategorií: příkazy výběru, kam patří příkazy if a switch, příkazy iterace,

Více

Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz

Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Upozornění pro čtenáře a uživatele této knihy Všechna práva vyhrazena. Žádná část této tištěné či elektronické knihy nesmí být reprodukována a šířena

Více

Úvod do programovacích jazyků (Java)

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

Více

Programování v jazyce JavaScript

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

Více

Distanční opora předmětu: Programování v jazyce C Tématický blok č. 5: Řetězce, parametry programu Autor: RNDr. Jan Lánský, Ph.D.

Distanční opora předmětu: Programování v jazyce C Tématický blok č. 5: Řetězce, parametry programu Autor: RNDr. Jan Lánský, Ph.D. Distanční opora předmětu: Programování v jazyce C Tématický blok č. 5: Řetězce, parametry programu Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Řetězce 1.1 Deklarace a inicializace řetězcové proměnné

Více

Úvod do programování

Ú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

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Jazyk C řízení běhu programu České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Šest zákonů programování 1. V každém programu je alespoň jedna chyba

Více

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).

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

Více

4. Rekurze. BI-EP1 Efektivní programování Martin Kačer

4. Rekurze. BI-EP1 Efektivní programování Martin Kačer 4. Rekurze BI-EP1 Efektivní programování 1 ZS 2011/2012 Ing. Martin Kačer, Ph.D. 2010-11 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze

Více

Informatika 8. třída/6

Informatika 8. třída/6 Rekurze Jedním z důležitých principů pro návrh procedur je tzv. rekurze. Nejlépe uvidíme tento princip na příkladech dvou velmi jednoduchých procedur (hvězdička označuje násobení). Rekurze vlastně označuje

Více

VISUAL BASIC. Přehled témat

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

Více

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2 PI JE JEDNODUCHÝ IMPERATIVNÍ PROGRAMOVACÍ JAZYK OBSAHUJE PODPORU ANOTACÍ NEOBSAHUJE NĚKTERÉ TYPICKÉ KONSTRUKTY PROGRAMOVACÍCH JAZYKŮ JAKO JSOU REFERENCE, UKAZATELE, GLOBÁLNÍ PROMĚNNÉ PODOBÁ SE JAZYKU C

Více

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

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

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr)

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr) Cykly Základy programování 1 Martin Kauer (Tomáš Kühr) Z minula Chary můžete používat jako znaky ale i jako čísla 0-255. Jakou formu vybrat záleží na konkrétní aplikaci. Když pracujete se znaky, používejte

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

Algoritmizace a programování

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

Více

Jednoduché cykly 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.

Jednoduché cykly 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Jednoduché cykly Tento oddíl obsahuje úlohy na první procvičení práce s cykly. Při řešení každé ze zde uvedených úloh stačí použít vedle podmíněných příkazů jen jediný cyklus. Nepotřebujeme používat ani

Více

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru

Více

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

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

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Jazyk C řízení běhu programu České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Šest zákonů programování 1. V každém programu je alespoň jedna chyba

Více

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti 3. přednáška nalezení největšího prvku, druhého nejvyššího prvku, algoritmus shozeného praporku. Algoritmizace

Více

Funkční objekty v C++.

Funkční objekty v C++. Funkční objekty v C++. Funkční objekt je instance třídy, která má jako svou veřejnou metodu operátor (), tedy operátor pro volání funkce. V dnešním článku si ukážeme jak zobecnit funkci, jak používat funkční

Více

Operátory. Základy programování 1 Tomáš Kühr

Operátory. Základy programování 1 Tomáš Kühr Operátory Základy programování 1 Tomáš Kühr Operátory a jejich vlastnosti Základní konstrukce (skoro) každého jazyka Z daných operandů vytvoří výsledek, který je možné dále využívat Arita udává počet operandů

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