Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů."

Transkript

1 Příkazy cyklu v C# Kapitola vysvětluje použití tří typů cyklů for, while a -while a plňuje jejich použití řau příkladů programů v jazyku C#. V jazyku C by šlo pouze k záměně funkcí pro vstup a výstup. Cyklus foreach, který C# obsahuje navíc vzhledem k jazyku C, bude rozebrán v kapitole o polích, protože je vhodný pro práci s prvky pole. Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů. Dělení příkazů cyklu Pro opakované provádění příkazů poskytují programovací jazyky několik příkazů cyklu: Cykly s předem daným počtem opakování (for) Cykly, řízené podmínkou podmínka na začátku cyklu (while) podmínka na konci cyklu (-while) C# má navíc cyklus foreach, který je vhodný pro práci s prvky pole Zápis příkazu cyklu for // hlavička cyklu for(inicializace;test podmínky;změna hodnoty řídící proměnné cyklu) příkazy; // tělo cyklu inicializace zadání počáteční hodnoty řídící proměnné test podmínky - testuje řídící proměnnou na koncovou hodnotu změna hodnoty řídící proměnné cyklu mění hodnotu řídící proměnné s požavaným krokem Tento příkaz je vhodný pro pevný počet opakování příkazu nebo příkazů. 1. Opakovaný výpis textu Vytvořte program, který 5x vypíše pozdrav NAZDAR. Console.WriteLine("NAZDAR"); Console.WriteLine("NAZDAR"); Console.WriteLine("NAZDAR"); Console.WriteLine("NAZDAR"); Console.WriteLine("NAZDAR"); Lepší řešení, než opakovaný zápis stejného příkazu je použití cyklus for Příkazy cyklu v C# 1/18

2 int i; for(i=0;i<5;i++) Console.WriteLine("NAZDAR"); Modifikace programu: Vytvořte program, který umožní zadat počet opakování výpisu NAZDAR. int i, n; Console.WriteLine("Zadej pocet opakovani: "); n=convert.toint32(console.readline()); for (i = 0; i < n; i++) Console.WriteLine("NAZDAR"); 2. Vytvořte program, který vypíše čísla 0 až 9: int i; for (i = 0; i < 10; i++) Console.Write("0 ", i); ++ je často používaný operátor inkrementace Můžeme ho použít za proměnnou, nebo i před proměnnou. i++ znamená zvýšení hodnoty proměnné i o 1 Uvedený příkaz bychom mohli zapsat i delším způsobem: i=i+1 Vysvětlení programu: Řídící proměnnou v uvedeném cyklu for je celočíselná proměnná i. Hlavička cyklu je ta část, která se uvádí v kulatých závorkách za klíčovým slovem for. Má 3 části, oddělené znakem ;. V části inicializace je řídící proměnná i nastavená na hodnotu0: i=0 V části test podmínky se testuje, zda řídící proměnná je menší, než 10.: i<10 V části změna hodnoty řídící proměnné se provede její inkrementace: i++ V těle cyklu se provádí vlastní příkazy cyklu. Příkazy jsou uzavřeny složených závorek: Console.Write("0 ", i); Pokud se v cyklu provádí pouze jeden příkaz, nemusí se uzavírat složených závorek. Provádění cyklu: 1. Hodnota řídící proměnné se nastaví na počáteční hodnotu i=0; 2. Testuje se podmínka v prostřední části hlavičky cyklu: i<10 3. Je-li podmínka vyhodnocená jako pravdivá, provede se příkaz v těle cyklu s touto hodnotou řídící proměnné: Console.Write("0 ", i); 4. Jestliže podmínka pravdivá není, cyklus končí Příkazy cyklu v C# 2/18

3 5. Změní se hodnota řídící proměnné podle příkazu ve třetí části hlavičky cyklu: i++ - hodnota řídící proměnné se zvýší na Pokračuje se bodem 2 Řídicí proměnná cyklu Je to proměnná, uvedená v hlavičce cyklu, která řídí průběh cyklu. Může být typu int, float, char, uble. Výpis všech velkých písmen abecedy: for(char c='a';c<='z';c++)console.write("0 ", c); Inicializace Inicializace slouží k nastavení počáteční hodnoty řídící proměnné. Test podmínky Test podmínky slouží k určení, zda se příkazy cyklu buu opakovat, nebo zda se vykonávání cyklu ukončí. Změna hodnoty řídicí proměnné cyklu Změna řídící proměnné je nutná, aby jednou podmínka přestala platit. Doporučuje se provádět ji pouze v hlavičce cyklu. Krok změny řídící proměnné nemusí být celočíselný: uble i; for(i=0;i<1;i=i+0.1) Console.WriteLine("0", i); Hodnota řídící proměnné se může i snižovat je nutno upravit nastavení počáteční hodnoty a podmínku tak, aby cyklus nebyl nekonečný: int i; for(i=9;i>-1;i--) Console.WriteLine("0", i); --je operátor dekrementace a znamená snížení hodnoty proměnné o 1. Uvedený příkaz by bylo možné zapsat: i=i Příkazy cyklu v C# 3/18

4 Příkazy break a continue break strukturovaný skok, zajistí vyskočení z cyklu a pokračování za cyklem continue zajišťuje přechod na další iteraci. Přeskočí následující příkazy v těle cyklu, ale cyklus neopouští Mohou být pouze uvnitř cyklu break se uvádí i na konci každé větve příkazu switch. break se používá ve spojení s příkazem if např. pro ukončení cyklu while po zadání nulové hodnoty: if(a==0)break; Vynechání některé části hlavičky cyklu for Jestliže některou část hlavičky cyklu for vynecháme, použije se hodnota, která je proměnné uložená. 1. Ilustrace vynechání některé části hlavičky cyklu for Uvedený program obsahuje 4 cykly for: V prvním cyklu chybí část inicializace, která je provedena před cyklem: int i=10; V druhém cyklu chybí podmínka ukončení cyklu je provedeno příkazem break, jestliže i>=20 Třetí cyklus nemá změnu hodnoty řídící proměnné v hlavičce cyklu, ale v těle cyklu. Čtvrtý cyklus má v hlavičce pouze dva středníky (ty jsou nutné). Inicializace je provedena před cyklem, podmínka i změna hodnoty řídící proměnné je v těle cyklu. Všechny cykly vypíší čísla od s krokem 2. int i = 10; // První cyklus for (; i < 20; i += 2) Console.Write("0 ", i); Console.WriteLine(); // Druhý cyklus for (i = 10; ; i += 2) if (i >= 20) break; Console.Write("0 ", i); Console.WriteLine(); // Třetí cyklus for (i = 10; i < 20; ) Console.Write("0 ", i); i += 2; i = 10; Console.WriteLine(); // Čtvrtý cyklus for (; ; ) if (i >= 20) break; Console.Write("0 ", i); i += 2; Příkazy cyklu v C# 4/18

5 2. Čítač lů od zadané hodnoty Program vyzve uživatele k zadání hodnoty a pak od tohoto čísla odpočítává. Řídící proměnná cyklu je zde inicializována uživatelem mimo cyklus, takže inicializační část cyklu je prázdná: int i; Console.WriteLine("Zadej cele cislo: "); i=convert.toint32(console.readline()); for (; i > 0; i--) Console.WriteLine("0 ", i); 3. Opakované čtení znaku zadání q Vytvořte cyklus, který se opakuje, kud není z klávesnice zadán znak q. char c = 'a'; for (; c!= 'q'; ) c = Convert.ToChar(Console.ReadLine()); Namísto testování řídící proměnné cyklu zjišťuje test podmínky v tomto cyklu for hodnotu znaku, zadanou uživatelem. Rozsah platnosti proměnné, deklarované v hlavičce cyklu Proměnnou můžeme definovat i v hlavičce cyklu, a potom je lokální v rámci cyklu. for (int i = 10; i < 20; i += 2) Console.Write("0 ", i); Zápis příkazu cyklu while while (podmínka)prikazy; Postup provádění příkazu: Nejdříve se vyhodnotí podmínka Pokud je splněna, proveu se příkazy a podmínka se vyhodnocuje znovu. Cyklus končí v okamžiku, kdy podmínka není splněna. Příkazy nemusí být provedeny ani jednou, jestliže podmínka při vstupu cyklu je vyhodnocena jako false. Často používaná je i varianta s obráceně postavenou podmínkou. Měli byste vždy volit cyklus, který nejlépe vyhovuje dané situaci Příkazy cyklu v C# 5/18

6 4. Příklad opakování cyklu, kud není z klávesnice zadán znak q Příklad opakování cyklu, kud není z klávesnice zadán znak q je lépe řešit cyklem while, než cyklem for. char c='a'; while (c!= 'q') c = Convert.ToChar(Console.ReadLine()); Zápis příkazu cyklu -while Pokud cyklus ukončujeme na základě určité hodnoty, načtené v těle cyklu, je vhodné použít cyklus while. Cyklus while se nazývá cyklus s podmínkou na začátku a cyklus - while se nazývá cyklus s podmínkou na konci. U cyklu while se nejprve testuje podmínka a jestliže je pravda, příkazy cyklu se proveu. U tohoto cyklu se příkazy nemusí vůbec provést. U cyklu - while se příkazy cyklu vždy jednou proveu, a potom se testuje podmínka. Když se podmínka vyhodnotí jako pravda, příkazy se buu opakovat znovu. Zápis: prikazy;while(podminka); Postup provádění příkazu: Nejprve se příkazy proveu a teprve poté se vyhodnotí podmínka Je-li podmínka splněna, provádí se znovu příkazy Cyklus končí v případě, že podmínka není splněna. Často používaná je i varianta s obráceně postavenou podmínkou. Tento cyklus je vhodný, když rozhodujeme o jeho ukončení podle hodnoty, načtené od uživatele. U všech cyklů platí, že pokud chceme v cyklu vykonat pouze jeden příkaz, nemusíme ho uvádět ve složených závorkách. Příkaz goto Příkaz goto lze ve spojení s tzv. návěštím využít k vytvoření cyklu. Je to ale nestrukturovaný a neporučovaný příkaz Příkazy cyklu v C# 6/18

7 int i=0; cyk: if(i>10)goto ven; Console.WriteLine("0 ",i); i++; goto cyk; ven: ; Vnořování cyklů Vnořování cyklů je umístění jednoho cyklu v těle jiného cyklu. Většina překladačů umožňuje libovolně hluboké vnoření. 5. Vnoření cyklů pro výpis tabulky velké násobilky int i, j; Console.WriteLine("V E L K A N A S O B I L K A:"); Console.WriteLine(); for (i = 11; i < 20; i++) for (j = 11; j < 20; j++) Console.Write("0 ", i * j); Console.WriteLine(); 6. Vykreslení rovnoramenného trojúhelníku z hvězdiček Vytvořte program, který po zadání počtu řádků vykreslí rovnoramenný trojúhelník z hvězdiček, který bude mít výšku rovnou zadanému počtu řádků. int i, j, n; Console.WriteLine("Zadej pocet radku: "); n=convert.toint32(console.readline()); for (i = 0; i < n; i++) for (j = n - i; j > -1; j--) Console.Write(" "); for (j = 0; j <= 2 * i; j++) Console.Write("*"); Console.WriteLine(); CVIČENÍ 1. Co se vypíše následujícím cyklem? for (int x = 0; x < 100; x++) Console.Write("0 ", x); 2. Je tento výraz pravdivý?!(10==9) Příkazy cyklu v C# 7/18

8 3. Dávají tyto dva výrazy stejný výsledek? a) 0&&1 1 b) 0&&(1 1) 4. Napište cyklus, který vypíše čísla od for(int i=1;i<101;i++) Console.Write("0 ", i); 5. Napište cyklus, který vypíše čísla mezi 17 a 100, které lze dělit beze zbytku 17. for(int i=17;i<101;i=i+17) Console.Write("0 ", i); 6. Co se vypíše? int i; i = 0; i++; Console.Write("0 ", i--);/* vypíše 1 */ Console.Write("0 ", i); /* vypíše 0 */ 7.. Změňte všechny příslušné přiřazovací příkazy v tomto programu na příkazy inkrementace a dekrementace. int a, b; a = 1; a = a + 1; b = a; b = b - 1; Console.Write("0 1",a,b); Řešení: int a, b; a = 1; a++; b = a; b--; Console.Write("0 1",a,b); Řešené úlohy na cykly 1. Program pro převod zadaného desítkového čísla dvojkové soustavy: int a; Console.WriteLine("Zadej cislo 255: "); a=convert.toint32(console.readline()); Console.WriteLine("0", a % 2); a = a / 2; Console.WriteLine("0", a % 2); a = a / 2; Console.WriteLine("0", a % 2); Příkazy cyklu v C# 8/18

9 a = a / 2; Console.WriteLine("0", a % 2); a = a / 2; Console.WriteLine("0", a % 2); a = a / 2; Console.WriteLine("0", a % 2); a = a / 2; Console.WriteLine("0", a % 2); a = a / 2; Console.WriteLine("0\n", a % 2); V tomto programu se 7-krát opakují příkazy: Console.WriteLine("0", a % 2); a = a / 2; Je proto vhodné použít cyklus: for(int i=1;i<8;i++) Console.WriteLine("0", a % 2); a = a / 2; 2. Načtení 3 čísel a výpočet jejich součtu: Tento způsob už lze bře vyjádřit pomocí cyklu: Zápis programu s využitím cyklu s pevným počtem opakování: uble a, S = 0; for (int i = 0; i < 3;i++ ) a=convert.toint32(console.readline()); S = S + a; Console.WriteLine("0", S); 3. Program pro výpočet průměru deseti známek s kontrolou správně zadané známky uble z,sum=0; for(int i=1;i<11;i++) Console.WriteLine("Zadej 0. znamku: ",i); z=convert.toint32(console.readline()); if(z>5 z<1) Console.WriteLine("Spatne zadana znamka"); i--; else sum=sum+z; Console.WriteLine("Prumer je: 0",sum/10.0); Příkazy cyklu v C# 9/18

10 4. Použití cyklu s pevným počtem opakování pro výpis ASCII tabulky: for (int i = 33; i < 255; i++) Console.Write("0 1\t", (char)i, i); 5. Napište program, který vypíše tabulku čísel. Každý řádek v tabulce obsahuje tři položky: číslo, jeho druhou mocninu a jeho třetí mocninu. Začněte 1 a končete 10. Pro vytváření čísel použijte cyklus for. for (int i = 1; i < 11; i++) Console.WriteLine("0\t1\t2", i, i*i, i*i*i); 6. Čítač lů a pípnutí Napište program, který vyzve uživatele k zadání celého čísla. Pak pomocí cyklu for odpočítávejte od této hodnoty 1 až nuly a vypisujte každé číslo na samostatný řádek. Když hod nota sáhne 0, nechejte zaznít zvukový signál. int i; Console.WriteLine("Zadej cele cislo:"); i=convert.toint32(console.readline()); for (; i > -1; i--) Console.WriteLine("0", i); Console.WriteLine("\a"); Třída Console obsahuje metodu Beep, kterou můžeme volat bez parametrů a se dvěma parametry: frekvence ( Hertz) a trvání v milisekundách. Příklad volání: Console.Beep(1000,100); Tím můžeme řídit výšku tónu a bu jeho trvání. 7. Určení počtu zadaných mezer Napište program, který bude číst znaky z klávesnice a spočítá počet zadaných mezer. Cyklus pro zadávání znaků ukončete klávesou Esc. const char ESC = (char)consolekey.escape; char c; int mezery = 0; c = Console.ReadKey().KeyChar; if (c == ' ') mezery++; while (c!= ESC); Console.WriteLine("\nPocet mezer: 0", mezery); 8. Náhodné generování příkladů pro zkoušení z aritmetických operací. Operandy i operátor jsou generovány náhodně funkcí rand. Operandy jsou čísla deseti a operátory +, -, *, / Příkazy cyklu v C# 10/18

11 Rozsah generovaných čísel je omezen od Aby byla generované pokaždé jiná posloupnost, je třeba vytvořit objekt třídy Ranm příkazem: Ranm gen=new Ranm(); Před cyklem for se program zeptá, kolik příkladů chcete generovat. Zadané číslo bude použito v podmínce ukončení cyklu for (i<n). Dále se náhodně generují operandy a operátor metou Next. Operátor se generuje jako číslo a přepínačem se převede na znak. Potom se vypíše výraz pro výpočet a načte se odpověď uživatele. Odpoví-li uživatel správně, vypíše se slovo správně, jinak se vypíše špatně. Ranm gen=new Ranm(); int a, b, d, n, i, odp, spravne=0; char z=' '; Console.WriteLine("Kolik chces prikladu: "); n=convert.toint32(console.readline()); for (i = 0; i < n; i++) a = gen.next(10) + 1; b = gen.next(10) + 1; d = gen.next(4) + 1; switch (d) case 1: z = '+'; spravne = a + b; break; case 2: z = '-'; spravne = a - b; break; case 3: z = '*'; spravne = a * b; break; case 4: z = '/'; spravne = a / b; break; Console.WriteLine("0 1 2 = ", a, z, b); odp = Convert.ToInt32(Console.ReadLine()); if (odp == spravne) Console.WriteLine("spravne"); else Console.WriteLine("spatne"); 9. Zobrazení čísel v zadaném intervale Program si vyžádá začátek a konec intervalu a vypíše čísla v tomto intervale. int i,zac,kon; Console.WriteLine("Zadej zacatek intervalu:"); zac=convert.toint32(console.readline()); Console.WriteLine("Zadej konec intervalu:"); kon=convert.toint32(console.readline()); for(i=zac;i<=kon;i++) Console.WriteLine("0 ",i); 10. Zobrazení sudých čísel v zadaném intervale Následující program je modifikací předchozího. Vypisuje v zadaném intervalu pouze sudá čísla. int i,zac,kon; Console.WriteLine("Zadej zacatek intervalu:"); zac=convert.toint32(console.readline()); Console.WriteLine("Zadej konec intervalu:"); Příkazy cyklu v C# 11/18

12 kon=convert.toint32(console.readline()); for(i=zac;i<=kon;i++) if (i % 2 == 0) Console.WriteLine("0 ", i); 11. Součet a průměr čísel v zadaném intervale Následující program vypíše součet a průměr čísel v zadaném intervalu, který prochází v cyklu for s krokem 1. int i,zac,kon,sum=0; Console.WriteLine("Zadej zacatek intervalu:"); zac=convert.toint32(console.readline()); Console.WriteLine("Zadej konec intervalu:"); kon=convert.toint32(console.readline()); for(i=zac;i<=kon;i++)sum += i; Console.WriteLine("Soucet: 0\nPrumer: 1:N2", sum,(uble)sum/(uble)(kon-zac+1)); 12. Součet zadávaných čísel zadávání ukončíte nulou Následující program vypíše součet čísel, zadávaných z klávesnice v cyklu -while. Zadávání je ukončeno hodnotou 0. uble sum = 0, a; Console.WriteLine("Zadej cislo:"); a=convert.toint32(console.readline()); sum += a; while (a!= 0); Console.WriteLine("Soucet: 0",sum); 13. Průměr Následující program vypíše průměr čísel, zadávaných z klávesnice v cyklu -while. Zadávání je ukončeno hodnotou 0. uble sum = 0, a,poc=0; Console.WriteLine("Zadej cislo:"); a=convert.todouble(console.readline()); sum += a; poc++; while (a!= 0); Console.WriteLine("Prumer: 0:N2",sum/(poc-1)); 14. Počet kladných a počet záporných čísel Následující program vypíše počet kladných a záporných čísel, zadávaných z klávesnice v cyklu -while. Zadávání je ukončeno hodnotou Příkazy cyklu v C# 12/18

13 uble a, klad = 0, zap = 0; Console.WriteLine("Zadej cislo:"); a=convert.todouble(console.readline()); if (a == 0.0) break; if (a > 0) klad++; else zap++; while (a!= 0); Console.WriteLine("Pocet kladnych: 0\nPocet zapornych: 1", klad, zap); 15. Počet sudých a počet lichých čísel Následující program vypíše počet sudých a lichých čísel, zadávaných z klávesnice v cyklu -while. Zadávání je ukončeno hodnotou 0. uble a, sud = 0, lich = 0; Console.WriteLine("Zadej cislo:"); a=convert.todouble(console.readline()); if (a == 0.0) break; if (a % 2 == 1) lich++; else sud++; while (a!= 0); Console.WriteLine("Pocet sudych: 0\nPocet lichych: 1", sud, lich); 16. Maximum a minimum Následující program vypíše maximum a minimum čísel, zadávaných z klávesnice v cyklu -while. Zadávání neukončeno hodnotou 0. int a, max = int.minvalue, min = int.maxvalue; Console.WriteLine("Zadej cislo:"); a=convert.toint32(console.readline()); if (a == 0.0) break; if (a >= max) max = a; if (a <= min) min = a; while (a!= 0); Console.WriteLine("Maximum: 0\nMinimum: 1\n", max, min); 17. První i druhé maximum a minimum Následující program vypíše první a druhé maximum a minimum čísel, zadávaných z klávesnice v cyklu -while. Zadávání je ukončeno hodnotou Příkazy cyklu v C# 13/18

14 int a, max = int.minvalue, min = int.maxvalue, max2= int.minvalue, min2= int.maxvalue; Console.WriteLine("Zadej cislo:"); a=convert.toint32(console.readline()); if (a == 0.0) break; if (a >= max) max2 = max; max = a; if (a <= min) min2 = min; min = a; while (a!= 0); Console.WriteLine("Maximum: 0\nMinimum: 1\n", max, min); Console.WriteLine("Druhe maximum: 0\nDruhe minimum: 1\n", max2, min2); 18. Četnost známek Následující program vypíše četnost známek (1,2,3,4,5), zadávaných z klávesnice v cyklu -while. Zadávání je ukončeno hodnotou 0. int a, jedna = 0, dve = 0, tri = 0, ctyri = 0, pet = 0; a = Convert.ToInt32(Console.ReadLine()); if (a == 0) break; switch (a) case 1: jedna++; break; case 2: dve++; break; case 3: tri++; break; case 4: ctyri++; break; case 5: pet++; break; default: Console.WriteLine("Spatne zadana znamka\n"); break; while (a!= 0); Console.WriteLine("Pocet 1: 0\nPocet 2: 1", jedna, dve); Console.WriteLine("Pocet 3: 0\nPocet 4: 1", tri, ctyri); Console.WriteLine("Pocet 5: 0\n", pet); 19. Četnost známek a histogram Následující program připojí k předchozímu histogram zadaných známek počet jednotlivých známek se znázorní počtem hvězdiček v řádku. int a, jedna = 0, dve = 0, tri = 0, ctyri = 0, pet = 0; a = Convert.ToInt32(Console.ReadLine()); if (a == 0) break; switch (a) case 1: jedna++; break; case 2: dve++; break; Příkazy cyklu v C# 14/18

15 case 3: tri++; break; case 4: ctyri++; break; case 5: pet++; break; default: Console.WriteLine("Spatne zadana znamka\n"); break; while (a!= 0); Console.WriteLine("Pocet 1: 0\nPocet 2: 1", jedna, dve); Console.WriteLine("Pocet 3: 0\nPocet 4: 1", tri, ctyri); Console.WriteLine("Pocet 5: 0\n", pet); int i; Console.Write("1: "); for (i = 0; i < jedna; i++) Console.Write("*"); Console.Write("\n2: "); for (i = 0; i < dve; i++) Console.Write("*"); Console.Write("\n3: "); for (i = 0; i < tri; i++) Console.Write("*"); Console.Write("\n4: "); for (i = 0; i < ctyri; i++) Console.Write("*"); Console.Write("\n5: "); for (i = 0; i < pet; i++) Console.Write("*"); Console.WriteLine(); 20. Možné kombinace hodnot dvou logických proměnných Následující program vypíše všechny možné kombinace hodnot dvou proměnných a,b typu bool. bool a, b; int i, j; a = false; b = false; Console.Write(" a \t b\n \n"); for (i = 0; i < 2; i++) for (j = 0; j < 2; j++) Console.WriteLine("0\t1", a, b); b =!b; a =!a; 21. Vymáhání správné odpovědi Následující program v cyklu -while vymáhá od uživatele správnou odpověď na otázku: "Mam programovat? (a/a): ". Cyklus -while se ukončí pouze po zadání 'a', nebo 'A'. char a; Console.Write("Mam programovat? (a/a): "); a = Convert.ToChar(Console.ReadLine()); if (a == 'a' a == 'A') Console.WriteLine("Dobra volba"); else Console.WriteLine("Spatna volba"); while (a!= 'a' && a!= 'A'); Příkazy cyklu v C# 15/18

16 22. Vymáhání odpovědi, přičemž znak čteme pomocí ReadKey() Stejný program jako předchozí s tím rozdílem, že znak je čten funkcí ReadKey(). char a; Console.Write("Mam programovat? (a/a): "); a = Console.ReadKey().KeyChar; if (a == 'a' a == 'A') Console.WriteLine(" Dobra volba"); else Console.WriteLine(" Spatna volba"); while (a!= 'a' && a!= 'A'); Program vypíše pouze brou volbu za cyklem Pokud bychom nevypisovali text o špatné volbě, bylo by možné program zjednodušit a informaci o špatné volbě vypsat za cyklem -while. char a; Console.Write("Mam programovat? (a/a): "); a = Console.ReadKey().KeyChar; while (a!= 'a' && a!= 'A'); Console.WriteLine(" Dobra volba"); 23. Čekání na vstup, nebo vypršení intervalu Čtení znaku Cyklus while se ukončí buď stisknutím klávesy, nebo vyčerpáním časového intervalu, který odpovídá výchozí hodnotě proměnné t. Za cyklem while příkazem if-else testujeme jakým způsobem byl cyklus ukončen a vypíšeme příslušný text. Pokud nechceme, aby se vypsala znaková hodnota stisknuté klávesy, voláme metodu ReadKey s parametrem true: ReadKey(true). Vlastnost KeyAvailable třídy Console slouží k určení, zda byla stisknuta libovolná klávesa. long t = ; char c; while (!Console.KeyAvailable && (t!= 0)) t--; if (Console.KeyAvailable) c = Console.ReadKey(true).KeyChar; Console.Write("Byla stisknuta klavesa: 0\n", c); else Console.Write("Nebyla stisknuta zadna klavesa\n"); Příkazy cyklu v C# 16/18

17 Čtení čísla Následující program čeká na zadání čísla. Pokud během nastaveného časového intervalu nejde k stisku klávesy, vypíše se: Nebyla stisknuta žádná klávesa. long t = ,d; while (!Console.KeyAvailable && (t!= 0)) t--; if (Console.KeyAvailable) d = Convert.ToInt64(Console.ReadLine()); Console.Write("Bylo zadano cislo: 0\n", d); else Console.Write("Nebyla stisknuta zadna klavesa\n"); Vymezení času pro odpověď na otázku Uvedený program je možné využít v testovacích programech pro vymezení času pro odpověď na otázku. long t = ,d; Console.Write("Kolik je 10+14? "); while (!Console.KeyAvailable && (t!= 0)) t--; if (Console.KeyAvailable) d = Convert.ToInt64(Console.ReadLine()); if (d == ) Console.WriteLine("Spravne\n"); else Console.WriteLine("Spatne\n"); else Console.Write("\nCas vyprsel\n"); 24. Semafor Následující program modeluje semafor na křižovatce. Uživatel zadává znaky a program odpovídá. Komunikace probíhá v cyklu -while, který se ukončí zadáním znaku k. char s; Console.Write("Zadavej: c=cervena/o=oranzova/z=zelena/k=konec\n"); Příkazy cyklu v C# 17/18

18 s = Console.ReadKey(true).KeyChar; if (s == 'k') break; switch (s) case 'c': Console.Write(" stuj\n"); break; case 'o': Console.Write(" pozor\n"); break; case 'z': Console.Write(" jed\n"); break; default: Console.Write(" zadal jsi to spatne\n"); break; while (s!= 'k'); Console.Write(" konec\n"); Shrnutí: V kapitole je ukázáno použití tří typů cyklů for, while a -while na řadě příkladů programů v jazyku C#. Použití cyklu foreach bude uvedeno v kapitole o polích Příkazy cyklu v C# 18/18

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

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

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: 4.10.2011 8:01:48

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: 4.10.2011 8:01:48 LED_007.c Strana: 1/5 Nyní již umíme používat příkazy k větvení programu (podmínky) "if" a "switch". Umíme také rozložit program na jednoduché funkce a používat cyklus "for". Co se týče cyklů, zbývá nám

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

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce. Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby

Více

Základní stavební prvky algoritmu

Základní stavební prvky algoritmu Základní stavební prvky algoritmu Podmínka. Cyklus for, while, do-while. Funkce, metody. Přetěžování. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká

Více

MQL4 COURSE. By Coders guru www.forex-tsd.com. -5 Smyčky & Rozhodnutí Část 2

MQL4 COURSE. By Coders guru www.forex-tsd.com. -5 Smyčky & Rozhodnutí Část 2 MQL4 COURSE By Coders guru www.forex-tsd.com -5 Smyčky & Rozhodnutí Část 2 Vítejte v šesté lekci mého kurzu MQL 4. Doufám, že se vám předchozí lekce líbily. V předchozí lekci jsme se bavili o smyčkách.

Více

Jazyk C# a platforma.net

Jazyk C# a platforma.net Jazyk C# a platforma.net Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe jazyka C# - 1. část BI-DNP Evropský sociální fond

Více

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín Kolekce ArrayList napsal Pajclín Tento článek jsem se rozhodl věnovat kolekci ArrayList, protože je to jedna z nejpoužívanějších. Tento článek není kompletním popisem třídy ArrayList, ale budu se snažit

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

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

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

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li: 13.4.2010 Typová konverze - změna jednoho datového typu na jiný - známe dva základní implicitní ("sama od sebe") a explicitní (výslovně vyžádána programátorem) - C je málo přísné na typové kontroly = dokáže

Více

Násobení pomocí sčítání

Násobení pomocí sčítání Neznalost zákonů neomlouvá Násobení pomocí sčítání Zadání problému: Vymyslete algoritmus, jak násobit dvě čísla, když operaci násobení neznáme. Upřesnění zadání: Známe čísla, známe operaci sčítání, odčítání.

Více

Operační systémy. Cvičení 4: Programování v C pod Unixem

Operační systémy. Cvičení 4: Programování v C pod Unixem Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné

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

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

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

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

Basic256 - úvod do programování Příklady. ing. petr polách

Basic256 - úvod do programování Příklady. ing. petr polách Basic256 - úvod do programování Příklady ing. petr polách 1 Basic 256 input, print Př.: Vytvořte program pro součet dvou čísel: input "Zadej a: ", a input "Zadej b: ", b print a+b input "Zadej a: ", a

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

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Vývoj aplikací Téma: Programovací jazyky Vyučující: Ing. Milan Káža Třída: EK3 Hodina: 8 Číslo: V/5 Programování

Více

BASH. Kouzla s příkazovou řádkou. Petr Koloros

BASH. Kouzla s příkazovou řádkou. Petr Koloros BASH Kouzla s příkazovou řádkou Petr Koloros Obsah příkazová řádka proměnné prsaté závorky {hot! hot!} manipulace se soubory vstup, výstup, přesměrování hlídače regularní výrazy filtry skriptování pitfalls

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

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

nesvadba@ngstranky.cz

nesvadba@ngstranky.cz V jednoduchých uvozovkách echo retezec ; V dvojitých uvozovkách echo retezec ; Syntaxe heredoc $text =

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

Ú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

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

Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT;

Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT; Programovací jazyk C(++) static struct vm_area_struct * unmap_fixup(struct mm_struct *mm, struct vm_area_struct *area, unsigned long addr, size_t len, struct vm_area_struct 1. *extra) Základy { struct

Více

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Základy programování Úloha: Eratosthenovo síto Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Obsah 1 Zadání úkolu: 3 1.1 Zadání:............................... 3 1.2 Neformální zápis:.........................

Více

Řídící struktury, if, while, switch

Řídící struktury, if, while, switch Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Řídící struktury, if, while, switch BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Miroslav Balík Fakulta informačních

Více

5 Rekurze a zásobník. Rekurzivní volání metody

5 Rekurze a zásobník. Rekurzivní volání metody 5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení

Více

Příkaz while. while (podmínka) { příkaz; } Příklad: int i=0; while (i < 10) { System.out.println(i); i++; } // vypíše čísla od 0 do 9

Příkaz while. while (podmínka) { příkaz; } Příklad: int i=0; while (i < 10) { System.out.println(i); i++; } // vypíše čísla od 0 do 9 5 Cykly - cyklus nebo také smyčka je řídicí struktura programu, která opakovaně provádí posloupnost příkazů - opakování i ukončení cyklu je řízeno nějakou podmínku - cyklus se skládá z posloupnosti příkazů

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

Helios RED a Internetový obchod

Helios RED a Internetový obchod (pracovní verze!) Helios RED a Internetový obchod Obsah dokumetace: 1. Úvod 2. Evidované údaje na skladové kartě 3. Přenos skladových karet z Helios RED do e-shopu 4. Přenos objednávek z e-shopu do Helios

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém

Více

přetížení operátorů (o)

přetížení operátorů (o) přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - operátor je speciální

Více

Základy PERLu snadno a rychle

Základy PERLu snadno a rychle Základy PERLu snadno a rychle Začínáme Začneme tak, že si vytvoříme třeba soubor hellopl, do souboru napíšeme: print "Hello world\n"; Pak soubor nastavíme jako spustitelný: $ chmod +x hellopl A teď si

Více

Řídící struktury, if, while, switch

Řídící struktury, if, while, switch 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 Řídící struktury,

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

awk programovatelný filtr

awk programovatelný filtr awk programovatelný filtr Spouštění: Awk vzor {akce} nebo awk f prg_soubor [ soubory ] čte řádky ze zadaných souborů, nebo ze standardního vstupu výstup směřuje na standardní výstup Struktura programu:

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

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

Otázky k teoretické části zkoušky z předmětu IAJCE 2006/2007

Otázky k teoretické části zkoušky z předmětu IAJCE 2006/2007 Otázky k teoretické části zkoušky z předmětu IAJCE 2006/2007 1. Nakreslete blokové schéma počítače Neumannova typu a popište jeho základní komponenty Vstupní a výstupní zařízení výměna informací mezi počítačem

Více

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10 UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10 Využití zásobníku pro předání parametrů podprogramům a lokální proměnné Jan Dolinay Petr Dostálek Zlín

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

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615) IB108 Sada 1, Příklad 1 ( ) Složitost třídícího algoritmu 1/-Sort je v O n log O (n.71 ). Necht n = j i (velikost pole, které je vstupním parametrem funkce 1/-Sort). Lehce spočítáme, že velikost pole předávaná

Více

VŠFS B_UPg Úvod do programování: Sbírka příkladů na cvičení RNDr. Jan Lánský, Ph.D.

VŠFS B_UPg Úvod do programování: Sbírka příkladů na cvičení RNDr. Jan Lánský, Ph.D. VŠFS B_UPg Úvod do programování: Sbírka příkladů na cvičení RNDr. Jan Lánský, Ph.D. Příklady jsou rozděleny do jednotlivých hodin. Každý příklad má stanovený počet bodů za správné řešení. Ke splnění hodiny

Více

Příkazy if, while, do-while, for, switch

Příkazy if, while, do-while, for, switch Příkazy if, while, do-while, for, switch BI-PA1 Programování a Algoritmizace 1 Ladislav Vagner, Josef Vogel Katedra teoretické informatiky a Katedra softwarového inženýrství Fakulta informačních technologíı

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

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

Návrh a tvorba WWW stránek 1/38 PHP

Návrh a tvorba WWW stránek 1/38 PHP Návrh a tvorba WWW stránek 1/38 PHP PHP Hypertext Preprocessor interpret stránek na serveru běží na serveru příkazy PHP nejprve provede a vloží do XHTML dokumentu, následně posílá klientovi příkazy PHP

Více

Vstupní a vstupní proudy v C++

Vstupní a vstupní proudy v C++ Programovací jazyk C++ MZLU - PEF - Ústav informatiky 11. října 2007 Vstup na terminál a čtení z něj Používá se knihovna iostream. Pro výstup lze použít standardní výstup cout. nebo chybový výstup cerr.

Více

Výrazy, operace, příkazy

Výrazy, operace, příkazy Výrazy, operace, příkazy Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Přednášky byly připraveny s pomocí materiálů, které vyrobili Ladislav Vágner, Pavel Strnad Karel Richta, Martin Hořeňovský,

Více

PREPROCESOR POKRAČOVÁNÍ

PREPROCESOR POKRAČOVÁNÍ PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,

Více

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr Seminář z IVT Algoritmizace Slovanské gymnázium Olomouc Tomáš Kühr Algoritmizace - o čem to je? Zatím jsme se zabývali především tím, jak určitý postup zapsat v konkrétním programovacím jazyce (např. C#)

Více

PrvnÌ program pro Windows 23. SystÈmovÈ poûadavky 24 V bïr vhodnè verze 25 Instalace Visual C# 2005 25

PrvnÌ program pro Windows 23. SystÈmovÈ poûadavky 24 V bïr vhodnè verze 25 Instalace Visual C# 2005 25 vod 17 Proč jsem napsal tuto knihu? 17 Pro koho je tato kniha určena 18 Co je obsahem této knihy 18 Jak číst tuto knihu 21 Zvláštní vlastnosti 21 Kontakt na autora 21 Poznámka redakce českého vydání 22

Více

Knihovna XmlLibEx TXV 003 78.01 druhé vydání prosinec 2013 změny vyhrazeny

Knihovna XmlLibEx TXV 003 78.01 druhé vydání prosinec 2013 změny vyhrazeny Knihovna XmlLibEx TXV 003 78.01 druhé vydání prosinec 2013 změny vyhrazeny 1 TXV 003 78.01 Historie změn Datum Vydání Popis změn Říjen 2012 1 První vydání, popis odpovídá XmlLibEx_v11 Prosinec 2013 2 Doplněn

Více

Opakování programování

Opakování programování Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování

Více

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 18 0:40 Algoritmus Algoritmem by se dal nazvat

Více

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

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky

Více

Semestrální práce z předmětu m6f. 2 test dobré shody

Semestrální práce z předmětu m6f. 2 test dobré shody Semestrální práce z předmětu m6f test dobré shody Ikar Pohorský 1. 5. 006 Zadání Ověřte, nebo zamítněte hypotézu, že četnost souborů v jednotlivých třídách velikostí odpovídá exponenciálnímu rozložení.

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

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

Šifrování/Dešifrování s použitím hesla

Šifrování/Dešifrování s použitím hesla Fakulta elektrotechnická Katedra teoretické elektrotechniky Dokumentace k semestrální práci Šifrování/Dešifrování s použitím hesla 2012/13 Petr Zemek Vyučující: Ing. Petr Kropík, Ph.D Předmět: Základy

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

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

ŘÍDÍCÍ STRUKTURY - PODMÍNKY ŘÍDÍCÍ STRUKTURY - PODMÍNKY Pokusíme se rozvětvit sktipt v Bashi ŘÍDÍCÍ STRUKTURY - PODMÍNKY V této lekci budeme probírat podmínkové, tj., které nám pomohou rozvětvit skript a provádět určité pouze při

Více

Implementace numerických metod v jazyce C a Python

Implementace numerických metod v jazyce C a Python Fakulta elektrotechnická Katedra matematiky Dokumentace k semestrální práci Implementace numerických metod v jazyce C a Python 2013/14 Michal Horáček a Petr Zemek Vyučující: Mgr. Zbyněk Vastl Předmět:

Více

Programování. Debugging a testování. Martin Urza

Programování. Debugging a testování. Martin Urza Programování Debugging a testování Martin Urza Co je debugging? V počítačích nulté generace byly důvodem některých chyb zkraty, které způsoboval mimo jiné hmyz, jenž do těchto strojů zalézal. Odstraňování

Více

IUJCE 07/08 Přednáška č. 1

IUJCE 07/08 Přednáška č. 1 Úvod do předmětu Literatura Záznamy přednášek a vaše poznámky Harbison, S. P., Steele, G. L.: Referenční příručka jazyka C Herout, P.: Učebnice jazyka C Kernighan, B. W., Ritchie, D. M.: The C Programming

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

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1. Prvocisla: Kratky ukazkovy priklad na demonstraci baliku WEB. Nasledujici program slouzi pouze jako ukazka nekterych moznosti a sluzeb,

Více

4. Optické senzory polohy

4. Optické senzory polohy 4. Optické senzory polohy Úkoly měření: Měření malého proudu 1) Změřte velikost výstupního signálu fotodiody FD 1 v členu IL300 v závislosti na velikosti budicího proudu IRED (infračervené diody), jejíž

Více

UNIVERZITA OBRANY. Knihovna HLAGate. Programátorská dokumentace. Petr Františ 24.1.2011

UNIVERZITA OBRANY. Knihovna HLAGate. Programátorská dokumentace. Petr Františ 24.1.2011 UNIVERZITA OBRANY Knihovna HLAGate Programátorská dokumentace Petr Františ 24.1.2011 Programátorská dokumentace knihovny HLAGate, výsledek projektu DISIM Popis knihovny Knihovna HLAGate je určena pro propojení

Více

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

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

Vývoj, výroba, prodej a montáž docházkových a identifikačních systémů

Vývoj, výroba, prodej a montáž docházkových a identifikačních systémů BM Software, Němčičky 84, 69107 Němčičky u Břeclavi Vývoj, výroba, prodej a montáž docházkových a identifikačních systémů Tel: 519430765, Mobil: 608447546, e-mail: bmsoft@seznam.cz, web: http://www.dochazka.eu

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

Algoritmizace a programování

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

Více

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

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, 2007. Šablonovací systém htmltmpl

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, 2007. Šablonovací systém htmltmpl Šablonovací systém htmltmpl 1 Představení šablonovacích systémů Každý, kdo se zabývá tvorbou webových aplikací dříve nebo později zjistí, že je vhodné oddělovat obsah aplikace od jejího vzhledu. Pokud

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

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou

Více

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

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

Více

DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky

DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky ze sady: 02 tematický okruh sady: Tabulkový editor ze šablony: 07 KANCELÁŘSKÝ SOFTWARE určeno pro: 1-4. ročník

Více

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

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

Více

Téma: Arkanoid. X36SOJ Strojově orientované jazyky Semestrální práce. Vypracoval: Marek Handl Datum: červen 2006

Téma: Arkanoid. X36SOJ Strojově orientované jazyky Semestrální práce. Vypracoval: Marek Handl Datum: červen 2006 Vypracoval: Marek Handl Datum: červen 2006 X36SOJ Strojově orientované jazyky Semestrální práce Téma: Arkanoid Úvod Program je verzí klasické hry Arkanoid. Na herní ploše jsou rozloženy kostičky, které

Více

Úvod do programování v jazyce Java

Úvod do programování v jazyce Java Úvod do programování v jazyce Java Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 5. říjen, 2011 Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 1 / 17 Organizační informace email: petr.krajca@upol.cz

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

Elektronická dokumentace - LATEX. Maticové operace

Elektronická dokumentace - LATEX. Maticové operace Elektronická dokumentace - LATEX Maticové operace 29.listopadu 2009 Luděk Bordovský (bor0022) Fakulta elektrotechniky a informatiky VŠB-TU Ostrava Uživatelská příručka 1 Obsah 1 Úvod 3 2 Ovládání 3 3 Operace

Více

Rámcový manuál pro práci s programem TopoL pro Windows

Rámcový manuál pro práci s programem TopoL pro Windows Rámcový manuál pro práci s programem TopoL pro Windows Příkazy v nabídce Předmět Volba rastru rychlá klávesa F4 Příkaz otevře vybraný rastr; tj. zobrazí ho v předmětu zájmu. Po vyvolání příkazu se objeví

Více

Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele

Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele Strukturu lze funkci předat: hodnotou i pomocí ukazatele pouze pomocí ukazatele (reference na strukturu) pouze hodnotou (kopie struktury) (pole[i])+j adresa prvku na souřadnicích i, j adresa i-tého řádku

Více

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti. Intervalové stromy Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme průběžně provádět tyto dvě operace: 1. Změna jednoho čísla v posloupnosti. 2. Zjištění součtu čísel

Více

Standardní algoritmy vyhledávací.

Standardní algoritmy vyhledávací. Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární

Více

Jazyk C# (seminář 5)

Jazyk C# (seminář 5) Jazyk C# (seminář 5) Pavel Procházka KMI 23. října 2014 Přetěžování metod motivace Představme si, že máme metodu, která uvnitř dělá prakticky to samé, ale liší se pouze parametry V C# můžeme více metod

Více

Data, výrazy, příkazy

Data, výrazy, příkazy Data, výrazy, příkazy Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Přednášky byly připraveny s pomocí materiálů, které vyrobili Ladislav Vágner, Pavel Strnad, Martin Hořeňovský, Aleš Hrabalík

Více

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

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

Více

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