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 to používáš? Reálná čísla na výstupu zobraz bez úprav i formou desetinného čísla jak se jmenuje první způsob zobrazení reálného čísla? Ke každému příkladu jsou možné logické obměny. Programy na PODMÍNĚNÝ příkaz IF a CASE 1. Pro danou dvojici reálných čísel x, y spočítej hodnotu výrazu 1/(x*y). Podmínku vyjádři různými způsoby. 2. Vyhledej minimu a maximum ze tří/čtyř čísel. 3. Zjisti, zda daná tři čísla mohou být stranami trojúhelníka. 4. Řeš kvadratickou rovnici, jsou-li zadány koeficienty A, B, C. 5. Je dán počet dní v měsíci (28-31) a informace, na který den v týdnu připadá první den v měsíci (PO=1, ÚT=2, ). Zjisti, kolik je v daném měsíci pátků (jiných dnů určených číslem 1-7 na vstupu. 6. Je dán počet dní v měsíci (28-31) a informace, na který den v týdnu připadá první den v měsíci (PO=1, ÚT=2, ). Zjisti, kolik je v daném měsíci pracovních dní. 7. Na vstupu je celé číslo z intervalu <0;5>. Sestav program, který podle tohoto čísla přiřadí proměnné SEMAFOR barvu (1=červená, 2= žlutá, 3= zelená, ostatní=semafor je vypnutý) a oznámí, která barva svítí. 8. Na vstupu je celé číslo z intervalu <1;7>. Sestav program, který podle tohoto čísla přiřadí proměnné DEN text odpovídající dnu v týdnu (1=pondělí, 2=úterý, ). Na výstupu zobraz název a zkratku dne. 9. Sestav program, který přečte znak z klávesnice a oznámí, do jaké skupiny znaků patří písmeno, číslice, matematický operátor, jiný znak. 10. Zobraz hodnotu funkce f(x) je-li definována podle hodnoty x takto: x>=-2 f(x) = -2x-2 x>-2 x<0 f(x) = x 2 +4 x=0 f(x) = konstanta (definována v úseku deklarací) - 1 -
x>0 x<2 f(x) = 1/x x>2 f(x) = není definováno Jednoduché cykly bez použití POLE 1. Z množiny N celých čísel spočítej počet kladných, záporných a nul. Výsledky zobraz na 3 řádky oddělené prázdným řádkem. 2. Množina celých čísel je zakončená nulou. Urči, zda je zde více kladných nebo záporných čísel. Zobraz i počty kladných a záporných čísel. 3. V množině N čísel urči počet lichých čísel dělitelných třemi. 4. Z množiny N celých čísel urči počet čísel ležících v intervalu <a;b>, kde a, b jsou reálná čísla zadávaná z klávesnice. Je-li hodnota a>b, pak řeš pro interval <b;a>. 5. Úlohu 4. řeš pro otevřený interval (a;b). 6. Z množiny N čísel urči aritmetický průměr čísel větších než 0 a současně menších než 20. 7. Z množiny N čísel urči aritmetický průměr čísel ležících na lichých pozicích a čísel ležících na sudých pozicích. 8. Je dán počet žáků ve třídě a známky z IKT (1.. 5). Vypočítejte průměr třídy a počty jednotlivých známek. 9. Vypočítej x n, kde x R a n N 0. 10. Vypočítej x n, kde x R a n Z. 11. Pro N čísel na vstupu vypočítej hodnotu y=x 2 +6x+1. Výsledky zobraz ve tvaru: x = y = pod sebou s prázdným řádkem mezi. 12. Z množiny N celých čísel pro čísla větší než nula vypočítej součet převrácených hodnot. 13. V množině N celých čísel vyhledej největší číslo, nejmenší číslo a číslo s největší absolutní hodnotou. 14. Na vstupu je zadané číslo. Zjistěte, kolikrát se toto číslo nachází v množině čísel zakončené nulou. 15. Zjistěte, zda množina N čísel je rostoucí, klesající, konstantní. 16. Zjistěte, zda v množině N celých čísel jsou všechna čísla různá. 17. Zjistěte, zda číslo zadané na vstupu je prvočíslo. - 2 -
18. Zjistěte počet cifer přirozeného čísla, (zadané číslo je typu INTEGER (-32768;32767)) 19. Zjistěte ciferný součet přirozeného čísla. 20. Kolikrát se v zadaném čísle vyskytuje cifra zadaná na vstupu. 21. Určete k-tou cifru zprava v čísle. Pokud je číslo menší, vypíše se chybová hláška. 22. Zaměňte první a poslední cifru čísla. 23. Převeďte dvojkové číslo na desítkové. 24. Převeďte desítkové číslo na dvojkové. 25. Převeďte desítkové číslo na osmičkové a naopak. 26. Převeďte desítkové číslo na šestnáctkové a naopak. 27. Věta na vstupu je zakončená tečkou, jednotlivá slova právě jednou mezerou. Určete počet slov ve větě. 28. Věta na vstupu je zakončená tečkou, jednotlivá slova libovolným počte mezer. Určete počet slov ve větě. 29. Věta na vstupu je zakončená tečkou. Určete počet samohlásek ve větě. 30. Věta na vstupu je zakončená tečkou. Určete počet velkých písmen a malých písmen. 31. Věta na vstupu je zakončená tečkou. Určete počet mezer nebo znaků určených na vstupu. Cyklus a pole 1. Určete počet různých cifer čísla na vstupu. 2. V množině N celých čísel určete, kolik se jich rovná poslednímu číslu. 3. V množině N čísel spočítejte počet čísel dělitelných 7 a tato čísla také vytiskněte včetně pořadí výskytu. Výstup bude ve tvaru: pořadí číslo 3. 14 atd. 4. Množinu N čísel uspořádej v obráceném pořadí. 5. V množině N čísel najdi minimum a najdi, kolikáté se vyskytuje poprvé a kolikáté naposledy. 6. Přerovnej množinu N celých čísel (bez uspořádání podle velikosti) tak, aby nejdříve byla čísla záporná, pak nuly a nakonec kladná. 7. Vypočítej aritmetický průměr množiny čísel zakončené nulou a najdi číslo, které se tomuto průměru nejvíce podobá. Napiš, kolikáté se poprvé vyskytovalo. - 3 -
8. Zjisti, zda v množině čísel zakončené nulou se některé číslo opakuje. 9. V množině N čísel spočítej počet různých čísel. 10. V množině N čísel spočítej, kolik se jich tam vyskytuje pouze 1x. 11. Rozložte číslo na prvočinitele (tj. na součin prvočísel). 12. Z intervalu <a,b> (a, b N, a < b) zobraz prvočísla. 13. Z intervalu <100,999> zobraz trojciferná čísla, jejichž ciferný součet je zadán na vstupu. 14. Je dána množina znaků zakončená *. Urči počet a místa výskytu velkých písmen A až Z. 15. Na vstupu je zadáno číslo dne (1=PO, ) a počet dní v měsíci. Vypiš kalendář ve tvaru: Po Út St 1 2 16. Na vstupu je zadáno datum (den a měsíc). Urči pořadové číslo dne v roce (rok 365 dní). 17. Na vstupu je zadáno pořadové číslo dne v roce (rok 365 dní). Urči datum (den a měsíc). 18. Na vstupu je zadána matice čísel 10x10 (dvourozměrné pole). Kolikrát se zde vyskytuje stejný součet sloupců/řádků. 19. Na vstupu je zadána matice čísel 10x10 (dvourozměrné pole). Urči číslo sloupce/řádku s největším součtem. 20. Na vstupu je dvourozměrné pole 10x10. Vyplň jeho obvod znakem zadaným na vstupu, ostatní složky pole budou mezery nebo znaky určené na vstupu. 21. Na vstupu je dvourozměrné pole 10x10. Vyplň jeho úhlopříčku (/) znakem zadaným na vstupu, ostatní složky pole budou mezery nebo znaky určené na vstupu. 22. Na vstupu je dvourozměrné pole 10x10. Vyplň jeho úhlopříčku (\) znakem zadaným na vstupu, ostatní složky pole budou mezery nebo znaky určené na vstupu. 23. Na vstupu je dvourozměrné pole 10x10. Vyplň obě jeho úhlopříčky znakem zadaným na vstupu, ostatní složky pole budou mezery nebo znaky určené na vstupu. - 4 -
Soubory 1. U existujícího textového souboru zjistěte a dané informace zobrazte na jednotlivé řádky: a. celkový b. počet řádků c. celkový počet slov d. celkový počet znaků e. počet znaků zadaných na vstupu f. počet slov zadaný na vstupu 2. V textovém souboru vymažte přebytečné mezery. g. počet slov začínajících písmenem zadaným na vstupu h. počet slov končících písmenem zadaným na vstupu i. počet vět (předpokládáme, že tečka je použita pouze pro ukončení věty) 3. Určete délku nejdelšího slova v textovém souboru, dané slovo zobrazte (předpokládáme, že není delší než 30 znaků). 4. Vytvořte přesnou kopii existujícího textového souboru. 5. Vypište textový soubor po řádcích na obrazovku. 6. Dva textové soubory spojte do třetího souboru. 7. Soubor je tvořen celými čísly. Zjistěte počet čísel v souboru, dále zjistěte, zda je první číslo větší než poslední. 8. Program maturita: existují dva textové soubory, jeden se jmény, druhý se známkami. Vytvoře třetí soubor HODNO, kde bude spočítán průměr a celkový výsledek. podoby souborů: JMÉNA Bouska Jan: Matusková Eliska: Pilar Jan: Sloup Vaclav: Svoboda Jan: Zampa Petr: Podprogramy ZNÁMKY 3 3 4 5 1 2 1 2 2 3 2 1 3 4 4 3 1 3 2 4 1 1 3 1 HODNO 3,3,4,5, Bouska Jan: neprospel 1,2,1,2, Matusková Eliska: prospel s vyznamenanim 2,3,2,1, Pilar Jan: prospel 3,4,4,3, Sloup Vaclav: prospel 1,3,2,4, Svoboda Jan: prospel 1,1,3,1, Zampa Petr: prospel 1. Vytvoř proceduru, pomocí které zaměníme hodnoty proměnných A a B. Použij v programu, kde nejdřív uspořádáš hodnoty ze vstupu tak, že A>B, a poté tak, že A<B. Výstup bude upraven: A>B {zobrazené hodnoty} A<B {zobrazené hodnoty} 2. Na vstupu je věta skládající se ze slov a mezer zakončená tečkou. Mezi slovy může být libovolný počet mezer, vždy nejméně jedna. Sestav program, který vynechá přebytečné mezery. Použij proceduru. 3. Sestavte program na výpočet obsahu mezikruží, použijte proceduru i funkci. - 5 -
4. Vytvoř proceduru, pomocí které zaměníme hodnoty dvou proměnných. Použij v programu, kde se budou takto zaměňovat hodnoty tří různých dvojic čísel zadaných na vstupu (např. proměnné A, B; P,Q; X,Y;) a to tak aby platilo, že A>B; P>Q; X>Y. 5. Na vstupu jsou dvě různě dlouhé posloupnosti reálných čísel, délka je menší než deklarovaná konstanta MAX=20. Každá posloupnost čísel se má v programu sečíst. Použij proceduru. 6. V programu mají být zaměněny dva řádky tabulky (například první a poslední), která je deklarovaná jako dvourozměrné pole. Použijte proceduru. 7. Zapište funkci, která zjišťuje, zda je zadané kladné celé číslo prvočíslo. Napište program, který čte čísla ze vstupu zakončená nulou a vypisuje ta čísla, která jsou prvočísly. 8. Napište funkci, která převádí malá písmena anglické abecedy na velká. Ostatní znaky nechá beze změn. 9. Sestavte program, který zjistí, zda zadaná tři celá čísla mohou být stranami trojúhelníku. Použij funkci typu BOOLEAN. 10. Sestavte program na výpočet hodnoty výrazu, ve kterém je třeba počítat mocniny čísel (např. X = 20 2 + 3 5 4 4 ). Použijte proceduru i funkci a porovnejte. 11. V posloupnosti N celých čísel najděte maximum a minimum. Použijte funkci i proceduru a porovnejte. - 6 -