1 / 18

PPA1 – 5.cvičení

PPA1 – 5.cvičení. Pavel Bžoch. Zápočtový test. Píše se 1.11. od 14:50 Na courseware a na dveřích UU409 je rozdělení (podle prvního písmene příjmení) Test bude do cca 16:00 – počítejte s tím! V testu budou okruhy do 5. přednášky včetně a do 6. cvičení včetně

hayes
Download Presentation

PPA1 – 5.cvičení

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PPA1 – 5.cvičení Pavel Bžoch

  2. Zápočtový test • Píše se 1.11. od 14:50 • Na courseware a na dveřích UU409 je rozdělení (podle prvního písmene příjmení) • Test bude do cca 16:00 – počítejte s tím! • V testu budou okruhy do 5. přednášky včetně a do 6. cvičení včetně • Vše od začátku semestru až do polí (včetně)

  3. Odevzdání příkladů • Od minulého cvičení je na courseware zadání domácích úloh • Pokud příklad úspěšně odevzdáte na validátor do 14 dnů od konání cvičení, máte 1 bod za každý příklad. Za pozdější odevzdání máte 0,5 bodu. • Všechny příklady jsou kontrolovány na shodnost! • Při 1. výskytu shodného příkladu dostáváte automaticky 0,5 bodu ze všech příkladů -> musíte odevzdat všechny příklady. Zároveň musíte přepracovat shodné příklady. • Při případném jakémkoli dalším výskytu shodnosti ztrácíte možnost získat zápočet. • Stane se jak „zdroji“ příkladů, tak „opisovači“ či „opisovačům“ • Viz courseware – Problémy a řešení

  4. Opakování – náhodný generátor • Náhodné generování čísel • Random rd = new Random(); • int a = rd.nextInt(N); • Do proměnné a uloží náhodné číslo z intervalu <0, N) • Pokud chceme generovat z jiného intervalu např. <1, N>, pak musíme generování upravit: • int a = rd.nextInt(N) +1;

  5. Opakování – řízení toku programu • Příkaz if, else if, else if (podmínka){ //příkazy se provedou, když je podmínka splněna } elseif (podmínka2){ //příkazy se provedou, kdyžnení splněna podmínka, ale je splněna podmínka2 } else{ //příkazy se provedou, kdyžnení splněna anijedna zpodmínek } • Blokyelse if a elsejsounepovinné!

  6. Opakování – řízení toku programu • V podmínkách lze použít následující operátory porovnání (a i b jsouceločíselné proměnné): == test nashodu [(a == b)testuje, zdajsouhodnoty v proměnných stejné] != test na neshodu [(a != b)testuje, zdajsouhodnoty v proměnných rozdílné] > a >= test navětší hodnotu, popř. větší a shodnou [(a >= b)testuje, zda je hodnotav proměnné a větší nebo rovna hodnotě v proměnnéb] < a <= test navětší menší popř. menší a shodnou [(a <= b)testuje, zda je hodnotav proměnné a menší nebo rovna hodnotě v proměnné b]

  7. Opakování – řízení toku programu • Pro spojení podmínek lze využít logické spojky • &&logické A [(a > 5 && a < 10)test, zdahodnota v proměnné a je větší než 5 a současně menší než 10] • || logické nebo [(a < 5 || a > 10)test, zda hodnota v proměnné a je menší než 5 nebo větší než 10] • ! negace výroku [!(a < 5 || a > 10) test, zda hodnota v proměnné avětší nebo rovna 5 a zároveň menší nebo rovna 10. Alternativně lze zapsat takto (a >= 5 && a <= 10)]

  8. Cyklus while • Cyklus probíhá dokud je podmínka splněná • Podmínka se testuje na začátku obrátky  cyklus nemusí proběhnout ani jednou • Struktura cyklu: while (podmínka) { příkazy; }

  9. Cyklus do-while • Cyklus probíhá dokud je podmínka splněná • Podmínka se testuje na konci obrátky  cyklus proběhne alespoň jednou • Struktura cyklu: do { příkazy; } while (podmínka);

  10. Cyklus for • Cyklus probíhá daný počet obrátek na základě hodnoty řídící proměnné (i) • Řídící proměnná se testuje na začátku obrátky  cyklus nemusí proběhnout ani jednou • Struktura cyklu: for (iniciace; podmínka; příkaz obrátky) iniciace – příkaz, který se provede jednou před cyklováním podmínka – podmínka, kdy cyklus běží příkaz obrátky – příkaz, který se provede na konci každé obrátky (před testem podmínky)

  11. Cyklus for Např: for(int i=0; i < hranice; i++){ příkazy; } Cyklujedokud v i je hodnota menší než hodnota v proměnné hranice

  12. Statické metody, parametry I • Dosud pouze programy s jednou metodou – main() • Každá třída může obsahovat deklarace více metod • Metody se můžou volat v jiných metodách třídy nebo i v metodách jiné třídy • Podobně jako jsme volali metody třídy Math • Metody jsou dostupné v celé třídě bez ohledu na pořadí jejich deklarace

  13. Statické metody, parametry II • Deklarace statických metod začíná klíčovým slovem static • Může mu předcházet modifikátor určující viditelnost metody z jiných tříd • Tím se zatím nebudeme zabývat • Hlavička metody vypadá následovně: static typNavratoveHodnoty nazevMetody(typ1 param1, …) • Pak následuje tělo metody uzavřené v { }

  14. Statické metody, parametry III • Metoda nemusí mít žádný parametr, může jich mít více (oddělené čárkou) • Při deklaraci uvádíme jména parametrů, se kterými pak pracujeme v těle metody (tzv. formální parametry) – včetně typů parametrů • Když metodu voláme, dosazujeme tam proměnné nebo konstanty – skutečné parametry – bez typů parametrů • Pokud voláme statickou metodu jiné třídy, musí jí předcházet název třídy a tečka (.)

  15. Statické metody, parametry IV • Metoda může vracet návratovou hodnotu • Např. Math.sin(x) vrátí sinus proměnné x (desetinné číslo) • Typ návratové hodnoty musí být uveden před názvem metody v její deklaraci • Pokud metoda nic nevrací, uvádí se void • Metoda vrací hodnotu uvedenou za slovíčkem return v těle metody • Pokud metoda nic nevrací, return; se dá použít pro ukončení metody

  16. Statické metody, parametry V • Příklad metody, která vrací hodnotu static int secti(int a, int b){ int c = a + b; return c; } • Příklad metody, která nic nevrací static void odradkuj() { System.out.println(); }

  17. Statická proměnná třídy • Proměnná/konstanta dostupná v celé třídě • Všechny metody ji mohou využívat, mohou s ní pracovat • Je dostupná i v případě, že je definovaná až po metodě, ve které ji využíváme • Pokud není přiřazena hodnota, má automaticky hodnotu 0, nebo 0.0, nebo null v závislosti na jejím typu • Příklad v StatALokProm.pdf (1. příklad)

  18. Lokální proměnná metody • Příklad v StatALokProm.pdf (2. příklad) • Proměnná/konstanta dostupná pouze v metodě, kde je deklarována • Je dostupná až od místa v kódu, kde je deklarována, před deklarací ji nelze využívat • Pokud není přiřazena hodnota, nemá žádnou implicitní hodnotu – může v ní být cokoliv (v závislosti na typu) • Volání lokální proměnné do níž nebyla přiřazena hodnota skončí chybou překladu

More Related