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

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

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

Transkript

1 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 je třeba získat alespoň 10 bodů. K zisku zápočtu je třeba splnit alespoň 8 z 12 cvičení a zároveň musí být splněna cvičení 3, 4, 5, 6 a 8. Příklady je nutno prezentovat osobně (v čase cvičení, případně jindy po domluvě). Prezentování cizích zdrojových kódů jako vlastních povede k zahájení disciplinárního řízení a může vést až k vyloučení ze studia. Objevili jste v příkladech chybu (i pravopisnou)? Je nějaký příklad nesrozumitelný? Je nějaký příklad příliš těžký, lehký vzhledem k počtu bodů? Máte nápady na nové příklady? Dejte mě vědět, zabere Vám to pár vteřin: Nejúspěšnější řešitelé (maximum bodů je 394) 1. Student školní rok počet bodů 2. Student školní rok počet bodů 3. Student školní rok počet bodů 4. Student školní rok počet bodů 5. Student školní rok počet bodů 6. Student školní rok počet bodů 7. Student školní rok počet bodů 8. Student školní rok počet bodů 9. Student školní rok počet bodů 10. Student školní rok počet bodů

2 1. hodina Příklady vyřešte v libovolném procedurálním programovacím jazyce nebo na papír. Správnost programu otestujte zadáním různých vstupních hodnot. Hodina se považuje za splněnou po zisku alespoň 10 bodů z možných 34 bodů. Příklad 1.1: Specifický aritmetický výraz Ve funkci Main deklarujte tři celočíselné proměnné (pojmenujte je libovolně) a tyto proměnné inicializujte hodnotami (ideálně různými). Napište program, který spočte následující aritmetický výraz: Hodnoty posledních dvou proměnných vynásobte a od získaného výsledku odečtěte hodnotu první proměnné. Aritmetický výraz a jeho výsledek vypište vhodným způsobem na obrazovku. [1 bod]. Hodnota první proměnné je 12, hodnota druhé proměnné je 5, hodnota třetí proměnné je 9. Výsledek výrazu 5*9-12 je 33 Příklad 1.2: Zbytek po celočíselném dělení bez operátoru % Ve funkci Main deklarujte dvě celočíselné proměnné (pojmenujte je libovolně) a tyto proměnné inicializujte hodnotami (ideálně různými). Napište program, který spočte zbytek po celočíselném dělení první zadané proměnné druhou zadanou proměnnou. Program nesmí použít operátor zbytku po celočíselném dělení %. Cíl výpočtu a jeho výsledek vypište vhodným způsobem na obrazovku. [3 body] Hodnota první proměnné je 14, hodnota druhé proměnné je 3. Zbytek po celočíselném dělení čísla 14 číslem 3 je 2. Příklad 1.3: Počet čísel menších než 10 Ve funkci Main deklarujte tři celočíselné proměnné (pojmenujte je libovolně) a tyto proměnné inicializujte hodnotami. Napište program, který určí, kolik ze zadaných hodnot je menších než hodnota 10. Cíl příkladu a jeho výsledek vypište vhodným způsobem na obrazovku. [1 bod] Hodnota první proměnné je 8, hodnota druhé proměnné je 22 hodnota třetí proměnné je 10. Ze zadaných čísel 8, 22 a 10 je/jsou 1 číslo/a/el menší než hodnota 10. Příklad 1.4: Největší ze tří čísel Ve funkci Main deklarujte tři celočíselné proměnné (pojmenujte je libovolně) a tyto proměnné inicializujte hodnotami (ideálně různými). Napište program, který určí nejvyšší z hodnot výše uvedených tří proměnných. Cíl příkladu a jeho výsledek vypište vhodným způsobem na obrazovku. [1 bod] Hodnota první proměnné je 14, hodnota druhé proměnné je 6, hodnota třetí proměnné je 23. Nejvyšší z hodnot 14, 6 a 23 je 23.

3 Příklad 1.5: Prostřední ze tří čísel Ve funkci Main deklarujte tři celočíselné proměnné (pojmenujte je libovolně) a tyto proměnné inicializujte hodnotami (ideálně různými). Napište program, který určí prostřední (= druhou nejvyšší) z hodnot výše uvedených tří proměnných. Cíl příkladu a jeho výsledek vypište vhodným způsobem na obrazovku. [6 bodů] Hodnota první proměnné je 11, hodnota druhé proměnné je 18, hodnota třetí proměnné je 5. Prostřední z hodnot 11, 18 a 5 je 11. Příklad 1.6: Různá čísla Ve funkci Main deklarujte tři celočíselné proměnné (pojmenujte je libovolně) a tyto proměnné inicializujte hodnotami. Napište program, který určí, zda zadané hodnoty čísel jsou navzájem (po dvou) různá. Cíl příkladu a jeho výsledek vypište vhodným způsobem na obrazovku. [2 body] Hodnota první proměnné je 7, hodnota druhé proměnné je 3 hodnota třetí proměnné je 7. Hodnoty 7, 3 a 7 nejsou navzájem různá. Hodnota první proměnné je 25, hodnota druhé proměnné je 8 hodnota třetí proměnné je 19. Hodnoty 25, 8 a 19 jsou navzájem různá. Příklad 1.7: Lichá vs sudá čísla Ve funkci Main deklarujte tři celočíselné proměnné (pojmenujte je libovolně) a tyto proměnné inicializujte hodnotami. Napište program, který určí, zda součet lichých hodnot z těchto tří čísel je vyšší nebo nižší než součet sudých hodnot z těchto tří čísel, případně zda si jsou součty rovny. Cíl příkladu a jeho výsledek vypište vhodným způsobem na obrazovku. [4 body] Hodnota první proměnné je 9, hodnota druhé proměnné je 2 hodnota třetí proměnné je 6. Zadaná čísla 9, 2 a 6 mají součet lichých hodnot 9 vyšší než součet sudých hodnot 8. Příklad 1.8: Dělitel čísla Ve funkci Main deklarujte tři celočíselné proměnné (pojmenujte je libovolně) a tyto proměnné inicializujte hodnotami. Napište program, který určí, zda některé z čísel je dělitelem jiného čísla, nebo zda všechna čísla jsou vzájemně (po dvou) nesoudělná. Je-li více správných dvojic číslo a jeho dělitel, uveďte libovolnou z těchto dvojic. Cíl příkladu a jeho výsledek vypište vhodným způsobem na obrazovku. [5 bodů] Hodnota první proměnné je 6, hodnota druhé proměnné je 3 hodnota třetí proměnné je 8. Ze zadaných čísel 9, 3 a 8 je číslo 3 dělitelem čísla 6. Hodnota první proměnné je 7, hodnota druhé proměnné je 2 hodnota třetí proměnné je 5. Ze zadaných čísel 7, 2 a 5 není žádné číslo dělitelem jiného čísla.

4 Příklad 1.9: Sčítance čísla Ve funkci Main deklarujte tři celočíselné proměnné (pojmenujte je libovolně) a tyto proměnné inicializujte hodnotami. Napište program, který určí, zda některé z čísel je součtem zbývajících dvou čísel, nebo zda žádné dvě čísla netvoří součet třetího čísla. Cíl příkladu a jeho výsledek vypište vhodným způsobem na obrazovku. [5 bodů] Hodnota první proměnné je 4, hodnota druhé proměnné je 15 hodnota třetí proměnné je 9. Ze zadaných čísel 4, 15 a 9 je číslo 15 součtem čísel 4 a 9. Příklad 1.10: Jízdné v MHD Jízdné v MHD je závislé na věku cestujícího. Lze jezdit zdarma, za poloviční jízdné 12 Kč a za plné jízdné 24 Kč v závislosti na splnění následujících podmínek. Pokud cestující splní více podmínek, platí pro něj nejvýhodnější jízdné. Kdokoliv může jezdit za plné jízdné. Cestující mladší 6 let mohou jezdit zdarma. Cestující mladší 15 let nebo ve věku 60 let a starší mohou jezdit za poloviční jízdné. Ve funkci Main deklarujte jednu celočíselnou proměnnou (pojmenujte je libovolně) a tuto proměnnou inicializujte hodnotou, které by mohla reprezentovat věk cestujícího. Napište program, který určí, jízdné pro daný věk cestujícího. Cíl příkladu a jeho výsledek vypište vhodným způsobem na obrazovku. [3 body] Hodnota proměnné je 9. Cestující ve veku 9 let zaplatí jízdné 12 Kč. Hodnota proměnné je 15. Cestující ve veku 15 let zaplatí jízdné 24 Kč. Hodnota proměnné je 3. Cestující ve veku 3 let zaplatí jízdné 0 Kč. Příklad 1.11: Rychlost na dálnici Nejnižší povolená rychlost na dálnici je 60 km/h, za její nedodržení je udělena pokuta 1000 Kč. Nejvyšší povolená rychlost na dálnici je 130 km/h, za její překročení je udělena pokuta 2000 Kč. V případě výrazného překročení nejvyšší povolené se pokuta zvyšuje o 500 Kč za každých započatých 5 km/h nad 150 km/h. Ve funkci Main deklarujte jednu celočíselnou proměnnou (pojmenujte je libovolně) a tuto proměnnou inicializujte hodnotou, které by mohla reprezentovat rychlost automobilu. Napište program, který určí výši pokuty odpovídající dané rychlosti. Cíl příkladu a jeho výsledek vypište vhodným způsobem na obrazovku. [3 body] Hodnota proměnné je 146. Rychlost 146 km/h je pokutována částkou 2000 Kč. Hodnota proměnné je 162. Rychlost 162 km/h je pokutována částkou 3500 Kč.

5 2. hodina Příklady vyřešte v libovolném procedurálním programovacím jazyce, v krajním případě na papír. Další hodiny řešení na papír nebude již přípustné. Správnost programu otestujte zadáním různých vstupních hodnot. Hodina se považuje za splněnou po zisku alespoň 10 bodů z možných 28 bodů. Příklad 2.1: Dvě čísla sestupně Uživatel zadá dvě čísla z klávesnice. Vypište tato čísla setříděná sestupně dle jejich hodnot.. [1 bod] Setridime dve cisla sestupne Zadejte prvni cislo: 5 Zadejte druhe cislo: 9 Setridena cisla jsou 9, 5 Příklad 2.2: Tři čísla vzestupně Uživatel zadá tři čísla z klávesnice. Vypište tato čísla setříděná vzestupně dle jejich hodnot.. [3 body] Setridime tri cisla vzestupne Zadejte prvni cislo: 33 Zadejte druhe cislo: 6 Zadejte treti cislo: 14 Setridena cisla jsou 6, 14, 33 Příklad 2.3: Dvojciferná čísla Vypište všechna dvojciferná čísla. [1 bod] Vsechna dvojciferna cisla jsou: 10, 11, 12, , 99 Příklad 2.4 Faktoriál Uživatel zadá číslo. Vypište faktoriál tohoto čísla. Faktoriál čísla 0 je definován jako 1, faktoriál pro číslo n>0 je definovaný jako součin všech čísel od 1 do n. Pro záporná čísla není faktoriál definován. Př.: 6! = 1*2*3*4*5*6 =720. [1 bod] Vypocteme faktorial kladneho cisla Zadejte cislo: 6 Faktorial je 720 Příklad 2.5: Nejmenší společný násobek Uživatel zadá dvě čísla z klávesnice. Vypište jejich nejmenší společný násobek. Nejmenší společný násobek čísel x a y je nejmenší číslo n takové, že x dělí n bezezbytku a zároveň y dělí n bezezbytku. Nápověda: využijte Euklidův algoritmus, který nalezne největšího společného dělitele. [3 body]

6 Spocteme nejmensi spolecny nasobek cisel Zadej prvni cislo: 21 Zadej druhe cislo: 30 Nejmensi spolecny nasobek je 210 Příklad 2.6 Prvočísla Vypište všechna prvočísla menší než 1000 [3 body] Vsechna prvocisla mensi nez 1000: 2, 3, 5, , 997 Příklad 2.7 Dokonalá čísla Vypište všechna dokonalá čísla menší než Číslo je dokonalé, pokud je rovno součtu svých dělitelů, kromě sebe sama. Např. 6 = 1+2+3; 28 = [3 body] Vsechna dokonala cisla mensi nez 10000: 6, 28, Příklad 2.8 Armstrongova čísla Vypište všechna Armstrongova čísla menší než Armstrongovo číslo řádu n je n- ciferné číslo, které je rovno součtu n-tých mocnin svých cifer. Například jakékoliv jednociferné číslo je Armstrongovo číslo řádu 1, číslo 153 = 1*1*1+5*5*5+3*3*3 je Armstrongovo číslo řádu 3. [4 body] Vsechna Armstrongova cisla mensi nez : 1, 2, Příklad 2.9 Statistické informace Uživatel zadává posloupnost kladných čísel. Pokud uživatel zadá nekladné číslo, je posloupnost ukončena (a toto nekladné číslo není její součástí). Vypište: a) počet čísel v posloupnosti. Pokud posloupnost obsahuje nejvýše jedno číslo, nevypisujte další části úkolu. [1/2 bodu] b) součet hodnot čísel [1/2 bodu] c) hodnotu největšího čísla [1 bod] d) hodnotu nejmenšího čísla [1 bod] e) hodnotu druhého největšího číslo [1 bod] f) hodnotu druhého nejmenšího číslo [1 bod] Spocteme statisticke informace o zadanych kladnych cislech. Zadejte cislo: 5 Zadejte cislo: 6 Zadejte cislo: 11 Zadejte cislo: 22 Zadejte cislo: 15 Zadejte cislo: 0 Delka posloupnosti je 5. Soucet prvku posloupnosti je 59. Nejmensi prvek posloupnosti je 5, druhy nejmensi je 6. Nejvetsi prvek posloupnosti je 22, druhy nejvetsi je 15.

7 Příklad 2.10 Druh posloupnosti Uživatel zadává posloupnost kladných čísel. Pokud uživatel zadá nekladné číslo, je posloupnost ukončena (a toto nekladné číslo není její součástí). Vypište jakého z následujících druhů je posloupnost: krátká, rostoucí, neklesající, konstantní, nerostoucí, klesající, není monotónní. a) Posloupnost je krátká, pokud obsahuje nejvýše jedno číslo. Ostatní druhy posloupností vyžadují alespoň dvě čísla. b) Posloupnost je konstantní, pokud hodnoty všech čísel jsou si rovny. Př.: 17, 17, 17, 17, 17. c) Posloupnost je rostoucí, pokud pro každé číslo posloupnosti platí, že jeho hodnota je menší než hodnota následujícího čísla. Př.: 2, 6, 19, 37, 38, 40, 95. d) Posloupnost je klesající, pokud pro každé číslo posloupnosti platí, že jeho hodnota je větší než hodnota následujícího čísla.. Př.: 85, 67, 66, 14, 9, 5, 2, 1 e) Posloupnost je neklesající, pokud pro každé číslo posloupnosti platí, že jeho hodnota je menší než hodnota následujícího čísla, nebo se hodnotě následujícího čísla rovná. V posloupnosti se musí vyskytovat alespoň jedna dvojice po sobě následujících čísel, jejichž hodnoty jsou si rovny (posloupnost není rostoucí) a alespoň jedna dvojice po sobě následujících čísel, jejichž hodnoty si nejsou rovny (posloupnost není konstantní). Př.: 4, 11, 11, 26, 31, 45, 88. f) Posloupnost je nerostoucí, pokud pro každé číslo posloupnosti platí, že jeho hodnota je větší než hodnota následujícího čísla, nebo se hodnotě následujícího čísla rovná. V posloupnosti se musí vyskytovat alespoň jedna dvojice po sobě následujících čísel, jejichž hodnoty jsou si rovny (posloupnost není klesající) a alespoň jedna dvojice po sobě následujících čísel, jejichž hodnoty si nejsou rovny (posloupnost není konstantní). Př.: 55, 49, 49, 49, 35, 20, 12, 9, 9, 6, 2. g) V ostatních případech posloupnost není monotónní. Př.: 60, 20, 8, 8, 12, 5 [4 body] Zjistime druh posloupnosti. Zadejte cislo: 15 Zadejte cislo: 8 Zadejte cislo: 6 Zadejte cislo: 6 Zadejte cislo: 2 Zadejte cislo: 0 Posloupnost je nerostouci.

8 3. hodina Příklady vyřešte v libovolném procedurálním programovacím jazyce. Správnost programu otestujte zadáním různých vstupních hodnot. Hodina se považuje za splněnou po zisku alespoň 10 bodů z možných 30 bodů. Příklad 3.1: DPH a) Napište funkci, která pro zadanou cenu zboží a číselně zadanou sazbu DPH spočte cenu zboží s DPH. [1 bod] b) Napište funkci, která pro sazbu DPH použijete výčtový typ. Existují tři sazby DPH: základní 21%, první snížená 15% a druhá snížená 10% [1 bod]: x = SpoctiDPH1(56.20, 21); // y = SpoctiDPH2(115, DPH.PrvniSnizena); // Příklad 3.2: BMI BMI (Body Mass Index) se počítá: váha v kilogramech vydělená druhou mocninou výšky v metrech. a) Napište funkci, která pro zadanou hodnotu výšky a váhy spočte BMI. [1 bod] b) Napište funkci, která místo číselné hodnoty bude vracet výčtový typ. [1 bod] BMI výčtový typ [0; 16,5) těžká podvýživa [16,5; 18,5) podváha [18,5; 25) optimální váha [25; 30) nadváha [30; 35) obezita prvního stupně [35 ; 40) obezita druhého stupně [40; oo) obezita třetího stupně Ukázka : x = SpoctiBMI1(1.70, 61.5); // y = SpoctiBMI2(1.67, 80); // Nadvaha Příklad 3.3 Aritmetický výraz Napište následující funkce bez použití funkcí z Math. Návratové hodnoty funkcí budou vždy reálná čísla. Reálná čísla jsou schopna reprezentovat vyšší číselné hodnoty než čísla celá a) Funkci, která pro zadané celé číslo spočte jeho faktoriál. [1 bod] b) Funkci, která pro zadané reálné číslo spočte jeho nezápornou celočíselnou mocninu [1 bod] c) Funkci, která pro zadané reálné číslo n spočte hodnotu e n, která je přibližně dána níže uvedeným vztahem. [1 bod] 100 k n k k = 0! [1 bod] d) Funkci, která pro zadaná celá čísla n a k spočte jejich kombinační číslo. Pro dvojice n a k nesplňující podmínku n k 0 je kombinační číslo rovno 0, pro ostatní dvojice je kombinační číslo dané níže uvedeným vztahem. [1 bod]

9 n = k n! k!( n k)! x = faktorial(11); // y = mocina(5, 3); // z = mocina(2.69, 7); // a = vyraz(5.14); // b = kombinace(49, 6); // Příklad 3.4 Komplexní čísla Vytvořte strukturu pro reprezentaci komplexních čísel v algebraickém tvaru. Napište funkce pro následující operace a) sčítání komplexních čísel [1/2 bodu] b) odečítání komplexních čísel [1/2 bodu] c) násobení komplexních čísel [1 bod] ( a + bi) + ( c + di) = a + c + ( b + d) i ( a + bi) ( c + di) = a c + ( b d) i ( a + bi) ( c + di) = ac bd + ( ad + bc) i x.re = 5.2; x.im = 3.25; y.re = 1.6; y.im = -4; a = secti(x, y); // i b = odecti(x, y); // i c = vynasob(x, y); // i Příklad 3.5 Trojúhelník v rovině Vytvořte strukturu bod v rovině. Vytvořte strukturu trojúhelník, obsahující tři body. Za použití euklidovské metriky napište následující funkce. V euklidovské metrice se vzdálenost mezi dvěma body rovná odmocnině ze součtu druhých mocnin rozdílů odpovídajících souřadnic daných bodů. a) Funkci, která porovná zda dvě reálná čísla se v absolutní hodnotě liší nejvýše o Tuto funkci použijte kdykoliv porovnáváte dvě reálná čísla na rovnost. [1 bod] b) Funkci která spočte délku úsečky. [1 bod] c) Funkci, která rozhodne zda zadané tři body tvoří trojúhelník. Body tvoří trojúhelník, pokud neleží na přímce. Tři body vytvoří tři úsečky. Body neleží na přímce, pokud součet délek dvou kratších úseček je delší než délka nejdelší úsečky. [2 body] d) Funkci, která spočte obvod trojúhelníku. Obvod trojúhelníku je roven součtu délek stran trojúhelníku. [1 bod] e) Funkci, která rozhodne, zda zadaný trojúhelník je pravoúhlý. Podle Pythagorovy věty se v pravoúhlém trojúhelníku součet druhých mocnin kratších stran rovná druhé mocnině delší strany. [2 body]

10 b1.x = 7.2; b1.y = -2; b2.x = -2.9; b2.y = -6.23; b3.x = 2; b3.y = 5; b4.x = -1; b4.y = -2.5; b5.x = 3; b5.y = 7.5; b6.x = 3; b6.y = -2.6; b7.x = 5.2; b7.y = -2.6; t1.a = b1; t1.b = b2; t1.c = b3; t2.a = b5; t2.b = b6; t2.c = b7; je1 = PribliznaRovnost(5, ); // true delka = DelkaUsecky(b1, b2); // je2 = JeTrojuhelnik(b1, b2, b3); // true je3 = JeTrojuhelnik(b4, b3, b5); //false obvod1 = ObvodTrojuhelniku(t1); // obvod2 = ObvodTrojuhelniku(t2); // je4 = TrojuhelnikJePravouhly(t2); // true Příklad 3.6 Kámen, nůžky papír Napište program, který si s uživatelem zahraje hru kámen, nůžky, papír. Hraje se na dvě vítězná kola. Použijte výčtový typ. V každém kole si uživatel zvolí jeden z výše uvedených předmětů předmětů, počítač svůj předmět vylosuje náhodně. Kámen poráží nůžky, nůžky poráží papír, papír poráží kámen. Pokud si uživatel i počítač zvolili stejný předmět, dané kolo se opakuje do té doby, dokud nebudou zvoleny různé předměty. [5 bodů] Vitejte ve hre kamen nuzky papir Hrajeme na dve vitezna kola Zadejte svuj tah: 6 Tento tah je neplatny Zadejte svuj tah: kamen Hrac zahral Kamen, pocitac zahral Kamen Toto kolo je nerozhodne Celkove skore: hrac 0 pocitac 0 Zadejte svuj tah: papir Hrac zahral Papir, pocitac zahral Nuzky Toto kolo vyhral pocitac Celkove skore: hrac 0 pocitac 1 Zadejte svuj tah: papir Hrac zahral Papir, pocitac zahral Kamen Toto kolo vyhral hrac Celkove skore: hrac 1 pocitac 1 Zadejte svuj tah: nuzky Hrac zahral Nuzky, pocitac zahral Papir Toto kolo vyhral hrac Celkove skore: hrac 2 pocitac 1 Celou hru vyhral hrac

11 Příklad 3.7 Počet dní po datu Napište funkci, která k zadanému datu (pomocí struktury) a počtu dní určí datum, které po zadaném datu nastane za zadaný počet dní. Funkce zohledňuje přestupné roky. [4 body] Správnost programu si můžete ověřit na online datumové kalkulačce d.den = 16; d.mesic = 7; d.rok = 2015; d1 = NasledneDatum(d, 500); // Příklad 3.8 Den v týdnu Napište funkci, která k zadanému datu (pomocí struktury) určí den v týdnu (výčtový typ). Funkce zohledňuje přestupné roky. Nápověda bylo pondělí. [4 body] Správnost programu si můžete ověřit na online datumové kalkulačce d.den = 15; d.mesic = 3; d.rok = 1966; den = DenVTydnu(d); // Utery

12 4. hodina Příklady vyřešte v libovolném procedurálním programovacím jazyce. Správnost programu otestujte zadáním různých vstupních hodnot. Hodina se považuje za splněnou po zisku alespoň 10 bodů z možných 30 bodů. Příklad 4.1: Sestupné setřídění Napište funkci, která své dva parametry setřídí sestupně. [1 bod] int a = 5, b = 7; SetridSestupne(ref a, ref b); // a = 7; b = 5; Příklad 4.2: Absolutní hodnota pole Napište funkci, která v zadaném poli nahradí hodnoty jednotlivých prvků pole jejich absolutní hodnotou. [1 bod] int[] pole = { 5, -2, 0, -1, 7, -12, 2, 4 }; AbsolutniHodnotaPole(pole); // 5, 2, 0, 1, 7, 12, 2, 4 Příklad 4.3: Zaokrouhlení pole Napište funkci, která pro zadané pole reálných čísel vrátí pole celých čísel. Hodnoty prvků v novém poli vzniknou zaokrouhlením hodnot prvků z původního pole. [2 body] double[] pole = { 5.12, , 156, 7.9 }; zaokrouhli = ZaokrouhliPole(pole); // 5, -4, 156, 8 Příklad 4.4: Obrácení pole Napište funkci, která v zadaném poli obrátí pořadí prvků. První prvek bude posledním, druhý prvek předposledním, atd. [3 body] int[] pole = { 5, 7, 2, 1, 0, 6 }; ObratPole(pole); // 6, 0, 1, 2, 7, 5 Příklad 4.5: Maximum z pole Napište funkci, která v zadaném poli nezáporných čísel najde a pomocí parametrů funkce vrátí: a) hodnotu největšího prvku [1 bod] b) hodnotu druhého největšího prvku [1 bod] c) třetího největšího prvku [2 body] int[] pole = { 2, 5, 7, 1, 4, 6, 9, 8, 2 }; MaxPole(pole, ref max, ref max2, ref max3); // 9, 8, 7

13 Příklad 4.6: Nejčastější prvek. Napište funkci, která v zadaném poli najde nejčastěji se vyskytující hodnotu prvku. Vyskytují-li se dvě hodnoty stejně často, přednost má první vyskytnuvši se hodnota. [3 body] int[] pole = { 2, 7, 6, 6, 6, 1, 7, 7, 2}; modus = NejcastejsiPrvek(pole); // 7 Příklad 4.7: Skalární součin Napište funkci, která spočte skalární součin dvou stejně dlouhých vektorů. Vektor o n složkách je reprezentovaných pomocí pole délky n. Skalární součin pro dva vektory délky n se počítá jako součet n součinů. Jednotlivé součiny vzniknou vynásobením odpovídajících složek prvního a druhého vektoru [2 body]. int[] u = { 2, 0, -5, 1, 4 }; int[] v = { 7, 4, 2, -2, 0 }; skalar = SkalarniSoucin(u, v); // 2 Příklad 4.8: Zaplatit mincemi Napište funkci, která pro zadané pole obsahující sestupně setříděné nominální hodnoty mincí spočte minimální počet kusů mincí, které je nutno použít pro zaplacení zadané částky. [4 body]. int[] mince = { 50, 20, 10, 5, 2, 1 }; pocet = ZaplatitMincemi(mince, 97); // 5 ( ) pocet = ZaplatitMincemi(mince, 88); // 6 ( ) pocet = ZaplatitMincemi(mince, 26); // 3 (20+5+1) Příklad 4.9 Sportka Napište funkci, která umožní uživateli si zahrát sportku. Výsledkem funkce bude finanční částka vyhraná (častěji však prohraná) uživatelem. Uživatel vyplní na sázence 6 čísel (po dvou různých) z čísel 1 až 49 a počet slosování, na které chce čísla vsadit. Cena jednoho slosování je 20 Kč. Pokud uživatel zadá na sázence neplatnou kombinaci čísel, je mu vrácen vklad. V každém slosování se losují dva tahy. V každém tahu se ze 49 čísel vylosuje 6 řádných čísel a jedno číslo dodatkové. Tahy jsou navzájem nezávislé. V každém tahu uživatel obdrží nejvyšší z výher dle tabulky. Výhry z obou tahů se sčítají. [10 bodů] Tabulka výher 1. pořadí: Kč (uhodnuto 6 řádných čísel) 2. pořadí: Kč (uhodnuto 5 řádných čísel a dodatkové číslo) 3. pořadí: Kč (uhodnuto 5 řádných čísel) 4. pořadí: 619 Kč (uhodnuta 4 řádná čísla) 5. pořadí: 113 Kč (uhodnuta 3 řádná čísla) Zdroj: int[] sazenka = { 7, 9, 22, 6, 14, 48 }; vys = Sportka(sazenka, 5000); //

14 5. hodina Příklady vyřešte v libovolném procedurálním programovacím jazyce. Správnost programu otestujte zadáním různých vstupních hodnot. Hodina se považuje za splněnou po zisku alespoň 10 bodů z možných 32 bodů. Příklad 5.1 Test setříděnosti pole. Napište funkci, která rozhodne, zda zadané pole je sestupně setříděné. Upozornění: ve studijních materiálech jsme pracovali se vzestupně setříděnými poli. [1 bod] int[] pole = { 15, 12, 9, 9, 8, 5, 2, 2, 1 }; bool je = JeSestupne(pole); // true Příklad 5.2 Příprava na třídění Vytvořte dvě globální proměnné (prirazeni a porovnani), které budou sloužit pro měření počtu volání funkcí vytvořených v tomto příkladu. Napište následující funkce, které budou nahrazovat operátory: a) funkce přiřazení (globální proměnná prirazeni ) [1 bod] b) funkce je menší (globální proměnná porovnani ) [1/2 bodu] c) funkce je větší (globální proměnná porovnani ) [1/2 bodu] int x = 5, y = 4, z = 3; bool je1 = JeMensi(y, z); // false bool je2 = JeMensi(x, z); // false bool je3 = JeVetsi(x, y); // true Prirazeni(ref x, y); // x = 4 Prirazeni(ref y, z); // y = 3 Console.WriteLine("Prirazeni: {0}, Porovnani: {1}", prirazeni, porovnani); // 2 3 Příklad 5.3 Sestupné třídění Napište třídící funkce pro sestupné třídění. Body navíc lze získat za použití pomocných funkcí z příkladu 5.2 pro porovnávání a přiřazování hodnot prvků. Nepoužívejte pomocné funkce, pokud jejich operandy jsou řídící proměnné cyklů nebo indexy do tříděného pole. V případě Count sortu pomocné funkce použijte i pro indexy do pomocného pole. Navíc operace s těmito indexy x++ a x-- je nutné rozepsat na x = x+1 a x = x-1. a) Selection sort [3+1 body] b) Insertion sort [3+1 body] c) Bubble sort [2+1 body] d) Count sort [3+2 body] int[] pole = { 5, 7, 1, 5, 6, 8, 9, 0, 1, 2}; SelectionSort(pole); // 9, 8, 7, 6, 5, 5, 2, 1, 1, 0 Console.WriteLine("Prirazeni: {0}, Porovnani: {1}", prirazeni, porovnani); // 30, 55

15 Příklad 5.4 Testování rychlostí algoritmů Otestujte třídící algoritmy z příkladu 5.3 na polích různé velikosti (1000, a prvků), naplněných náhodnými hodnotami z intervalu 0 až velikost pole. Všechny třídící algoritmy budou pracovat nad kopií stejného pole. Výsledky přehledně prezentujte. a) s použitím počtu operací [2 body] b) s použitím měření času [2 body] Ukázka část (a): Prvku 1000 Selection sort porovnani: , prirazeni: 3000 Insertion sort porovnani: , prirazeni: Bubble sort porovnani: , prirazeni: Count sort porovnani: 2995, prirazeni: 3006 Prvku Prvku Ukázka část (b): Prvku Prvku Prvku Selection sort doba behu ms Insertion sort doba behu 9300 ms Bubble sort doba behu ms Count sort doba behu 4 ms Příklad 5.5 Binární vyhledávání Napište funkci hledání zadané hodnoty v sestupně setříděném poli za použití algoritmu binárního vyhledávání: a) Je vrácen index libovolného prvku s hledanou hodnotou. [2 body] b) Je vrácen index prvního prvku v poli, který má hledanou hodnotu. [+1 bod] Ukázka int[] p1 = { 12, 9, 6, 6, 6, 5, 3, 1, 1 }; int index = BinarniVyhledavani(p1, 6); // (a) index = 2, 3, nebo 4 (b) index = 2 Příklad 5.6 Vylepšený Bubble Sort Algoritmus Bubble Sort implementovaný v příkladu 5.3c třídící sestupně zadané pole lze vylepšit. Vnořený cyklus bude procházet pole jen do místa poslední výměny, která proběhla v předchozí iteraci vnějšího cyklu. a) Napište vylepšenou verzi Bubble sortu. [2 body] b) Změřte (dle příkladu 5.4) počty operací a dobu běhu vylepšené a původní verze. [1 bod]

16 Prvku 1000 Bubble sort porovnani: , prirazeni: Bubble sort2 porovnani: , prirazeni: Bubble sort doba behu 46 ms Bubble sort2 doba behu 30 ms Prvku Prvku Příklad 5.7 Vylepšený Count Sort Rozšiřte funkci z příkladu 5.3d pro sestupné setřídění pole pomocí třídícího algoritmu Count Sort. Hodnoty prvků pole jsou z omezeného intervalu, který ale nemusí obsahovat nulu a může obsahovat i záporná čísla [3 body] int[] p1 = { -5, 7, 15, 22, 4, 0, 4, 9, -11 }; CountSort(p1); // 22, 15, 9, 7, 4, 4, 0, -5, -11

17 6. hodina Příklady vyřešte v libovolném procedurálním programovacím jazyce. Správnost programu otestujte zadáním různých vstupních hodnot. Hodina se považuje za splněnou po zisku alespoň 10 bodů z možných 38 bodů. Příklad 6.1 Práce s textovými řetězci Napište následující funkce pro práci s textovými řetězci bez použití funkce Split: a) Funkce vracející počet různých písmen anglické abecedy, které zadaný řetězec obsahuje. Velikost písmen se nerozlišuje. [2 body] b) Funkce vracející první výskyt slova (řetězec složený z písmen) od zadané pozice v zadaném řetězci. Pokud není žádné slovo nalezeno, je vrácen prázdný řetězec. [2 body] c) Funkce vracející počet slov v zadaném řetězci. [2 body] d) Funkce vracející nejdelší slovo v zadaném řetězci. Pokud jsou dvě slova stejně dlouhá, je vráceno slovo, které se v řetězci vyskytuje jako první. Pokud není nalezeno žádné slovo, je vrácen prázdný řetězec. [1 bod] e) Funkce vracející lexikograficky největší slovo v zadaném řetězci. Pokud není nalezeno žádné slovo, je vrácen prázdný řetězec. [1 bod] f) Funkce vracející nejčastěji se vyskytující slovo v zadaném řetězci. Pokud se vyskytují dvě slova stejně často, je vráceno slovo, které se v řetězci vyskytuje jako první. Pokud není nalezeno žádné slovo, je vrácen prázdný řetězec. Dejte pozor na situace, kdy jedno slovo je podslovem jiného slova. V řetězci "Ja a Jana" má slovo "a" pouze jeden výskyt. [4 body] string s1 = "Alena ma 2 ruce."; int ruznych = RuznychPismen(s1); // 8 string s2 = PrvniSlovo(s1, 0); // "Alena" string s3 = PrvniSlovo(s1, s1.length - 1); // "" int pocet = PocetSlov(s1); // 3 string s4 = NejdelsiSlovo(s1); // "Alena" string s5 = NejvetsiSlovo(s1); // "ruce" string s6 = "Mama ma 2 ruce a v ruce hul"; string s7 = NejcastejsiSlovo(s1 + s6); // ruce Příklad 6.2 Césarova šifra Césarova šifra je jednou z nejstarších metod pro převod přenášené zprávy do zašifrované podoby, která je nečitelná pro neinformovaného útočníka. Parametrem šifry je celé číslo nazvané posun. Každé písmeno zprávy je zaměněno za písmeno, které se v abecedě nachází za tímto písmenem o počet znaků určený hodnotou parametru posun. Původní zprávu získáme aplikací tohoto postupu na zašifrovanou zprávu s modifikovaným parametrem posun. Hodnota parametru posun bude mít oproti původní hodnotě tohoto parametru opačné znaménko. a) Implementujte funkci pro zašifrování textového řetězce pomocí této šifry. Pro jednoduchost nezkoumejte co jsou písmena a posouvejte celý řetězec. [1 bod]. b) Slovně (pomocí komentáře ve zdrojovém kódu) popište postup, kterým byste v roli útočníka bez znalosti parametru posun ze zašifrované zprávy získali původní zprávu. [2 body]

18 string s = "Toto je tajny text: 1726"; string zasifrovane = CezarovaSifra(s, 20); // h4~y4u~4yn4ekfj string odsifrovane = CezarovaSifra(zasifrovane, -20); // Musíme získat původní text Příklad 6.3 Naše vlastní řetězce Napište funkce pracující s polem znaků char[], které budou mít stejnou funkčnost jako funkce pro textové řetězce string. (Aniž byste pole znaků char[], na textový řetězec string převedli). a) Funkce lexikografického porovnání řetězců s1 a s2: Compare(s1, s2). [2 body] b) Funkce vracející index prvního výskytu hledaného řetězce s2 v řetězci s1. Řetězec s1 se prohledává od zadané pozice start: IndexOf(s1, s2, start). [2 body] c) Funkce vracející podřetězec zadaného řetězce s1. Podřetězec začíná na zadané pozici a má zadanou délku: Substring(s1, start, delka). [1 bod] d) Funkce vracející řetězec vzniklý vložením řetězce s2 do řetězce s1 na pozici zadanou indexem: Insert(s1, index, s2). [2 body] e) Funkce vracející řetězec vzniklý odstraněním podřetězce ze zadaného řetězce s1. Z řetězce s1 se odstraní podřetězec určený indexem (v rámci řetězce s1) svého prvního znaku a svojí délkou: Remove(s1, index, delka). [2 body] f) Funkce vracející řetězec vzniklý z řetězce s1 nahrazením všech výskytů řetězce s2 za řetězec s3: Replace (s1, s2, s3). [4 body] char[] s1 = "klokan".tochararray(); char[] s2 = "klobouk".tochararray(); int i1 = Compare(s1, s2); // 1 int i2 = IndexOf(s2, "o".tochararray(), 3); // 4 char[] s3 = Substring(s2, 2, 3); // 'o''b''o' char[] s4 = Insert(s1, 1, s3); // 'k''o''b''o''l''o''k''a''n' char[] s5 = Remove(s2, 3, 2); // 'k''l''o''u''k'' char[] s6 = Replace(s5, "k".tochararray(), s3); // 'o''b''o''l''o''u''o''b''o' Příklad 6.4 Ruleta Napište program, který umožní uživateli si zahrát evropskou ruletu. Hra probíhá v sázkových kolech. Uživatel může v každém sázkovém kole uzavírat libovolný počet (a vzájemné kombinace) sázek dle tabulky sázek a výher. Uživatel v rámci sázkového kola zadá všechny své sázky formou jednoho textového řetězce. Formát zadávání sázek navrhněte sami, můžete se inspirovat formátem navrženým v ukázce. Neplatné části řetězce ignorujte. Následně je náhodně vybráno jedno z čísel 0 až 36. Uživateli je oznámeno jak dopadly jeho jednotlivé sázky, jsou mu proplaceny případné výhry. Uživatel může hru v jakémkoliv kole ukončit, případné sázky jsou anulovány. [10 bodů] Tabulka sázek a výher a) jednotlivé číslo (0 až 36), výhra 35x vsazená suma b) liché číslo (1,3,5 35) nebo sudé číslo (2,4,6,.36), výhra 1x vsazená suma c) malé číslo (1 až 18) nebo vysoké číslo (19 až 36), výhra 1x vsazená suma d) tucet: první (1 až 12), druhý (13 až 24), třetí (25 až 36). výhra 2x vsazená suma

19 Vitejte ve hre ruleta: Sazka: cislo 0 az 36, licha, suda, nizka, vysoka, 1. az 3. tucet. Za sazku vlozte vsazenou sumu, sazky lze kombinovat. Sazka? Suda 100 vysoka 200 hotovo Na rulete padlo cislo 24. Sazka na sude cislo ve vysi 100 byla vyhrana. Konto Sazka na vysoke cislo ve vysi 200 byla vyhrana. Konto Sazka na cislo 1 ve vysi 25 byla prohrana. Konto -25. Sazka na cislo 5 ve vysi 20 byla prohrana. Konto -20. Sazka na cislo 9 ve vysi 30 byla prohrana. Konto -30. Stav konta je 222. Sazka? Super jedeme dal 2 tucet 100, 15 50, suda 200 Na rulete padlo cislo 8. Sazka na sude cislo ve vysi 200 byla vyhran. Konto Sazka na 2. tucet ve vysi 100 byla prohrana. Konto Sazka na cislo 15 ve vysi 50 byla prohrana. Konto -50. Stav konta je 275. Sazka? Konec, uz me to staci

20 7. hodina Příklady vyřešte v libovolném procedurálním programovacím jazyce. Správnost programu otestujte zadáním různých vstupních hodnot. Hodina se považuje za splněnou po zisku alespoň 10 bodů z možných 43 bodů. Příklad 7.1 Dlouhá celá čísla Napište funkce pracující s dlouhými celými čísly, které používají způsob uložení cifer v poli big endian (na přednášce byl použit způsob little endian). a) Funkci Vytvor, která převede textový řetězec na číslo [1 bod] b) Funkci Vypis, která vypíše číslo na obrazovku bez zbytečných nul [1 bod] c) Funkce Compare porovná dvě čísla, vrací hodnoty -1,0 a 1. [1 bod] d) Funkce Soucet sečte dvě čísla. [1 bod] e) Funkce Rozdil odečte menší číslo od většího. [1 bod] f) Funkce Soucin vynásobí dvě čísla. [2 body] g) Funkce Podil vydělí číslo číslem. [3 body] int[] c1 = Vytvor(" "); int[] c2 = Vytvor(" "); Vypis(c1); // int i = Compare(c1, c2); // 1 int[] c3 = Soucet(c1, c2); // int[] c4 = Rozdil(c1, c2); // int[] c5 = Soucin(c1, c4); // int[] c6 = Podil(c1, c4); // Příklad 7.2 Dlouhá reálná čísla Napište funkce pracující s dlouhými reálnými čísly v plovoucí řádové čáre, které používají způsob uložení cifer v poli little endian (tento způsob byl použit na přednášce). a) Funkci Vytvor, která převede textový řetězec na číslo. Textový řetězec může (ale nemusí) obsahovat znak pro exponent. Př.: 7896e4 = ; e-2 =56.367; [4 body] b) Funkci Vypis, která vypíše číslo na obrazovku bez zbytečných nul [1 bod] c) Funkce Compare porovná dvě čísla, vrací hodnoty -1,0 a 1. [1 bod] d) Funkce Soucet sečte dvě čísla. V závislosti na znaménku sčítaných čísel bude docházet ke sčítání (př ) nebo odečítání (př ) absolutních hodnot čísel. Na rozdíl od implementace celých čísel vyřešte i možná přetečení a podtečení výsledku. [5 bodů] e) Funkce Soucin vynásobí dvě čísla. [4 body] f) Funkce Podil vydělí číslo číslem. [3 body] Real r1 = Vytvor("-256.2e-1"); // e1 Real r2 = Vytvor(" e15"); // e18 Real r3 = Vytvor(" e15"); // e18 Vypis(r1); Vypis(r2); Vypis(r3); int i = Compare(r1,r2); // -1 Real r4 = Soucet(r2, r2); // e19 Real r5 = Soucet(r1, r3); // e18 Real r6 = Soucet(r2, r3); // 0 Real r7 = Soucin(r1, r2); // e20 Real r8 = Podil(r2, r1); // e17

21 Příklad 7.3 Zlomky Napište funkce pracující se zlomky, které mají čitatele i jmenovatele reprezentované dlouhým celým číslem. Využijte funkce z příkladu 7.1. Výsledky funkcí d až f budou v základním tvaru. Nápověda: pro převod zlomku do základního tvaru využijte Euklidův algoritmus. a) Funkce VytvorZlomek načte zlomek z řetězce. [1 bod] b) Funkce VypisZlomek vypíše zlomek na obrazovku. [1 bod] c) Funkce ZakladniTvar převede zlomek na základní tvar. [2 body] d) Funkce SoucetZlomku sečte dva zlomky. [2 body] e) Funkce SoucinZlomku vynásobí dva zlomky [1 bod] f) Funkce PodilZlomku vydělí zlomek zlomkem. [1 bod] Zlomek z1 = VytvorZlomek("-56890/ "); Zlomek z2 = VytvorZlomek(" /2365"); VypisZlomek(z1); VypisZlomek(z2); ZakladniTvar(ref z1); // / ZakladniTvar(ref z2); // /215 VypisZlomek(z1); VypisZlomek(z2); Zlomek z3 = SoucetZlomku(z1, z2); // / Zlomek z4 = SoucinZlomku(z1, z2); // / Zlomek z5 = PodilZlomku(z2, z1); // / Příklad 7.4 Římská čísla Římská čísla jsou příkladem nepoziční číselné soustavy. Hodnoty číslic nezávisí na jejich pozici v zápise čísla. Hodnoty číslic jsou následující I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = Existují i dvojice číslic, které se považují za jednu číslici: IV = 4, IX = 9, XL = 40, XC = 90, CD 400, CM 900. Číslice jsou v zápisu čísla uspořádány od nejvyšší hodnoty po nejnižší. Například číslo 2016 se zapíše jako MMXLI. Například číslo 1949 se zapíše zkráceným zápisem jako MCMCLIX. Například výraz IM, který měl mít hodnotu 999 odporuje výše uvedeným pravidlům a není povolen. Napište následující funkce: a) Funkce DecRoman převede číslo v desítkové soustavě na římské číslo. [1 bod] b) Funkce RomanDec převede římské číslo na číslo v desítkové soustavě [1 bod]. string s = DecRoman(1969); // "MCMLXIX" int i = RomanDec("MMCDXXXVII"); // 2437 Příklad 7.5 Dlouhá celá čísla v obecné číselné soustavě Funkce z příkladu 7.1 upravte tak, aby pracovali s čísly v zadané číselné soustavě: a) Funkce Soucet sečte dvě čísla. [1/2 bodu] b) Funkce Rozdil odečte menší číslo od většího. [1/2 bodu] c) Funkce Soucin vynásobí dvě čísla. [1/2 bodu] d) Funkce Podil vydělí číslo číslem. [1/2 bodu] e) Napište funkci Prevod, která převede číslo používající způsob uložení cifer big endian z jedné číselné soustavy do druhé číselné soustavy. Při praktických pokusech používejte číselné soustavy o maximálním základu 10, snáze se v nich zobrazují výsledky. [3 body]

22 int[] c1 = Vytvor(" "); int[] c2 = Prevod(c1, 10, 2); // int[] c3 = Prevod(c2, 2, 5); // int[] c4 = Soucet(c3, c3, 5); // int[] c5 = Rozdil(c4, c3, 5); // int[] c6 = Prevod(c5, 5, 7); // int[] c7 = Soucin(c6, c6, 7); // int[] c8 = Podil(c7, c6, 7); // int[] c9 = Prevod(c8, 7, 10); //

23 8. hodina Příklady vyřešte v libovolném procedurálním programovacím jazyce. Správnost programu otestujte zadáním různých vstupních hodnot. Hodina se považuje za splněnou po zisku alespoň 10 bodů z možných 31 bodů. Příklad 8.1 Náhodný binární soubor Napište funkci, která vytvoří binární soubor obsahující zadaný počet náhodných kladných celých čísel. [2 body]. NahodnySoubor("cisla.dat", 1000); // velikost souboru 4000 bytu Příklad 8.2 Převod binárního souboru na textový Napište funkci, která ze zadaného binárního souboru obsahujícího kladné celá čísla vytvoří textový soubor, který bude na každém řádku obsahovat 10 čísel. Nápověda: počet čísel v souboru zjistíte z jeho délky. [3 body]. BinarniNaTextovy("cisla.dat", "cisla.txt"); /* // 10 čísel * // 10 čísel *... // 10 čísel */ Příklad 8.3 Součet čísel na řádku Napište funkci, která ze zadaného textového souboru obsahujícího celá čísla vytvoří nový textový soubor, který bude na každém řádku obsahovat součet čísel z odpovídajícího řádku původního souboru. Nápověda: na součet použijte datový typ long. [3 body] SoucetCisel("cisla.txt", "soucet.txt"); /* * *... */ Příklad 8.4 Změna velikosti písmen Napište funkci, která ze zadaného textového souboru vytvoří nový textový soubor, který se bude od původního souboru lišit jen ve velikosti písmen. V novém souboru bude první řádek velkými písmeny. Na ostatních řádcích budou všechna slova obsahující tři a více písmen začínat velkými písmeny. Zbylá písmena v novém souboru budou malá. [3 body]. ZmenaVelikostiPismen("aaa.txt", "novy.txt"); /* NADPIS TEXTU * Tohle je Ukazkovy Textovy Soubor, na Kterem Budeme Testovat * Druhy Radek Cvicneho Textu. */

24 Příklad 8.5 Řádky se zadaným slovem Napište funkci, která ze zadaného textového souboru vytvoří nový textový soubor, který bude obsahovat pouze ty řádky původního souboru, na kterých se nachází zadané slovo. Velikost písmen se ignoruje [2 body] RadkySeSlovem("aaa.txt", "novy.txt", "dnes"); /* Dnes je sobota. * vcera, dnes, zitra * dnesni */ Příklad 8.6 Statistické údaje Napište funkce, které ze zadaného textového souboru zjistí následující statistické údaje. a) Funkce vracející počet různých znaků, které se v souboru vyskytují. Nápověda: použijte pole velikosti odpovídající rozsahu datového typu char. [1 bod] b) Funkce vracející počet slov, které se v souboru vyskytují. [2 body] c) Funkce vracející počet vět, které se v souboru vyskytují. Věta obsahuje alespoň jedno slovo a je ukončena tečkou, otazníkem nebo vykřičníkem. Věta nemusí začínat velkým písmenem. Pokud první písmeno, které následuje po tečce je malé, tato tečka neukončuje větu. Věta se může nacházet na více řádcích. [2 body] d) Funkce vracející nejdelší slovo, vyskytující se v souboru. V případě, že dvě slova mají shodný počet písmen, vypíše se první z nich. [2 body] e) Funkce vracející nejdelší větu, vyskytující se v souboru. Délka vět je měřena počtem všech znaků. Které obsahuje. V případě, že dvě věty mají shodný počet písmen, vypíše se první z nich. [2 body] int pismen = PocetRuznychZnaku("aaa.txt"); // 36 int slov = PocetSlov("aaa.txt"); // 26 int vet = PocetVet("aaa.txt"); // 5 string slovo = NejdelsiSlovo("aaa.txt"); // "ukazkovy" string veta = NejdelsiVeta("aaa.txt"); // "Nadpis textu\ntohle je 4. ukazkovy textovy soubor.\n" Příklad 8.7 Výpis souborů Napište funkci, která do zadaného textového souboru vypíše názvy všech souborů nacházejících se v zadaném adresáři a obsahujících zadané slovo. Ošetřete i situaci, kdy se soubor určený pro výpis výsledků nachází v adresáři, ve kterém hledáme soubory. [3 body] VypisSouboru("vypis.txt", ".", "posledni"); // C:\UPg\Hodina 08\c07 Vypis souboru\bin\debug\aaa.txt

25 Příklad 8.8 Formátování textu Napište funkci, která ze zadaného textového souboru vytvoří druhý textový soubor, ve kterém bude text zalomen na zadanou délku řádky (obdoba funkcí z MS Word). Řádek bude naplněn slovy tak, že nepůjde na něj žádné další slovo přidat bez porušení požadované délky řádku. Za slovo se (na rozdíl od předchozích příkladů) považuje jakýkoliv řetězec z jiných než bílých znaků. Slova mohou být kombinací písmen, čísel, interpunkčních znamének atd. Bíle znaky a řídící znaky jsou odstraněny a nahrazeny jednou mezerou mezi každými sousedními řetězci. Slovo nesmí být rozděleno na více řádků s výjimkou případu, kdy je delší než maximální délka řádku. Zbylé místo na řádku je vyplněno mezerami. Vytvořte výčtový typ Format, který bude určovat, jakým způsobem se umísťují výplňkové mezery na řádce. a) Text se bude formátovat směrem doleva. Všechny výplňkové mezery jsou přidány za poslední slovo. [2 body] b) Text se bude formátovat směrem doprava. Všechny výplňkové mezery jsou přidány před první slovo. [2 bod] c) Text se bude na střed. Všechny výplňkové mezery jsou rozděleny na dvě poloviny. V případě lichého počtu mezer bude druhá polovina o mezeru větší. První polovina je přidána před první slovo, druhá polovina za poslední slovo [2 body] VypisFormat("aaa.txt", "doleva.txt", Format.DoLeva, 20); /* Nadpis textu Tohle * je 5. ukazkovy * textovy soubor. */ VypisFormat("aaa.txt", "doprava.txt", Format.DoPrava, 20); /* Nadpis textu Tohle * je 5. ukazkovy * textovy soubor. */ VypisFormat("aaa.txt", "nastred.txt", Format.NaStred, 20); /* Nadpis textu Tohle * je 5. ukazkovy * textovy soubor. */

26 9. hodina Příklady vyřešte v libovolném procedurálním programovacím jazyce. Správnost programu otestujte zadáním různých vstupních hodnot. Hodina se považuje za splněnou po zisku alespoň 10 bodů z možných 40 bodů. Příklad 9.1 Matice Napište následující funkce pracující s maticí celých čísel long: a) Funkci, která vytvoří matici zadaného rozměru naplněnou prvky s náhodnými hodnotami. Hodnoty volte z intervalu [-4,+4], je to výhodné pro použití v dalších příkladech. [1 bod] b) Funkci, která zadanou matici uloží do textového souboru. Na prvním řádku bude uložen rozměr matice. Na dalších řádcích budou uloženy jednotlivé řádky matice [1 bod] c) Funkci, která z textového souboru načte matici (zadanou formou uvedenou v 1.b) [1 bod] d) Funkci, která vytvoří transponovanou matici (= záměna řádků za sloupce). [1 bod] e) Funkci testující, zda zadaná matice je symetrická. Matice je symetrická, pokud pro každý prvek nacházející se v řádku s a sloupci r, platí, že jeho hodnota je rovna hodnotě prvku v řádku s a sloupci r. [1 bod]. f) Funkce vracující pole obsahující diagonálu matice. Diagonála matice je tvořena prvky, které se nacházejí v řádku se stejným pořadovým číslem jako je pořadové číslo sloupce, ve kterém se nacházejí. [1 bod]. g) Funkci testující, zda matice je horní trojúhelníková. Tj. Matice je čtvercová a všechny prvky nacházející se pod diagonálou mají nulovou hodnotu. [1 bod]. h) Funkci vracející pořadové číslo sloupce, ve kterém se na zadaném řádku nachází první nenulový prvek. Tj. Na zadaném řádku určí počet prvků s nulovou hodnotou nacházejících se nalevo od prvního nenulového prvku zleva [1 bod]. i) Funkci testující, zda matice je odstupňovaná. V odstupňované matici je na každém řádku počet nul zleva alespoň o jednu nulu větší než na předchozím řádku. [1 bod]. j) Funkci testující, zda matice je jednotková. Jednotková matice je čtvercová matice, která má na diagonále prvky s hodnotou jedna, ostatní prvky mají nulovou hodnotu. [1 bod]. long[,] M1 = NahodnaMatice(2, 3); UlozMatici(M1, "matice1.txt"); long[,] M2 = NactiMatici("matice1.txt"); long[,] M3 = { { 2, 3, 1 }, { 7, 4, 6 } }; long[,] M4 = TransponovanaMatice(M3); // { {2, 7 }, { 3, 4 }, { 1, 6 } } long[,] M5 = { { 2, 6, 1 }, { 6, 4, 3 }, { 1, 3, 7 } }; bool b1 = MaticeJeSymetricka(M5); // true long[] v1 = DiagonalaMatice(M5); // 2, 4, 7 long[,] M6 = { { 4, 5, 2 }, { 0, 3, 6 }, { 0, 0, 9 } }; bool b2 = MaticeJeHorniTrojuhelnikova(M6); // true int i1 = PocetNulZleva(M6, 2); // 2 long[,] M7 = { { 7, 1, 2 }, { 0, 0, 6 } }; bool b3 = MaticeJeOdstupnovana(M7); // true bool b4 = MaticeJeJednotkova(M6); // false

27 Příklad 9.2 Gaussova eliminační metoda Napište následující funkce pracující s maticí celých čísel long: a) Napište funkci OdstupnujMatici, která pomocí elementárních řádkových úprav převede zadanou matici na odstupňovaný tvar. [6 bodů] b) Napište funkci GaussovaEliminace, která za pomocí funkce OdstupnjMatici z matice reprezentující nehomogenní soustavu lineárních rovnic vypočte hodnoty jednotlivých neznámých a vrátí je poli reálných čísel. V případě, že soustava nemá řešení, je vráceno pole nulové délky. V případě, že soustava má nekonečně mnoho řešení, nastavte volitelné proměnné na hodnoty 0. [3 body] c) Napište funkci Zkouska, která ověří, po dosazení hodnot ze zadaného pole reprezentujícího hodnoty neznámých do zadané matice reprezentující nehomogenní soustavu lineárních rovnic platí pro každou rovnici rovnost levé a pravé strany. Tj. hodnoty neznámých v zadaném poli jsou řešením nehomogenní soustavu lineárních rovnic reprezentované zadanou maticí. [1 bod] long[,] M = { { 0, 0, 3, 2 }, { 0, 2, 4, 3 }, { 0, 4, 8, 6 }}; OdstupnujMatici(M); // { { 0, 2, 4, 3 }, { 0, 0, 3, 2 }, { 0, 0, 0, 0 } }; double[] y = GausovaEliminace(M); // , bool b = Zkouska(M, y); // true Příklad 9.3 ANSII Art Pomocí znaků hvězdičky '*' a mezery ' ' vytvořte následující obrazce pro zadanou délku hrany obrazce. Délka hrany obrazce bude liché číslo. Vzhledem k rozdílné výšce a šířce znaků budou obrazce oproti předloze vypadat mírně deformované. Složitější obrazce lze vytvořit postupy, které se naučíte na jednodušších obrazcích. a) Obrazec z předlohy na pozici [0,0] okraje čtverce. [1 bod] b) Obrazec z předlohy na pozici [0,1] okraje čtverce a svislá střední příčka. [1 bod] c) Obrazec z předlohy na pozici [0,2] okraje čtverce a úhlopříčka z levého horního rohu do pravého dolního rohu. [1 bod] d) Obrazec z předlohy na pozici [0,3] okraje čtverce a obě dvě úhlopříčky. [1 bod] e) Obrazec z předlohy na pozici [1,0] okraje čtverce a obě dvě střední příčky. [1 bod] f) Obrazec z předlohy na pozici [1,1] okraje čtverce a obě dvě střední příčky a obě dvě úhlopříčky. [1 bod] g) Obrazec z předlohy na pozici [1, 2] Okraje čtverce a ve čtverci se střídají prázdné a plné řádky. [1 bod] h) Obrazec z předlohy na pozici [1, 3] Mřížka. [1 bod] i) Obrazec z předlohy na pozici [2, 0] Střídání plných a prázdných soustředných čtverců. Obrazec byl probírán na přednášce, proto není bodován. [0 bodů] j) Obrazec z předlohy na pozici [2, 1] Pravá horní polovina čtverce. [1 bod] k) Obrazec z předlohy na pozici [2, 2] Horní čtvrtina čtverce. [1 bod] l) Obrazec z předlohy na pozici [2, 3] Přesýpací hodiny. [1 bod] m) Obrazec z předlohy na pozici [3, 0] Složený obrazec ze 4 samostatných [2 body] n) Obrazec z předlohy na pozici [3, 1] Složený obrazec ze 4 samostatných [3 body] o) Obrazec z předlohy na pozici [3, 2] Složený obrazec ze 4 samostatných [2 body] p) Obrazec z předlohy na pozici [3, 3] Složený obrazec ze 4 samostatných [2 body]

28 char[,] obra = Obrazec00(21); char[,] obrb = Obrazec01(21); //...

29 10. hodina Příklady vyřešte v libovolném procedurálním programovacím jazyce. Správnost programu otestujte zadáním různých vstupních hodnot. Hodina se považuje za splněnou po zisku alespoň 10 bodů z možných 28 bodů. Příklad 10.1 Rekurze s jedním voláním S využitím rekurze napište následující funkce. Na začátku každé funkce bude výpis (v režimu Append) do souboru log.txt. Zapisovat budeme: (1) volání funkce a hodnotu parametrů; (2) ukončení funkce a návratová hodnota. Otevřený soubor bude jedním z parametrů funkce. a) Rekurzivní funkce zanořující se na podproblém velikosti n - 1, která vrátí hodnotu nejmenšího prvku v poli. [2 body] b) Rekurzivní funkce zanořující se na podproblém velikosti n - 1, která vrátí součet prvků v poli, které mají kladnou hodnotu. [2 body] c) Rekurzivní funkce zanořující se na dva podproblémy velikosti n / 2, která vrátí hodnotu nejmenšího prvku v poli. [3 body] d) Rekurzivní zanořující se na dva podproblémy velikosti n / 2, která vrátí součet prvků v poli, které mají kladnou hodnotu. [3 body] e) Rekurzivní funkce, která spočte největšího společného dělitele dvou čísel Euklidovým algoritmem. [3 body] int[] p = {7, 5, 6, -3, -2, 8, -5}; int i1 = Min1(p); // 2 int i2 = Sum1(p); // 26 int i3 = Min2(p); // 2 int i4 = Sum2(p); // 26 int i5 = Euklid(21, 77); // 7 Start Min1(p) Start MinRek1(p,0,6) Start MinRek1(p,0,5) Start MinRek1(p,0,4) Start MinRek1(p,0,3) Start MinRek1(p,0,2) Start MinRek1(p,0,1) Start MinRek1(p,0,0) Konec MinRek1(p,0,0) = 7 Konec MinRek1(p,0,1) = 5 Konec MinRek1(p,0,2) = 5 Konec MinRek1(p,0,3) = -3 Konec MinRek1(p,0,4) = -3 Konec MinRek1(p,0,5) = -3 Konec MinRek1(p,0,6) = -5 Konec Min1(p) = -5 Start Sum2(p) Start SumRek2(p,0,6) Start SumRek2(p,0,2) Start SumRek2(p,0,0) Konec SumRek2(p,0,0) = 7 Start SumRek2(p,2,2) Konec SumRek2(p,2,2) = 6 Konec SumRek2(p,0,2) = 18 Start SumRek2(p,4,6) Start SumRek2(p,4,4) Konec SumRek2(p,4,4) = 0 Start SumRek2(p,6,6) Konec SumRek2(p,6,6) = 0 Konec SumRek2(p,4,6) = 8 Konec SumRek2(p,0,6) = 26 Konec Sum2(p) = 26 Start Euklid(21, 77) Start EuklidRek(21, 77) Start EuklidRek(77, 21) Start EuklidRek(21, 14) Start EuklidRek(14, 7) Start EuklidRek(7, 0) Konec EuklidRek(7, 0) = 7 Konec EuklidRek(14, 7) = 7 Konec EuklidRek(21, 14) = 7 Konec EuklidRek(77, 21) = 7 Konec EuklidRek(21, 77) = 7 Konec Euklid(21, 77) = 7

Úvod do programování 7. hodina

Úvod do programování 7. hodina Úvod do programování 7. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Syntax Znaky Vlastní implementace

Více

II. Úlohy na vložené cykly a podprogramy

II. Úlohy na vložené cykly a podprogramy II. Úlohy na vložené cykly a podprogramy Společné zadání pro příklady 1. - 10. začíná jednou ze dvou možností popisu vstupních dat. Je dána posloupnost (neboli řada) N reálných (resp. celočíselných) hodnot.

Více

Úvod do programování 6. hodina

Úvod do programování 6. hodina Úvod do programování 6. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Algoritmy Třídění pole: Selection

Více

Sbírka příkladů. verze 1.0 2.1.2005

Sbírka příkladů. verze 1.0 2.1.2005 Sbírka příkladů verze 1.0 2.1.2005 Rudolf Kryl Sbírka má pomoci studentům k přípravě na praktický test. Student, který umí programovat, umí ladit a zvládne algoritmicky úlohy této sbírky by neměl mít s

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

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

Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů. 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.

Více

A0M15EZS Elektrické zdroje a soustavy ZS 2011/2012 cvičení 1. Jednotková matice na hlavní diagonále jsou jedničky, všude jinde nuly

A0M15EZS Elektrické zdroje a soustavy ZS 2011/2012 cvičení 1. Jednotková matice na hlavní diagonále jsou jedničky, všude jinde nuly Matice Matice typu (m, n) je uspořádaná m-tice prvků z řádky matice.. Jednotlivé složky této m-tice nazýváme Matice se zapisují Speciální typy matic Nulová matice všechny prvky matice jsou nulové Jednotková

Více

ALGORITMIZACE PROGRAMOVÁNÍ VT3/VT4

ALGORITMIZACE PROGRAMOVÁNÍ VT3/VT4 1 ALGORITMIZACE PROGRAMOVÁNÍ VT3/VT4 Mgr. Martin ŠTOREK LITERATURA ALGORITMIZACE Ing. Jana Pšenčíková ComputerMedia http://www.computermedia.cz/ 2 1 ALGORITMUS Algoritmus je přesný postup, který je potřeba

Více

Lekce 01 Úvod do algoritmizace

Lekce 01 Úvod do algoritmizace Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním

Více

Cykly a pole 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116.

Cykly a pole 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. Cykly a pole Tato část sbírky je tvořena dalšími úlohami na práci s cykly. Na rozdíl od předchozího oddílu se zde již v řešeních úloh objevuje více cyklů, ať už prováděných po sobě nebo vnořených do sebe.

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

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

Součin matice A a čísla α definujeme jako matici αa = (d ij ) typu m n, kde d ij = αa ij pro libovolné indexy i, j.

Součin matice A a čísla α definujeme jako matici αa = (d ij ) typu m n, kde d ij = αa ij pro libovolné indexy i, j. Kapitola 3 Počítání s maticemi Matice stejného typu můžeme sčítat a násobit reálným číslem podobně jako vektory téže dimenze. Definice 3.1 Jsou-li A (a ij ) a B (b ij ) dvě matice stejného typu m n, pak

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

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

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

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

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

Více

Racionální čísla. Množinu racionálních čísel značíme Q. Zlomky můžeme při počítání s nimi:

Racionální čísla. Množinu racionálních čísel značíme Q. Zlomky můžeme při počítání s nimi: Racionální čísla Racionální číslo je číslo vyjádřené ve tvaru zlomku p kde p je celé číslo a q je q číslo přirozené. Tento zápis je jednoznačný pokud čísla p, q jsou nesoudělná, zlomek je v základním tvaru.

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

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová

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

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky KOMPLEXNÍ ČÍSLA Gymnázium Jiřího Wolkera v Prostějově Výukové materiály z matematiky pro vyšší gymnázia Autoři projektu Student na prahu 21. století - využití ICT ve vyučování matematiky na gymnáziu INVESTICE

Více

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty. Proměnná Pojmenované místo v paměti sloužící pro uložení hodnoty. K pojmenování můžeme použít kombinace alfanumerických znaků, včetně diakritiky a podtržítka Rozlišují se velká malá písmena Název proměnné

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

Kód trezoru 1 je liché číslo.

Kód trezoru 1 je liché číslo. 1 Kód trezoru 1 je liché číslo. Kód trezoru 1 není prvočíslo. Každá číslice kódu trezoru 1 je prvočíslo. Ciferný součet kódu trezoru 1 je 12. Druhá cifra kódu trezoru 1 je sudá, ostatní jsou liché. Jeden

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

PODROBNÁ PRAVIDLA SÁZEK

PODROBNÁ PRAVIDLA SÁZEK PODROBNÁ PRAVIDLA SÁZEK OBSAH: 1 - ÚVODNÍ USTANOVENÍ 2 - VÝKLAD POJMŮ SÁZKY 3 - ZÁKLADNÍ TYPY SÁZKOVÝCH PŘÍLEŽITOSTÍ 4 - DALŠÍ SÁZKOVÉ PŘÍLEŽITOSTI ZÁKLADNÍ DRUHY SÁZEK 5 - SÓLO SÁZKA 6 - AKU SÁZKA ROZPISOVÉ

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

Maticové operace projekt č. 3

Maticové operace projekt č. 3 Dokumentace k projektu pro předměty IZP a IUS Maticové operace projekt č. 3 9.12.2007 Autor: Václav Uhlíř, xuhlir04@stud.fit.vutbr.cz Fakulta Informačních Technologii Vysoké Učení Technické v Brně Obsah

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

Funkce a lineární funkce pro studijní obory

Funkce a lineární funkce pro studijní obory Variace 1 Funkce a lineární funkce pro studijní obory Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Funkce

Více

České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská. Matematika ve starověké Babylónii

České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská. Matematika ve starověké Babylónii České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská Matematika ve starověké Babylónii Vít Heřman Praha, 22.2.2008 Obsah: 1. Úvod 2. Historický kontext 3. Dostupné historické zdroje

Více

ALGEBRA. Téma 5: Vektorové prostory

ALGEBRA. Téma 5: Vektorové prostory SLEZSKÁ UNIVERZITA V OPAVĚ Matematický ústav v Opavě Na Rybníčku 1, 746 01 Opava, tel. (553) 684 611 DENNÍ STUDIUM Téma 5: Vektorové prostory Základní pojmy Vektorový prostor nad polem P, reálný (komplexní)

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

VY_32_INOVACE_08_2_04_PR

VY_32_INOVACE_08_2_04_PR Ing. Petr Stránský VY_32_INOVACE_08_2_04_PR Příkazy vstupu - definice Výstupním zařízením může být obrazovka, tiskárna nebo soubor. Jednotlivé údaje se zapisují pomocí příkazu WRITE nebo WRITELN. Příkaz

Více

Jak pracovat s absolutními hodnotami

Jak pracovat s absolutními hodnotami Jak pracovat s absolutními hodnotami Petr Matyáš 1 Co to je absolutní hodnota Absolutní hodnota čísla a, dále ji budeme označovat výrazem a, je jeho vzdálenost od nuly na ose x, tedy je to vždy číslo kladné.

Více

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016 ZPRO cvičení 2 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague October 17, 2016 Outline I 1 Outline 2 Proměnné 3 Proměnné - cvičení 4 Funkce 5 Funkce

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

MATEMATIKA / 1. ROČNÍK. Strategie (metody a formy práce)

MATEMATIKA / 1. ROČNÍK. Strategie (metody a formy práce) MATEMATIKA / 1. ROČNÍK Učivo Čas Strategie (metody a formy práce) Pomůcky Numerace v oboru do 7 30 pokládání koleček rozlišování čísel znázorňování kreslení a představivost třídění - číselné obrázky -

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

Návody k domácí části I. kola kategorie C

Návody k domácí části I. kola kategorie C Návody k domácí části I. kola kategorie C 1. Dokažte, že pro libovolné reálné číslo a platí nerovnost Určete, kdy nastane rovnost. a 2 + 1 a 2 a + 1 a + 1. 1. Dokažte, že pro libovolná reálná čísla x,

Více

Algebraické výrazy-ii

Algebraické výrazy-ii Algebraické výrazy-ii Jednou ze základních úprav mnohočlenů je jejich rozklad na součin mnohočlenů nižšího stupně. Ne všechny mnohočleny lze na součin rozložit. Pro provedení rozkladu můžeme použít: 1.

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

Používejte jen ty konstrukty jazyka C/C++, které jsme doposud probírali (nepoužívejte STL apod.)

Používejte jen ty konstrukty jazyka C/C++, které jsme doposud probírali (nepoužívejte STL apod.) Základy programování v C++ zadání 1.seminární úlohy Zuzana Petříčková 30. října 2018 1 / 9 se skládá ze dvou podúloh: 1 2 Eratosthenovo síto Obecně: Používejte jen ty konstrukty jazyka C/C++, které jsme

Více

Microsoft Excel - tabulky

Microsoft Excel - tabulky Microsoft Excel - tabulky RNDr. Krejčí Jan, Ph.D. 5. listopadu 2015 RNDr. Krejčí Jan, Ph.D. (UJEP) Microsoft Excel - tabulky 5. listopadu 2015 1 / 1 Osnova RNDr. Krejčí Jan, Ph.D. (UJEP) Microsoft Excel

Více

Regulární matice. Věnujeme dále pozornost zejména čtvercovým maticím.

Regulární matice. Věnujeme dále pozornost zejména čtvercovým maticím. Regulární matice Věnujeme dále pozornost zejména čtvercovým maticím. Věta. Pro každou čtvercovou matici A = (a ij ) řádu n nad tělesem (T, +, ) jsou následující podmínky ekvivalentní: (i) Řádky matice

Více

FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika FUNKCE 3 Autor: Mgr. Dana Kaprálová Datum (období) tvorby: září, říjen 2013 Ročník: sedmý Vzdělávací oblast: Informatika a výpočetní technika 1 Anotace: Žáci se seznámí se základní obsluhou tabulkového

Více

Požadavky k opravným zkouškám z matematiky školní rok 2014-2015

Požadavky k opravným zkouškám z matematiky školní rok 2014-2015 Požadavky k opravným zkouškám z matematiky školní rok 2014-2015 1. ročník (první pololetí, druhé pololetí) 1) Množiny. Číselné obory N, Z, Q, I, R. 2) Absolutní hodnota reálného čísla, intervaly. 3) Procenta,

Více

Zdroj: http://www.fit.vutbr.cz

Zdroj: http://www.fit.vutbr.cz Zdroj: http://www.fit.vutbr.cz Motivace Cílem této úlohy je zopakovat si nebo se naučit vytváření obecných řešení, která na rozdíl od ad hoc řešení umožňují zvládat složitější úlohy bez nadměrného úsilí,

Více

Kirchhoffovy zákony. Kirchhoffovy zákony

Kirchhoffovy zákony. Kirchhoffovy zákony Kirchhoffovy zákony 1. Kirchhoffův zákon zákon o zachování elektrických nábojů uzel, větev obvodu... Algebraický součet všech proudů v uzlu se rovná nule Kirchhoffovy zákony 2. Kirchhoffův zákon zákon

Více

Prvočísla a čísla složená

Prvočísla a čísla složená Prvočísla a čísla složená Prvočíslo je každé přirozené číslo, které má právě dva různé dělitele, číslo 1 a samo sebe. Nejmenším a jediným sudým je prvočíslo 2. Další prvočísla: 2, 3, 5, 7, 11, 13, 17,

Více

Racionální čísla. Množinu racionálních čísel značíme Q. Zlomky můžeme při počítání s nimi:

Racionální čísla. Množinu racionálních čísel značíme Q. Zlomky můžeme při počítání s nimi: Racionální čísla Racionální číslo je číslo vyjádřené ve tvaru zlomku p kde p je celé číslo a q je q číslo přirozené. Tento zápis je jednoznačný pokud čísla p, q jsou nesoudělná, zlomek je v základním tvaru.

Více

Základní škola Moravský Beroun, okres Olomouc

Základní škola Moravský Beroun, okres Olomouc Charakteristika vyučovacího předmětu matematika Vyučovací předmět má časovou dotaci čtyři hodiny týdně v prvním ročníku, pět hodin týdně ve druhém až pátém ročníku, pět hodin týdně v šestém ročníku a čtyři

Více

Petr Chvosta. vlevo, bude pravděpodobnost toho, že se tyč na počátku intervalu τ B nachází nad vpravo

Petr Chvosta. vlevo, bude pravděpodobnost toho, že se tyč na počátku intervalu τ B nachází nad vpravo MOLEKULÁRNÍ MOTORY Petr Chvosta. Automobil v krupobití aneb brzděním k pohybu Uvažme automobil stojící na mírném svahu a bombardovaný rovnoměrně ze všech stran obrovskými kroupami. Svah stoupá směrem doprava

Více

Pan Novák si vždy kupuje boty o velikosti 8,5 a každý den stráví

Pan Novák si vždy kupuje boty o velikosti 8,5 a každý den stráví Číselné obory Seznamte se s jistým panem Novákem z Prahy. Je mu 48 let, má 2 děti a bydlí v domě s číslem popisným 157. Vidíte, že základní informace o panu Novákovi můžeme sdělit pomocí několika čísel,

Více

Dělitelnost čísel, nejmenší společný násobek, největší společný dělitel

Dělitelnost čísel, nejmenší společný násobek, největší společný dělitel Variace 1 Dělitelnost čísel, nejmenší společný násobek, největší společný dělitel Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu

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

Příklad. Řešte v : takže rovnice v zadání má v tomto případě jedno řešení. Pro má rovnice tvar

Příklad. Řešte v : takže rovnice v zadání má v tomto případě jedno řešení. Pro má rovnice tvar Řešte v : má rovnice tvar takže rovnice v zadání má v tomto případě jedno řešení. Pro má rovnice tvar takže rovnice v zadání má v tomto případě opět jedno řešení. Sjednocením obou případů dostaneme úplné

Více

Jazyk matematiky. 2.1. Matematická logika. 2.2. Množinové operace. 2.3. Zobrazení. 2.4. Rozšířená číslená osa

Jazyk matematiky. 2.1. Matematická logika. 2.2. Množinové operace. 2.3. Zobrazení. 2.4. Rozšířená číslená osa 2. Jazyk matematiky 2.1. Matematická logika 2.2. Množinové operace 2.3. Zobrazení 2.4. Rozšířená číslená osa 1 2.1 Matematická logika 2.1.1 Výrokový počet logická operace zapisujeme čteme česky negace

Více

1 Mnohočleny a algebraické rovnice

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

Více

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

Dodatek č. 3 ke školnímu vzdělávacímu programu. Strojírenství. (platné znění k 1. 9. 2009)

Dodatek č. 3 ke školnímu vzdělávacímu programu. Strojírenství. (platné znění k 1. 9. 2009) Střední průmyslová škola Jihlava tř. Legionářů 1572/3, Jihlava Dodatek č. 3 ke školnímu vzdělávacímu programu Strojírenství (platné znění k 1. 9. 09) Tento dodatek nabývá platnosti dne 1. 9. 13 (počínaje

Více

3. Celistvé výrazy a jejich úprava 3.1. Číselné výrazy

3. Celistvé výrazy a jejich úprava 3.1. Číselné výrazy . Celistvé výrazy a jejich úprava.1. Číselné výrazy 8. ročník. Celistvé výrazy a jejich úprava Proměnná je znak, zpravidla ve tvaru písmene, který zastupuje čísla z dané množiny čísel. Většinou se setkáváme

Více

Požadavky k opravným zkouškám z matematiky školní rok 2013-2014

Požadavky k opravným zkouškám z matematiky školní rok 2013-2014 Požadavky k opravným zkouškám z matematiky školní rok 2013-2014 1. ročník (první pololetí, druhé pololetí) 1) Množiny. Číselné obory N, Z, Q, I, R. 2) Absolutní hodnota reálného čísla, intervaly. 3) Procenta,

Více

Semestrální projekt. Předmět: Programování v jazyce C. Zadání: Operace s maticemi. Uživatelský manuál. ver. 1.0

Semestrální projekt. Předmět: Programování v jazyce C. Zadání: Operace s maticemi. Uživatelský manuál. ver. 1.0 Semestrální projekt Předmět: Programování v jazyce C Zadání: Operace s maticemi Uživatelský manuál ver. 1.0 Jakub Štrouf Obor: Aplikovaná informatika Semestr: 1. Rok: 2009/2010 Obsah: 1. Úvod 1.1. Technická

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

CVIČNÝ TEST 19. OBSAH I. Cvičný test 2. Mgr. Kateřina Nováková. II. Autorské řešení 5 III. Klíč 13 IV. Záznamový list 15

CVIČNÝ TEST 19. OBSAH I. Cvičný test 2. Mgr. Kateřina Nováková. II. Autorské řešení 5 III. Klíč 13 IV. Záznamový list 15 CVIČNÝ TEST 19 Mgr. Kateřina Nováková OBSAH I. Cvičný test 2 II. Autorské řešení 5 III. Klíč 13 IV. Záznamový list 15 I. CVIČNÝ TEST 1 Určete, kolikrát je rozdíl čísel 289 a 255 větší než jejich součet.

Více

Základy programování (IZP)

Základy programování (IZP) Základy programování (IZP) Sedmé počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 2018/2019,

Více

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi

Více

Obsahové vymezení Vyučovací předmět Matematika zpracovává vzdělávací obsah oboru Matematika a její aplikace z RVP

Obsahové vymezení Vyučovací předmět Matematika zpracovává vzdělávací obsah oboru Matematika a její aplikace z RVP 4 MATEMATIKA 4.1 Charakteristika vyučovacího předmětu Obsahové vymezení Vyučovací předmět Matematika zpracovává vzdělávací obsah oboru Matematika a její aplikace z RVP ZV. Na 1. stupni ZŠ předmět zprostředkovává

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

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

ZŠ ÚnO, Bratří Čapků 1332

ZŠ ÚnO, Bratří Čapků 1332 Úvodní obrazovka Menu Návrat na hlavní stránku Obsah Výsledky Poznámky Záložky edunet Konec Matematika 1 (pro 9-12 let) LangMaster Obsah (střední část) výběr tématu - dvojklikem v seznamu témat (horní

Více

Logaritmy a věty o logaritmech

Logaritmy a věty o logaritmech Variace 1 Logaritmy a věty o logaritmech Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Logaritmy Definice

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

z = a bi. z + v = (a + bi) + (c + di) = (a + c) + (b + d)i. z v = (a + bi) (c + di) = (a c) + (b d)i. z v = (a + bi) (c + di) = (ac bd) + (bc + ad)i.

z = a bi. z + v = (a + bi) + (c + di) = (a + c) + (b + d)i. z v = (a + bi) (c + di) = (a c) + (b d)i. z v = (a + bi) (c + di) = (ac bd) + (bc + ad)i. KOMLEXNÍ ČÍSLA C = {a + bi; a, b R}, kde i 2 = 1 Číslo komplexně sdružené k z = a + bi je číslo z = a bi. Operace s komplexními čísly: z = a + bi, kde a, b R v = c + di, kde c, d R Sčítání Odčítání Násobení

Více

CVIČNÝ TEST 41. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 41. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 41 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT A OBRÁZEK K ÚLOZE 1 Je dán magický čtverec, pro nějž platí,

Více

Úloha 2. Obdélník ABCDprotínákružnicivbodech E, F, G, H jakonaobrázku.jestližeplatí AE =3, DH =4a GH =5,určete EF. G C

Úloha 2. Obdélník ABCDprotínákružnicivbodech E, F, G, H jakonaobrázku.jestližeplatí AE =3, DH =4a GH =5,určete EF. G C Úloha 1. Čitatel i jmenovatel Kennyho zlomku jsou přirozená čísla se součtem 2011. Hodnota zlomku jepřitommenšínež 1 3.Jakánejvětšímůžetatohodnotabýt? Úloha 2. Obdélník Dprotínákružnicivbodech E, F, G,

Více

Úvod do programování. Lekce 1

Úvod do programování. Lekce 1 Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -

Více

CVIČNÝ TEST 1. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 21 IV. Záznamový list 23

CVIČNÝ TEST 1. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 21 IV. Záznamový list 23 CVIČNÝ TEST 1 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 21 IV. Záznamový list 23 I. CVIČNÝ TEST 1 Určete výraz V, který je největším společným dělitelem výrazů V 1 V 3 :

Více

Algebraické výrazy. Algebraický výraz je zápis složený z čísel, písmen (označujících proměnné), znaků matematických funkcí ( +, -,, :, 2, ) a závorek.

Algebraické výrazy. Algebraický výraz je zápis složený z čísel, písmen (označujících proměnné), znaků matematických funkcí ( +, -,, :, 2, ) a závorek. Algebraické výrazy Algebraický výraz je zápis složený z čísel, písmen (označujících proměnné), znaků matematických funkcí ( +, -,, :, 2, ) a závorek. 1. Upravte výrazy: a) 6a + 3b + 2a + c b b) 3m + s

Více

2.2. SČÍTÁNÍ A NÁSOBENÍ MATIC

2.2. SČÍTÁNÍ A NÁSOBENÍ MATIC 22 SČÍTÁNÍ A NÁSOBENÍ MATIC V této kapitole se dozvíte: jak je definováno sčítání matic a jaké má základní vlastnosti jak je definováno násobení matic číslem a jaké má základní vlastnosti zda a proč se

Více

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru Textové řetězce V jazyce C neexistuje typ proměnné, který by byl určen výhradně pro ukládání textu V jazyce C používáme

Více

Školní kolo soutěže Baltík 2009, kategorie C

Školní kolo soutěže Baltík 2009, kategorie C Úloha 1 Sídliště Počet bodů: 40 b Pracujte v 3D režimu s Baltíkem. a) Bílý a šedivý Baltík si postaví šachovnici o rozměru 6x6 políček následujícím způsobem. Předměty SGP21.sgpm a SGP22.sgpm upravte na

Více

Rozklad na součin vytýkáním

Rozklad na součin vytýkáním Rozklad na součin vytýkáním 1. Rozložte na součin prvočísel číslo: 165 = 210 = 546 = 2. Rozložte na součin mocnin prvočísel číslo: 96 = 432 = B. Rozklad na součin vytýkáním 1. Rozložte na součin vytýkáním:

Více

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

Více

Predispozice pro výuku IKT (2015/2016)

Predispozice pro výuku IKT (2015/2016) Konzervatoř P. J. Vejvanovského Kroměříž Predispozice pro výuku IKT (15/16) Základní algoritmy pro počítání s celými a racionálními čísly Adam Šiška 1 Sčítání dvou kladných celých čísel Problém: Jsou dána

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 17. Řadící algoritmy Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2

Více

Formátové specifikace formátovací řetězce

Formátové specifikace formátovací řetězce 27.2.2007 Formátové specifikace formátovací řetězce - je to posloupnost podle které překladač pozná jaký formát má výstup mít - posloupnosti začínají znakem % a určující formát vstupu/výstupu - pokud chcete

Více

CVIČNÝ TEST 35. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 35. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 35 Mgr. Tomáš Kotler OBSAH I. Cvičný test II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST 1 Vypočtěte [( 3 3 ) ( 1 4 5 3 0,5 ) ] : 1 6 1. 1 bod VÝCHOZÍ TEXT K ÚLOZE

Více

- jak udělat konstantu long int: L long velka = 78L;

- jak udělat konstantu long int: L long velka = 78L; Konstanty (konstatní hodnoty) Např.: - desítkové: 25, 45, 567, 45.678 - osmičkové: 045, 023, 03 vždy začínají 0 - šestnáctkové: 0x12, 0xF2, 0Xcd, 0xff, 0xFF - jak udělat konstantu long int: 245566553L

Více

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 15 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT K ÚLOZE 1 Je dána čtvercová mřížka, v níž každý čtverec má délku

Více

Algebraické výrazy - řešené úlohy

Algebraické výrazy - řešené úlohy Algebraické výrazy - řešené úlohy Úloha č. 1 Určete jeho hodnotu pro =. Určete, pro kterou hodnotu proměnné je výraz roven nule. Za proměnnou dosadíme: = a vypočteme hodnotu výrazu. Nejprve zapíšeme rovnost,

Více

KTE / PPEL Počítačová podpora v elektrotechnice

KTE / PPEL Počítačová podpora v elektrotechnice KTE / PPEL Počítačová podpora v elektrotechnice Ing. Lenka Šroubová, Ph.D. email: lsroubov@kte.zcu.cz http://home.zcu.cz/~lsroubov 3. 10. 2012 Základy práce s výpočetními systémy opakování a pokračování

Více

Projekt IMPLEMENTACE ŠVP. pořadí početních operací, dělitelnost, společný dělitel a násobek, základní početní operace

Projekt IMPLEMENTACE ŠVP. pořadí početních operací, dělitelnost, společný dělitel a násobek, základní početní operace Střední škola umělecká a řemeslná Evropský sociální fond "Praha a EU: Investujeme do vaší budoucnosti" Projekt IMPLEMENTACE ŠVP Evaluace a aktualizace metodiky předmětu Matematika Výrazy Obory nástavbového

Více

2. Přečtěte zapsaná desetinná čísla 0,27; 1,4; 1,57; 0,729; 2,4; 128,456; 0,005; 0,7; 12,54; 0,034; 100,001; 0,1

2. Přečtěte zapsaná desetinná čísla 0,27; 1,4; 1,57; 0,729; 2,4; 128,456; 0,005; 0,7; 12,54; 0,034; 100,001; 0,1 2a) Desetinná čísla celá část desetinná část příklady k procvičení 1. Zapište číslo a) 5 celých 4 desetin, 8 setin b) 8 set 4 desítky 7 jednotek 1 desetina 8 tisícin c) 2 miliony 8 tisíc 9 tisícin. 2.

Více

CVIČNÝ TEST 13. OBSAH I. Cvičný test 2. Mgr. Zdeňka Strnadová. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

CVIČNÝ TEST 13. OBSAH I. Cvičný test 2. Mgr. Zdeňka Strnadová. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 CVIČNÝ TEST 13 Mgr. Zdeňka Strnadová OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT A OBRÁZEK K ÚLOZE 1 V trojúhelníku ABC na obrázku dělí úsečka

Více

Lenka Zalabová. Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita. zima 2012

Lenka Zalabová. Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita. zima 2012 Algebra - třetí díl Lenka Zalabová Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita v Českých Budějovicích zima 2012 Obsah 1 Dělitelnost 2 Grupy zbytkových tříd 3 Jedna z

Více