Úvod do programovacích jazyků (Java)

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

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

Algoritmizace a programování

Algoritmizace a programování

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

PŘETĚŽOVÁNÍ OPERÁTORŮ

Úvod do programovacích jazyků (Java)

Algoritmizace a programování

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

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

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

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

Programovací jazyk Pascal

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/

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

Programovací jazyk C++ Hodina 1

Jazyk C# a platforma.net

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

Java reprezentace dat, výrazy. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické

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

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

Operátory. Základy programování 1 Tomáš Kühr

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

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

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Výrazy, operace, příkazy

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

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

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

Výrazy, operace, příkazy

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

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.

Datové typy strana 29

Seminář Java II p.1/43

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

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

7. Datové typy v Javě

Ukazka knihy z internetoveho knihkupectvi

Data, výrazy, příkazy

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

Algoritmizace a programování

Jazyk C++ I. Polymorfismus

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

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

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

Řídicí struktury. alg3 1

PB161 Programování v jazyce C++ Přednáška 9

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

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

Přetěžování operátorů

Teoretické minimum z PJV

KTE / ZPE Informační technologie

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

Racionální čísla, operátory, výrazy, knihovní funkce

Objektově orientované programování

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

Jak v Javě příkazy, operace a výrazy. BD6B36PJV 00 Fakulta elektrotechnická České vysoké učení technické

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

Programování v Javě I. Leden 2008

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

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

Racionální čísla, operátory, výrazy, knihovní funkce

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

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

Programování v jazyce JavaScript

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

Seminář z IVT Proměnné a operátory. Slovanské gymnázium Olomouc 11. září 2014 Tomáš Kühr

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

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

Úvod do programování. Lekce 1

Opakování programování

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Ukázka knihy z internetového knihkupectví

ADT/ADS = abstraktní datové typy / struktury

Jazyk C++ I. Šablony 2

Algoritmizace a programování

Základy jazyka C. Úvod do programování 1 Tomáš Kühr

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

Konstruktory překladačů

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

Jazyk C++ I. Šablony

Jazyk C++ 1. Blok 3 Objektové typy jazyka C++ Třída. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

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

přetížení operátorů (o)

1. Programování proti rozhraní

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

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

Struktura programu, proměnné, konstanty, výrazy v jazycích C a C#

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

MQL4 COURSE. By Coders guru -4 Operace & Výrazy

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí

Úvod do programování - Java

6 Příkazy řízení toku

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

Jazyk C++, některá rozšíření oproti C

V dalších letech se pak začaly objevovat první normy pro jazyk C++ (ISO/IEC 14882:1998; ISO/IEC 9899:1999; ISO/IEC 14882:2003; ISO/IEC 14882:2011).

Překladač a jeho struktura

Transkript:

Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 1/26

Syntaxe a sémantika Syntaxe - popisuje jaké konstrukce jsou v jazyce možné. Jaký program je korektně napsaný a jaký ne. Sémantika - popisuje co které konstrukce znamenají. Např. co se provede při nějakém příkazu. Rozlišujeme mezi dvěma typy chyb: Chyby při překladu - hlášeny překladačem. Syntaktické - např. chybějící ; Sémantické - např. přiřazení mezi nekompatibilními datovými typy. Chyby při běhu programu - hlášeny virtuálním strojem při běhu programu. Můžeme zachytávat pomocí výjimek. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 2/26

Program se skládá ze tříd. Každá třída se skládá z definic dat a operací pracujícími nad těmito daty. Atributy: data objektu. Methody: operace nad těmito daty. Metody se skládají z hlavičky, definující jméno, parametry a návratový typ, a těla obsahující příkazy. manipulují s proměnnými (atributy nebo lokálními proměnnými). Provádění příkazu zahrnuje vyhodnocování výrazů. Každá proměnná, hodnota nebo výraz je nějakého typu. Na nejnižší úrovni je program posloupnost lexikálních symbolů. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 3/26

Příklad 2.1 public class Example0201 public s t a t i c void main ( S t r i n g [ ] args ) i n t i = 5 ; i n t j = i + 3 ; System. out. p r i n t l n ( " i = " + i + ", j = " + j + " \ n " ) ; c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 4/26

Lexikální symboly Bílé znaky a poznámky: Bílé znaky: space (SP), horizontal tab (HT), form feed (FF), newline (LF), carriage return (CR). Komentáře: /* komentář */ // komentář Základní typy lexikálních symbolů: identifikátory: i j System9 number_of_elements klíčová slova: while float int public class literály: 124 true d "hello" oddělovače: ( ) [ ] ; :,. operátory: + / && = = < >>= c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 5/26

Příklad 2.2 / Trida Example0202 Author : Date : / public class Example0202 public s t a t i c void main ( S t r i n g [ ] args ) / / v y p o c i t e j 5 + 3 i n t i = 5 ; i n t j = i + 3 ; / / vypis vysledek System. out. p r i n t l n ( " i = " + i + ", j = " + j + " \ n " ) ; c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 6/26

Typy, hodnoty a proměnné V proměnných jsou uložena data. Každá proměnná je specifikována jménem a datovým typem (deklarace). Rozlišujeme dvě skupiny datových typů:. Proměnná primitivního datového typu obsahuje jednu hodnotu příslušné velikosti: boolean b = true; // booleovský typ int i = 456; // celé číslo double f = 2.71828; // reálné číslo Reference Adresa objektu (instance třídy) nebo pole. Hashtable h = new Hashtable(); int[] a = new int[20]; c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 7/26

Celočíselné datové typy 1/2 Typ Rozsah Velikost v bitech byte -128..127 8 short -32768..32767 16 int -2147483648..2147483647 32 long -9223372036854775808..9223372036854775807 64 char 0..65535 16 c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 8/26

Celočíselné datové typy 2/2 Operátory: Porovnání: <, <=, >, >=, ==,! = Unární plus a mínus: +, Binární aritmetické operátory: +,,, /, % Prefixové a postfixové operátory pro dekrementaci a inkrementaci: ++, Znaménkové a neznaménkové operátory posuvu: <<, >>, >>> Bitový doplněk: ~ Bitové operátory: & (AND), (OR), ^ (XOR) c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 9/26

Příklad 2.3 public class Example0203 public s t a t i c void main ( S t r i n g [ ] args ) i n t i = 5 ; i + + ; / / i = 6 i n t j = i + 3; / / i = 5, j = 9 j = i + 3 ; / / i = 4, j = 7 j + = 6 ; / / j = 1 3 boolean b = ( j = = 1 ) ; / / b = f a l s e ; System. out. p r i n t l n ( " i = " + i + ", j = " + j + ", b= " + b + " \ n " ) ; c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 10/26

Příklad 2.4 public class Example0204 public s t a t i c void main ( S t r i n g [ ] args ) i n t i = 1 ; / / i = 0001 i = i < < 1 ; / / i = 2 ( 0 0 1 0 ) i n t j = 1 ; i n t k = i j ; / / k = 3 ( 0 0 1 1 ) k = i & j ; / / k = 0 System. out. p r i n t l n ( " i = " + i + ", j = " + j + ", k= " + k + " \ n " ) ; c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 11/26

Příklad 2.5 1/2 public class Example0205 public s t a t i c void main ( S t r i n g args [ ] ) i n t a = ~ 0 ; / / a = 1, a = 1 1... 1 1 a = a < < 1 ; / / a = 1 1 1... 1 1 0 a = 1; i n t aa = a > > 1 ; / / aa = 1 i n t ab = a > > > 1; / / ab = 2147483647 / / ab = 0 1 1... 1 1 c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 12/26

Příklad 2.5 2/2 a = 1 1 < < 3 0 ; / / a = 1 1 0........... 0 aa = a > > 1 ; / / aa = 1 1 1 0.......... 0 i n t b = 2 0, c = 3 ; i n t d = b / c ; / / d = 6 i n t e = b % c ; / / e = 2 ; c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 13/26

Reálné datové typy 1/2 Čísla tvaru s m 2 exp. Typ s m exp Velikost v bitech float -1,1 0.. 2 24 1-149..104 32 double -1,1 0.. 2 53 1-1075..970 64 Typ Min. hodnota Max. hodnota float 1.40239846e-45f 3.40282347e+38f double 4.94065645841246544e-324 1.79769313486231570e+308 c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 14/26

Reálné datové typy 2/2 Operátory: Porovnání: <, <=, >, >=, ==,! = Unární plus a mínus: +, Binární aritmetické operátory: +,,, / Prefixové a postfixové operátory pro dekrementaci a inkrementaci: ++, c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 15/26

Příklad 2.6 public class Example0206 public s t a t i c void main ( S t r i n g args [ ] ) double f = 1. 0 ; f = f 2 0. 0 ; / / f = 2 0. 0 f = f / 5. 0 ; / / f = 4. 0 f ; / / f = 3. 0 c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 16/26

Booleovský datový typ Booleovský datový typ má dvě možné hodnoty: true a false. Operátory: Porovnání: ==,! = Logický doplněk:! Binární logické operátory: &,, ˆ Podmínkové AND resp. OR operátory: &&, Ternární podmínkový operátor:?: Booleovské výrazy určují řízení vykonávání v příkazech: if while do for c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 17/26

Příklad 2.7 1/2 public class Example0205 public s t a t i c void main ( S t r i n g [ ] args ) boolean f l a g = true ; f l a g =! f l a g ; / / f l a g = f a l s e boolean bvar = true ; boolean r1 = f l a g bvar ; / / r1 = t r u e boolean r2 = f l a g & bvar ; / / r2 = f a l s e i f ( r1 r2 ) / / t r u e or f a l s e = t r u e System. out. p r i n t l n ( " r1 or r2 = t r u e " ) ; c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 18/26

Příklad 2.7 2/2 double f V a l = r1? 1. 0 : 2. 0 ; / / f V a l = 1. 0 System. out. p r i n t l n ( " f l a g = " + f l a g + ", bvar= " + bvar + ", f V a l = " + f V a l + " \ n " ) ; c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 19/26

Operátor přiřazení Výraz: expr1 = expr2. Vyhodnocení: Vyhodnocení levé strany (expr1). Vyhodnocení pravé strany (expr2). Hodnota pravé strany je uložena v proměnné levé strany. Hodnota celého výrazy je hodnota pravé strany výrazu. a[i++] = x + y; int b = c + 1; c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 20/26

Složené operátory přiřazení =, / =, % =, + =, =, <<=, >>=, & =, = ˆ = Význam expr1 op= expr2 je stejný jako expr1 = expr1 op expr2. Ovšem expr1 je vyhodnocen pouze jednou. x *= 6; x = x * 6; a[i++] += 3; není ekvivalentní s a[i++] = a[i++] + 3; c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 21/26

Přetypování (cast) Implicitní přetypování: byte b ; i n t i ;... i = b ; b = i; je chybný. Musíme použít výraz: (typ)expr1, který transformuje typ hodnoty výrazu na typ. b = (byte)i; c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 22/26

Priorita operátorů seřazeno od nejvyšší priority 1. () 2. [], postfixové ++ a 3. unární + a, ~,!, přetypování, prefixové ++ a 4., /, % 5. +, 6. <<, >>, >>> 7. <, >, <=, >=, instanceof 8. ==,! = 9. & 10. ˆ 11. 12. && 13. 14.? : 15. =, =, / =, % =, + =, =, <<=, >>=, >>>=, & =, ˆ =, = c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 23/26

Asociativita operátorů Většina binárních operátorů je asociativní zleva. a + b + c má stejný význam jako (a + b) + c Některé operátory jsou asociativní zprava. a = b = c má stejný význam jako a = (b = c) c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 24/26

Úvod do programovacích jazyků (Java), 2/12 Příkaz je výraz ukončený ; a = b + c ; / / p r i k a z p r i r a z e n i i ++; sum( a, b ) ; / / p r i k a z deklarace i n t i ; double x, y, z ; / / p r i k a z deklarace a p r i r a z e n i ( d e f i n i c e ) i n t i = 4 ; double x = 4 6. 3, y, z = i 2. 0 ; c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 25/26

Blok Úvod do programovacích jazyků (Java), 2/12 Blok je posloupnost příkazů uzavřená mezi a. Příklad: a = 2 7 ; i n t b = a / 3 ; / / b = 9 a = b % 2 ; / / a = 1 a = b / 2 ; / / a = 4 Rozsah platnosti (scope) deklarace lokální proměnné je od místa deklarace po konec uzavírajícího bloku. c 2006 2008 Michal Krátký Úvod do programovacích jazyků (Java) 26/26