1. Téma 03 - Rozhodování

Podobné dokumenty
6 Příkazy řízení toku

Algoritmizace a programování

IAJCE Přednáška č. 7. řízení semaforu na křižovatce = přepínání červená/oranžová/zelená

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

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

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

Řídicí struktury. alg3 1

Větvení programů příkaz IF

C# konzole Podíl dvou čísel, podmínka IF

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

Algoritmizace a programování

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

1. Programování proti rozhraní

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

Úvod do programovacích jazyků (Java)

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

VISUAL BASIC. Přehled témat

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

Algoritmizace a programování

Výčtový typ strana 67

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

Objektově orientované programování

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Sada 1 - PHP. 05. Větvení

KTE / ZPE Informační technologie

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

PODMÍNKY TERMÍNOVANÝCH ÚČTŮ

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

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

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

Programování II. Návrh programu I 2018/19

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

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

3 KTE / ZPE Informační technologie

Úvod do programování. Lekce 1

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

Algoritmizace a programování

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

Zápis programu v jazyce C#

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

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

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

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Algoritmy a datové struktury

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

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

1. Téma 12 - Textové soubory a výjimky

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

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

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

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

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

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

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

Algoritmizace a programování

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

NPRG031 Programování II --- 2/2 Z, Zk

Inovace bakalářského studijního oboru Aplikovaná chemie

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

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

Algoritmizace prostorových úloh

2 Datové typy v jazyce C

Programovací jazyk Pascal

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

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

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

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

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

Algoritmizace a programování

IAJCE Přednáška č. 6. logický celek, řešící dílčí část problému Příklad velmi špatného zápisu programu na výpočet obsahu obdélníku

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

Algoritmizace a programování

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

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

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

Obsah. O auto ro vi 13 V ěnování 14 Poděkování 15 Z p ětn á vazba od čtenářů 16. P rogram ování pro M in ecraft v Jávě 17

Fyzické osoby - občané

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Fyzické osoby - občané

KTE / ZPE Informační technologie

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

Úvodem... 9 Kapitola 1 Karetních

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

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

Podmíněné vykonávání

Proměnné a datové typy

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

URČITÝM ZPŮSOBEM PODOBNÉ

2. Základy jazyka. Proměnné. Základy jazyka

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

Desetinná čísla. pro celá čísla jsme používali typ int. pro desetinná čísla používáme typ double

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

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

Řešení sady 1. Úvod do programování 1 Tomáš Kühr

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

Transkript:

1. Téma 03 - Rozhodování Cíl látky Seznámit se a prakticky si vyzkoušet zápis rozhodování v jazyce Java 1.1. Úvod Jednou z nejčastěji používanou konstrukcí při programování je rozhodování. Právě této problematice je věnováno toto téma. 1.2. Teorie Více informací k této problematice je uvedeno v podpůrných materiálech k předmětu Základy programování v kapitole 6. 1.3. Ukázkové úlohy 1.3.1. Úloha na neúplné rozhodování Napište program pro rozhodování, zda je možné provést výběr z účtu na základě porovnání hodnoty vybírané částky a zůstatku na účtu. Hodnotu vybírané částky i zůstatku generujte jako náhodná čísla i intervalu <100, 120>. Výpis 1.1. Zdrojový kód úlohy na neúplné rozhodování public class Ucet { long zustatek = Math.round(Math.random() * 100 + 20); long vyber = Math.round(Math.random() * 100 + 20); System.out.println("Zustatek na uctu: " + zustatek); System.out.println("Pozadovany vyber: " + vyber); if (vyber <= zustatek) { zustatek -= vyber; System.out.println("Vybrano: " + vyber + " korun"); System.out.println("Zustatek po vyberu: " + zustatek); 1

První řádek v programu uvádí název třídy, v tomto případě Ucet a úvodní složená závorka pro zápis členů třídy. Název třídy je samozřejmě volitelný, dle konvencí jazyka ale vždy začíná velkým písmenem. Deklarace i s inicializací proměnné pro zůstatek na účtu. Hodnota je náhodně generována z intervalu <100, 120> s využitím metody random() z třídy Math. Generovaná hodnota je následně zaokrouhlena na celé číslo. Deklarace i s inicializací proměnné pro výběr z účtu. Hodnota je náhodně generována z intervalu <100, 120> s využitím metody random() z třídy Math. Generovaná hodnota je následně zaokrouhlena na celé číslo. Příkaz pro výpis hodnoty zůstatku na obrazovku. Příkaz pro výpis hodnoty vybírané částky na obrazovku. Rozhodování o tom, zda je možné výběr z účtu uskutečnit - záleží na generovaných hodnotách zůstatku a hodnotě požadované vybírané částky. Pokud je podmínka vyhodnocena kladně, dojde k vykonání příkazů mezi složenými závorkami na řádku 7 a 10. Realizace výběru v podobě odečtení vybírané částky od zůstatku na účtu. Výpis informace o provedení výběru. Ukončovací složené závorky rozhodování. Výpis informace o zůstatku na účtu po provedení výběru - tato informace bude vypsána vždy bez ohledu na to, jak dopadne vyhodnocení podmínky na řádku 7. Koncové složené závorky metody main(). Koncové složené závorky třídy Ucet. 1.3.2. Úloha na úplné rozhodování Napište program pro rozhodování, zda je možné provést výběr z účtu na základě porovnání hodnoty vybírané částky a zůstatku na účtu. Pokud nebude možné výběr realizovat, tak vypište uživateli informaci o tom, že nebylo možné výběr provést. Hodnotu vybírané částky i zůstatku generujte jako náhodná čísla i intervalu <100, 120>. public class Ucet { Výpis 1.2. Zdrojový kód úlohy na úplné rozhodování long zustatek = Math.round(Math.random() * 100 + 20); long vyber = Math.round(Math.random() * 100 + 20); 2

System.out.println("Zustatek na uctu: " + zustatek); System.out.println("Pozadovany vyber: " + vyber); if (vyber <= zustatek) { zustatek -= vyber; System.out.println("Vybrano: " + vyber + " korun"); else { System.out.println("Vyber nebylo mozne realizovat"); System.out.println("Zustatek po vyberu: " + zustatek); První řádek v programu uvádí název třídy, v tomto případě Ucet a úvodní složená závorka pro zápis členů třídy. Název třídy je samozřejmě volitelný, dle konvencí jazyka ale vždy začíná velkým písmenem. Deklarace i s inicializací proměnné pro zůstatek na účtu. Hodnota je náhodně generována z intervalu <100, 120> s využitím metody random() z třídy Math. Generovaná hodnota je následně zaokrouhlena na celé číslo. Deklarace i s inicializací proměnné pro výběr z účtu. Hodnota je náhodně generována z intervalu <100, 120> s využitím metody random() z třídy Math. Generovaná hodnota je následně zaokrouhlena na celé číslo. Příkaz pro výpis hodnoty zůstatku na obrazovku. Příkaz pro výpis hodnoty vybírané částky na obrazovku. Rozhodování o tom, zda je možné výběr z účtu uskutečnit - záleží na generovaných hodnotách zůstatku a hodnotě požadované vybírané částky. Pokud je podmínka vyhodnocena kladně, dojde k vykonání příkazů mezi složenými závorkami na řádku 7 a 10. Realizace výběru v podobě odečtení vybírané částky od zůstatku na účtu. Výpis informace o provedení výběru. Ukončovací složená závorka bloku if. V případě nesplnění podmínky na řádku 7 budou realizovány příkazy v bloku else. V tomto případě se jedná o jeden příkaz na řádku 11. Výpis informace o tom, že nebyl na účtu dostatečný zůstatek a nebylo tedy možné výběr z účtu realizovat. Ukončovací složená závorka bloku else. Výpis informace o zůstatku na účtu po provedení výběru - tato informace bude vypsána vždy bez ohledu na to, jak dopadne vyhodnocení podmínky na řádku 7. Ukončovací složené závorky metody main(). Ukončovací složené závorky třídy Ucet. 1.3.3. Úloha na rozšířenou úplnou podmínku Napište program pro rozhodování o výši úrokové sazby dle zůstatku na účtu, přičemž platí následující pravidla: 3

Pokud je zůstatek na účtu menší nebo roven 10 000 Kč, je úroková míra 1,0 procento. Pokud je zůstatek na účtu menší nebo roven 50 000 Kč, je úroková míra 2,0 procenta. Pokud je zůstatek na účtu větší než 50 000 Kč, je úroková sazba 2,4 procenta. Hodnotu zůstatku na účtu generujte náhodně z intervalu <0, 70000> Kč. public class Uroceni { Výpis 1.3. Zdrojový kód úlohy na úplné rozhodování int zustatek = (int) (70001 * Math.random()); double urok = 0.0; if (zustatek <= 10000) { urok = 0.010; else if (zustatek <= 50000) { urok = 0.020; else { urok = 0.024; System.out.println("Pro zustatek " + zustatek + " Kc je uplatnen urok " + (urok * 100) + " procenta"); První řádek v programu uvádí název třídy, v tomto případě Uroceni a úvodní složená závorka pro zápis členů třídy. Název třídy je samozřejmě volitelný, dle konvencí jazyka ale vždy začíná velkým písmenem. Deklarace i s inicializací proměnné pro zůstatek na účtu. Hodnota je náhodně generována z intervalu <0, 70000> s využitím metody random() z třídy Math. Generovaná hodnota je přetypována na celé číslo. Deklarace i s inicializací proměnné pro úrokovou sazbu. Rozhodování pro případ kdy bude hodnota zůstatku menší případně rovna hodnotě 10 000 Kč. Nastavení úrokové sazby na 1 procento. Rozhodování pro případ kdy bude hodnota zůstatku menší případně rovna hodnotě 50 000 Kč - to znamená, že hodnota zůstatku je v intervalu (10000, 50000>. 4

Nastavení úrokové sazby na 2 procenta. Pro všechny ostatní zůstatky bude uplatněna větev else. Nastavení úrokové sazby na 2,4 procenta. Ukončovací složená závorka bloku if. Výpis informace o zůstatku na účtu a o výši úrokové sazby. 1.3.4. Úloha na vícenásobné rozhodování Napište program pro převod mezi číselnou hodnotou <1,7> na dny v týdnu, kdy číslu 1 odpovídá pondělí a číslu 7 odpovídá neděle. Výpis 1.4. Zdrojový kód úlohy na úplné rozhodování public class PrevodCisloDen { int den = 1 + (int) (Math.round(Math.random() * 7)); System.out.print(den + ". den v tydnu je "); switch (den) { case 1: System.out.println("pondeli"); case 2: System.out.println("utery"); case 3: System.out.println("streda"); case 4: System.out.println("ctvrtek"); case 5: System.out.println("patek"); case 6: System.out.println("sobota"); case 7: System.out.println("nedele"); 5

První řádek v programu uvádí název třídy, v tomto případě PrevodCisloDen a úvodní složená závorka pro zápis členů třídy. Název třídy je samozřejmě volitelný, dle konvencí jazyka ale vždy začíná velkým písmenem a každé další slovo názvu rovněž začíná velkým písmenem. Deklarace i s inicializací proměnné pro číslo dne. Hodnota je náhodně generována z intervalu <1, 7> s využitím metody random() z třídy Math. Generovaná hodnota je přetypována na celé číslo. Výpis informace o vygenerované hodnotě čísla dne. Příkaz switch pro vícenásobné rozhodování. Návěští case pro případ, kdy je hodnota v proměnné den rovna číslu 1. Výpis textové informace o dnu. Příkaz break pro ukončení příkazu switch. Pokud by zde příkaz break nebyl uveden, docházelo by k dalšímu vyhodnocování návěští case. Návěští case pro další čísla dnů - tato sekvence je již stejná pro další dny úterýneděle. 1.4. Úlohy k řešení 1.4.1. 1 Napište program pro výpočet reálných kořenů kvadratické rovnice, kde koeficienty a, b, c jsou datového typu double a budou generovány náhodně pomocí metody random(). 1.4.2. 2 6