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

Podobné dokumenty
Algoritmizace a programování

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

Řídicí struktury. alg3 1

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

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

KTE / ZPE Informační technologie

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh

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

6 Příkazy řízení toku

Úvod do programovacích jazyků (Java)

Algoritmy I. Cvičení č.1, 2 ALGI 2016/17

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

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

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

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

KTE / ZPE Informační technologie

Objektově orientované programování

Algoritmizace a programování

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

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

Příkazy a řídicí struktury v Javě. Tomáš Pitner, upravil Marek Šabo

Výčtový typ strana 67

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

ÚVODNÍ ZNALOSTI. datové struktury. správnost programů. analýza algoritmů

Programování v Javě I. Leden 2008

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ání v Javě I. Únor 2009

Datové struktury. alg12 1

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

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

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

7. Datové typy v Javě

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Z. Kotala, P. Toman: Java ( Obsah )

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

Úvod do programovacích jazyků (Java)

URČITÝM ZPŮSOBEM PODOBNÉ

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

2. lekce Algoritmus, cyklus Miroslav Jílek

NPRG031 Programování II 1 / :47:55

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

PREPROCESOR POKRAČOVÁNÍ

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

Teoretické minimum z PJV

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

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

1. Téma 03 - Rozhodování

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

Seminář Java II p.1/43

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

Textové soubory. alg9 1

Zápis programu v jazyce C#

Algoritmizace a programování. Terminálový vstup a výstup

NMIN201 Objektově orientované programování 2016/17 1 / :03:29

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

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

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

int t1, t2, t3, t4, t5, t6, t7, prumer; t1=sys.readint();... t7=sys.readint(); prume pru r = r = ( 1+t 1+t t3+ t3+ t4 t5+ t5+ +t7 +t7 )/ ;

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

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

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ŘETĚŽOVÁNÍ OPERÁTORŮ

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

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Úvod do programování v jazyce Java

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

Soubor jako posloupnost bytů

Programovací jazyk Pascal

Programovací jazyk Java

Generické programování

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

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

9. přednáška - třídy, objekty

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

1. Programování proti rozhraní

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

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

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

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

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

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

Základní stavební prvky algoritmu

Základy programování (IZP)

Základní pojmy. Matice(řádky, sloupce) Matice(4,6) sloupce

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

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

Algoritmizace. Cíle předmětu

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

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Ukazka knihy z internetoveho knihkupectvi

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

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

Struktura programu v době běhu

Jazyk C# a platforma.net

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

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

DSA, První krok: máme dokázat, že pro left = right vrátí volání f(array, elem, left, right)

Transkript:

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

Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení předchozího příkazu. P1 P2 2

Sekvence (posloupnost) Sekvence -příklad (Algoritmus na výpočet průměru dvou daných celých čísel) public class DruhyProgram { public static void main(string[] args) { int scit1 = 5; int scit2 = 2; int prumer = (scit1+ scit2) / 2; System.out.println( Prumer je: prumer); 3

Podmínka (selekce, větvení) Selekce - provedení dalšího kroku je podmíněno splněním podmínky. Podmínka úplná: if (logický_výraz) příkaz1; else příkaz2; P1 + Podm - P2 4

Selekce (podmínka, větvení) Podmínka neúplná: if (logický_výraz) příkaz; Podm + P - 5

Cyklus Cyklus je část algoritmu, která je opakovaně prováděna po splnění určité podmínky (řídící podmínka cyklu). Opakující se kroky nazýváme tělo cyklu. Dva typy cyklů: indukční tělo cyklu se provede po splnění řídící podmínky cyklu nebo dojde k předání řízení za tělo cyklu (cyklus s testem před vykonáním těla cyklu, cyklus s testem za tělem cyklu), iterační -počet opakování těla cyklu závisí na hodnotě řídící proměnné cyklu. 6

Cyklus Cyklus s podmínkou před vykonáním těla cyklu - u tohoto cyklu dochází k ukončení v případě, že podmínka není splněna. Tělo cyklu se nemusí vykonat ani jednou. while (logický_výraz) { tělo cyklu Podm + P1 Pn - 7

Cyklus Cyklus -1.příklad int i = 1; while (i <= 10) { // příkazy i++; 8

Cyklus Cyklus s podmínkou za tělem cyklu -tělo cyklu provede minimálně jednou, protože k prvnímu testování podmínky dojde až po prvním průchodu tělem cyklu. do { tělo cyklu while (logický_výraz) + P1 Pn Podm - 9

Cyklus Cyklus -2.příklad int i = 1; do { // příkazy i++; while (i <= 10); 10

Cyklus Cyklus s pevným počtem opakování for (výraz_start; výraz_stop; výraz_iter) { tělo cyklu 11

Cyklus Cyklus -3.příklad for (int i = 1; i <= 10; i++) { // příkazy for (int i = 2; i <= 100; i += 2) { // příkazy 12

Switch Příkaz switch na základě hodnoty výrazu provádí příslušnou větev příkazu, výraz musí být typu char, byte, short nebo int. Syntaxe: switch (výraz) { case konstanta1: příkaz1; break; case konstanta2: příkaz2; break; case konstanta3: příkaz3; break; case konstanta4: příkaz4; break; //... default: příkaz; 13

... public static void main(string[] args) { switch (ctiznak()) { case 'a' : case 'b' : case 'c' : System.out.print("1"); break; case 'd' : System.out.print("2"); break; default : System.out.print("3"); break; 14

Příkazy break a continue Příkazy break a continue ovlivňují průběh zpracování příkazů v rámci cyklu (příkaz break se používá i v příkazu switch). výsledkem použití příkazu break bude skok za konec tohoto cyklu, continue způsobí, že je přeskočen zbytek těla cyklu a znovu se testuje podmínka cyklu (provede se iterace cyklu). 15

Příkaz return Příkazy return ukončí provádění metody, v metodě main() ukončí return provádění celého programu. Pomocí return se také vrací nějaká hodnota, viz povídání o metodách. 16

Pole Pole je posloupnost prvků stejného DT. Jedinou operací nad DT pole je přístup k jednotlivým prvkům pole pomocí indexu, tj. celého čísla, které udává pozici prvku v poli. Pole má jen jeden identifikátor (jméno). U pole v Javě se podobně jako u objektů rozlišuje deklarace pole od vytvoření instance pole (alokace pole). Deklarace jednorozměrného pole: typ[ ] jmenopole typ jmenopole[ ] Rozsah pole při deklaraci neuvádíme, deklarací pouze vytváříme proměnnou (odkaz) na pole. Několik příkladů deklarace pole: int[ ] poleint; String[ ] dnyvtydnu; String[ ] args; 17

Pole Před prvním použitím je nutné přidělit poli paměť pomocí operátoru new: poleint = new int[20]; Příklad: public class Pole1 { public static void main(string[] args) { int n = 20; int[] poleint = new int[n]; for (int i = 0; i < poleint.length; i++) { poleint[i] = i + 1; System.out.print(poleInt[i] + " "); 18

Dvourozměrné pole public class Pole2 { public static void main(string[] args) { int m = 5, n = 4; int[][] a = new int[m][n]; System.out.println("Pocet radek pole: " + a.length); System.out.println("Pocet sloupcu pole: " + a[0].length); for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { a[i][j] = i * 10 + j; System.out.print(a[i][j] + " "); System.out.println(); 19

Objekt Objekt představuje souhrn dat (atributů) a činností (operací), které od něj můžeme žádat. Každý objekt má určité rozhraní, prostřednictvím kterého komunikuje s jinými objekty. Když vytváříme program v objektovém jazyce, nepopisujeme jednotlivé objekty, ale třídy objektů. Objekt je diskrétní entita s jasně definovaným rozhraním, které zapouzdřuje stav a chování. Stav objektu je určen hodnotami atributů objektu v určitém okamžiku. Chování objektu je dáno operacemi, které můžeme s objektem provádět. 20

Třída Třída (class) je definuje jak bude objekt vypadat, obecný popis operací a stavu objektů. Třída je souborem proměnných a podprogramů. V proměnných (lepší a ekvivalentní jsou označení členské proměnné, datové členy nebo datové atributy) je uložen stav objektu. Podprogramům se říká metody, manipulují s členskými proměnnými a mění tak stav objektu. Metody popisují schopnosti (vlastnosti) objektu. Objekt je datový prvek vytvořený podle vzoru třídy. Říká se, že objekt je instance třídy. Balík (package) = knihovna tříd 21

Příklad public class Point { double x; double y; public static void main(string[] args){ Point a = new Point(); Point b = new Point(); a.x = 1.0; a.y = 1.0; b.x = 4.0; b.y = 5.0;.. a b 1.0 1.0 4.0 5.0 22

Pole Pole objektů = pole referencí na objekty Point[] a = new Point[N]; for(int i = 0; i < N; i++) a[i] = new Point(); 0 1 2 3 4 1.7 1.0 3.5 2.0 4.0 5.0 6.0 1.9 7.2 6.3 23