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

Podobné dokumenty
Podmínky na zápočet. Java, zimní semestr

Algoritmizace a programování

Algoritmizace a programování

Úvodní informace. Petr Hnětynka 2/2 Zk/Z

Programování v Javě I. Únor 2009

Úvod do programovacích jazyků (Java)

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

Programování v Javě I. Leden 2008

Úvodní informace. Petr Hnětynka 2/2 Zk/Z

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

Úvod do programování v jazyce Java

Úvodní informace. Petr Hnětynka 2/2 Zk/Z

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/

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

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

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

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

3 KTE / ZPE Informační technologie

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

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

1. Programování proti rozhraní

Iterator & for cyklus

První kapitola úvod do problematiky

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

Úvod do programování - Java

Seminář Java II p.1/43

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

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:

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

Úvod do programování v jazyce Java

PROGRAMOVÁNÍ V C++ CVIČENÍ

Programovací jazyk Java

Soubor jako posloupnost bytů

Úvod do programovacích jazyků (Java)

RMI Remote Method Invocation

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

17. Projekt Trojúhelníky

Abstraktní datové typy: zásobník

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

Řídicí struktury. alg3 1

Regulární výrazy. Vzory

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

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

Textové soubory. alg9 1

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

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

Java Výjimky Java, zimní semestr

Generické programování

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

Objektově orientované programování

C2110 Operační systém UNIX a základy programování

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

Algoritmizace. Cíle předmětu

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

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

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

1. Téma 03 - Rozhodování

Jazyk C# (seminář 6)

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

Algoritmy I. Cvičení č.1 ALGI 2015/16

7. Datové typy v Javě

Základy programování (IZP)

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

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

KTE / ZPE Informační technologie

2 Datové typy v jazyce C

ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Datové struktury. alg12 1

Programátorská příručka

Výčtový typ strana 67

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

Základy programovaní 3 (Java)

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

KTE / ZPE Informační technologie

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

Základy programování (IZP)

Základy programování (IZP)

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu

KTE / ZPE Informační technologie

Algoritmizace a programování

Zápis programu v jazyce C#

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

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

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

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

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

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

Teoretické minimum z PJV

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

Distribuované systémy a výpočty

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 )/ ;

OOPR_05. Případové studie

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

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

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

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

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

Transkript:

Java Cvičení 01 http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Příklady - Porovnání Co kód vypíše? package cz.cuni.mff.java.example01.tests; public class Test01 { public static void main(string[] argv) { Integer i1 = new Integer(1); Integer i2 = new Integer(1); if (i1 == i2) { System.out.println("ANO"); else { System.out.println("NE");

Příklady - Porovnání Operátor == porovnává ADRESY správné řešení Object.equals(Object o) pozor na NULL if (i1.equals(i2)) { System.out.println("ANO"); else { System.out.println("NE");

Coding style package x;class hw{public static void main(string[] a){system.out.println( A"+(char)('k +1)+"f ); Základní zvyklosti JménoTřídy - (Camel case) Začátek slova velké písmeno getpositionx()- package, metoda, field začínají malým písmenem po if, while, for, metodě, třídě - { na stejném řádku Doporučený Coding style - http://www.oracle.com/

Příklady - Přetečení Co program vypíše? package cz.cuni.mff.java.example01.tests; public class Test02 { public static void main(string[] argv) { int b = 2147483646; System.out.println(b); b = b + 1; System.out.println(b);

Příklady - Přetečení // JAVAC Překláda.java (source code) do *.class souboru // parametry jména SOUBORŮ pro přeložení src:>javac cz/cuni/mff/java/example01/tests/test02.java // JAVA spuštění programu (potřebuje *.class soubory) // parametr jméno TŘÍDY s main metodou src:>java cz.cuni.mff.java.example01.tests.test02 2147483646 2147483647 Přetečení definované chování

Příklady - Přetečení Správné řešení předdefinované hodnoty MAX_VALUE, MIN_VALUE, per Typ Integer, Short, Float, Long, int b = Integer.MAX_VALUE;

Příklady - Swap Co program vypíše? package cz.cuni.mff.java.example01.tests; public class Test03 { public static void main(string[] argv) { int x = 10; int y = 20; x ^= y ^= x ^= y; System.out.println(x); System.out.println(y); A - nejde přeložit E vypíše 0 20 I něco jiného B - runtime chyba F vypíše 0 10 C - vypíše 10 20 G vypíše 10 0 D - vypíše 20 10 H vypíše 20 0

Příklady - Swap Správné řešení NEPOUŽÍVAT Max. jedno přiřazení na příkaz x ^= y ^= x ^= y; chování je definované ^= operátor použije hodnotu na začátku příkazu

Příklady - ForCycle Co program vypíše? package cz.cuni.mff.java.example01.tests; public class Test04 { public static void main(string[] argv) { int j = 0; for (int i = Integer.MAX_VALUE 10; i <= Integer.MAX_VALUE; i++) { j++; System.out.println(j); A 10 B 11 C 0 D nic E runtime chyba

Příklady - ForCycle Správné řešení D Nekonečná smyčka Podmínka i <= Integer.MAX_VALUE; je vždy splněna

Příklady - URL Co program vypíše? package cz.cuni.mff.java.example01.tests; public class Test05 { public static void main(string[] argv) { System.out.print("url:"); http://google.com/ System.out.print(":url"); A nejde přeložit B runtime chyba C vypíše url:http://google.com/:url D vypíše url::url

Příklady - URL Řešení LabelNávěští: // Komentář Java povoluje Label před libovolným příkazem break/continue label; Kontrolují, že label je před cyklem, ve kterém je příkaz zanořen Chyba při překladu Jinde nemá Label smysl Použití: Jen kuriozita

Omezení na dnešní cvičení textový editor & konzole žádné IDE IDE základ efektivního programování umět ho používat DÚ - vybrat si IDE Pokusit se i příklady z hodiny Beginners tutorials Eclipse (CZ), NetBeans

Hello World Napište HelloWorld Použít vlastní package Přeložte a spusťte (javac, java) package cz.cuni.mff.java; public class Hello { public static void main(string[] args) { System.out.println("Hello world!");

Hello World // Adresář pro projekt a balíčky // musí odpovídat s package ~:>mkdir project/src/cz/cuni/mff/java // Implementuj třídu ~:>gedit project/src/cz/cuni/mff/java/hello.java // Překlad (vytvoří Hello.class) // jméno SOUBORU pro přeložení ~:>javac project/src/cz/cuni/mff/java/hello.java // JAVA spuštění programu (potřebuje jen class soubory) // -cp kde hledat class soubory // (adresáře s package se doplňují automaticky) // jméno TŘÍDY s main metodou ~:>java -cp project/src cz.cuni.mff.java.hello Hello world! ~:>

Hints Výstup standardní výstup - System.out System.out.print() definováno pro všechny typy vypíše parametr System.out.println() jako print()+ odřádkuje System.out.printf() použití jako printf v C/C++ System.out.printf("1 + 2 = %d\n, 1 + 2); Javadoc - PrintStream

Hello World verze 2 Vytvořte si vlastní třídu Printer v jiném package Printer.printLine(String s) statická metoda pro vytištění řádku na obrazovku Hello bude užívat třídu Printer Kompilace + spuštění

Další úlohy PrintArgs Vypíše argumenty programu z příkazové řádky Každý na nový řádek // Jak předat argumenty programu z příkazové řádky? // Parametry Java po jménu spustitelné třídy ~:>java -cp project/src cz.cuni.mff.java.printagrs arg1 Help me arg1 Help me ~:>

Hints parametry main public static void main(string[] args) parametry args ~ parametry z příkazové řádky obsahuje pouze parametry neobsahuje jako v C/C++ název programu array.length délka pole návratová hodnota programu main metoda - void System.exit(3);

Další úlohy Multiplication Vypíše na tabulku s malou násobilkou Hint: printf( ) Co nestihnete doporučuji zkusit jako DÚ v případě problému email cvičícímu