Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Počítače a programování 1 2.přednáška. Základní lexikální struktura programu Program v jazyce Java je tvořen symboly a oddělovači Program Java je psán.

Podobné prezentace


Prezentace na téma: "Počítače a programování 1 2.přednáška. Základní lexikální struktura programu Program v jazyce Java je tvořen symboly a oddělovači Program Java je psán."— Transkript prezentace:

1 Počítače a programování 1 2.přednáška

2 Základní lexikální struktura programu Program v jazyce Java je tvořen symboly a oddělovači Program Java je psán v Unicode – 16-ti bitový mezinárodní kód Při překladu programu – sekvence vstupních znaků programu je vnímána jako posloupnost: –Oddělovačů –Komentářů –Symbolů

3 Základní lexikální struktura programu  Symboly: –Identifikátory –Klíčová slova –Literály –Separátory (závorky) –Operátory –Návěští  Konec řádky – speciální znaky CR nebo LF nebo CR LF  Oddělovače – mezera, tabelátor, oddělovač stránky (FF – Form Feed) a znaky konce řádku

4 Poznámka Dva sousedící identifikátory, klíčová slova nebo čísla musí být od sebe oddělena alespoň jednou mezerou nebo jiným oddělovačem Přebytečné mezery a oddělovače řádků jsou překladačem ignorovány Java rozlišuje velká a malá písmena (case sensitive)

5 Komentáře Komentáře překladač ignoruje Tři typy komentářů: 1.Jednořádkový komentář // 2.Komentářový blok /* */ 3.Dokumentační komentář /** */ Poznámka: Není možno použít vnořené komentáře.

6 Identifikátory Identifikátor může mít libovolnou délku Identifikátor je posloupnost písmen a číslic začínající písmenem nebo podtržítkem Písmeno Číslice Podtržítko Písmeno Podtržítko

7 Identifikátory Podtržítko: Číslice: _ 09

8 Identifikátory Písmeno: Hexadecimální číslice: AZaz ČísliceAFaf

9 Identifikátory Java rozlišuje velká a malá písmena Je nutno dodržovat určité konvence, tzn. způsob zápisu má již předem daný význam Java umožňuje i použití znaků národních abeced – používat velmi uváženě Identifikátor může obsahovat znak $ - pozor, uvedení tohoto znaku má speciální význam Identifikátor nesmí obsahovat mezeru

10 Identifikátory - konvence –Je nutné dodržovat určité konvence – jsou použity v Java Core API třídy a rozhranní : identifikátor začíná vždy velkým písmenem ostatní písmena jsou malá, u víceslovných – každé slovo začíná velkým písmenem metody a proměnné : začátek malým písmenem, u víceslovných – každé další slovo začíná velkým písmenem balíky : pouze malá písmena (složeniny s tečkou) konstanty : pouze velká písmena, u víceslovných oddělena podtržítkem

11 Klíčová slova Slova mající v programovacím jazyce svůj speciální význam Identifikátor nesmí být pojmenovaný stejně jako klíčové slovo Klíčová slova neobsahují mezeru

12 Klíčová slova abstract boolean break byte case catch char class const continue default do double else extends final finally float for goto If Implements Import Instance of int interface long

13 Klíčová slova native new null package private protected public return short static super switch synchronized this throw throws transient try void volatile while

14 Literály Literál je reprezentace hodnoty primitivního typu nebo řetězce zapsaná ve zdrojovém tvaru Literály: –IntegerLiteral –FloatLiteral –BooleanLiteral –Characterliteral –StringLiteral –NullLiteral

15 Proměnné programu Slouží k pojmenování místa v paměti –Obsah tohoto vyhrazeného místa může být měněn Proměnné označují vždy určitý typ obsahu paměťového místa –například pouze celá čísla (integer), nebo pouze reálná čísla (floating point, real), nebo znaky (character)

16 Vytvoření proměnných Všechny proměnné programu musí být deklarovány před jejich prvním použitím Deklarace proměnné asociuje místo v paměti a specifikuje typ dat, která budou do tohoto místa ukládána: Typ Proměnná_1, Proměnná_2, …; Například deklarace celočíselných proměnných obsahující počty studentů v kroužku a v ročníku: int numberOfKrouzek, totalRocnik;

17 Přiřazení hodnoty proměnné - operátor přiřazení Operátor přiřazení: “=“ - “rovná se” Pozor – nemá stejný význam jako v matematice, účinek je destruktivní Význam přiřazení: “Přiřazení hodnoty výrazu na pravé straně proměnné na levé straně.”

18 Přiřazení hodnoty proměnné - operátor přiřazení Přiřazení může přinést změnu na obou stranách přiřazení v následujícím příkladu: int pocet = 10;// inicializace počitadla na 10 pocet = pocet - 1;// snížení hodnoty o 1 –Nová hodnota proměnné pocet = 10 - 1 = 9 Poznámka: –Výraz – expression – má vždy hodnotu. –Přiřazení – assigment – je výraz a jeho hodnotou je hodnota přiřazená na levé straně. –Příkaz – statement – se stává příkazem, je-li ukončeno středníkem.

19 Inicializace proměnných Inicializace hodnot proměnných může a nemusí být provedena současně s deklarací: // Následující proměnné jsou deklarovány, ale nejsou inicializovány // mají neznámou hodnotu int pocetOfKrouzek, pocetOfRocnik, pocetOfProgramator; //Tyto proměnné jsou deklarovány a inicializovány na hodnotu 0 int pocetOfKrouzek = 0; int pocetOfRocnik = 0; int pocetOfProgramator = 0; Doporučení: je dobrým programátorským zvykem vždy proměnné inicializovat.

20 Změna hodnoty proměnných Hodnota proměnné je v průběhu programu měněna Může být měněna pomocí přiřazení (například na základě výpočtu): pocetOfRocnik = pocetOfKrouzek * 15; Nebo přečtením ze standardního vstupu ( klávesnice): pocetOfRocnik = MojeIn.readLineInt();

21 Základní datové typy Primitivní datové typy Jednoduché typy Atomické, dále nečlenitelné Obsahují pouze hodnoty Příklady int - integer double - floating point (real) char - character Třídy dat Komplexnější Složené na základě jiných typů (primitivních nebo tříd) Obsahují jak hodnoty, tak metody Příklady: MojeIn String

22 Základní (primitivní) datové typy

23 Celočíselné typy a jejich konstanty Jsou pouze znaménková, ve dvojkovém doplňku. Není možné použít neznaménková celá čísla a neexistuje modifikátor unsigned Celočíselné konstanty mohou být zapsány ve třech číselných soustavách: 1.Desítkové – dekadické 2.Osmičkové – oktalové – 013, 0, 01 3.Šestnáctkové - hexadecimální - 0x63, 0X3A

24 Znakový typ a znakové konstanty Pouze jeden typ – char Velikost – 16 bitů – kódování Unicode Znakové konstanty jsou představovány: 1.Jedním znakem –‘A‘,‘5‘,‘%‘ 2.Posloupností - ‘\uxxx‘ – x jsou šestnáctkové číslice – zápis libovolného znaku 3.„escape“ sekvence - ‘\n‘- ‘\u000A‘ –nová řádka Pozor – významné rozdíly v použití, „escape“ sekvence může být pouze na místě znakových nebo řetězových konstant, unicode znaky kdekoli, např. i ve jménech identifikátorů

25 Unicode pro akcentované znaky

26 Řetězcové konstanty - literály Jsou uzavřeny do uvozovek: “Dnes je pondelí.“ Java umožňuje libovolně dlouhé zřetězování “dnes“ +“je“+“pondelí“+“zitra“+“je úterý“

27 Logický typ a logické konstanty Typ boolean Udávaná velikost 1 bit Může nabývat pouze dvou hodnot – true (logická 1), false (logická 0) Není převoditelný na celočíselný typ a naopak (jako v jazyce C) – pokud je zapotřebí této operace, lze použít: b = (i != 0) // převod hodnoty int na boolean i = (b) ? 1 : 0) // převod hodnoty boolean na int

28 Reálné datové typy a reálné konstanty Zahrnují konečnou podmnožinu těch reál- ných čísel, která jsou zobrazitelná v paměti počítače (v jistém rozsahu a přesnosti) Hodnota je v paměti zobrazena jako číslo v pohyblivé desetinné čárce, tj. jako dvojice čísel (a, b), kde: –a je mantisa –b je exponent

29 Reálné datové typy a reálné konstanty Typy float a double Vyhovují standardu IEEE 754 (stejné zobrazení v Javě jako v jiných programovacích jazycích) Reálné konstanty jsou automaticky double, potřebujeme-li typ float je nutné za konstantu doplnit F nebo f doplnit tj. float flt=3.14F;

30 Reálné datové typy a reálné konstanty Konstanty se zapisují s desetinnou tečkou nebo ve tvaru aEb (tento zápis odpovídá matematickému zápisu a.10 b ). Je-li alespoň jeden z operandů typu real (ostatní mohou být typu integer) dává aplikace následujících operátorů (+, -, *) výsledek reálného typu Aplikace operátoru / (dělení) dává vždy výsledek reálného typu

31 „Nenormální“ hodnoty reálných čísel Hodnoty získané dělením kladného popř. záporného čísla nulou –Kladné nekonečno (POSITIVE_INFINITY) –Záporné nekonečno (NEGATIVE_INFINITY) Test pomocí metody třídy Double.isInfinite(vysledek) NaN (Not a Number) – vzniká při operacích typu dělení nuly nulou Test pomocí metody třídy Double.isNaN(vysledek)

32 Standardní primitivní typy - shrnutí int –Pouze celá čísla –Mohou být kladná nebo záporná –Neobsahují desetinnou čárku char –Pouze jeden znak –Pro zápis konstanty jednoduché uvozovky –například char velkePismeno = `A`; double –Reálná čísla, jak kladná, tak záporná –Mají desetinnou tečku (odděluje desetinnou část) –Dva formáty Číslo s desetinnou tečkou 123.456 e – notace použitelná pro zápis čísel s vysokou přesností, popř. neformátovaný tvar, tzn. 1.23456 e2 t.j. 1.23456 x 10 2 Standardní (primitivní )typy :


Stáhnout ppt "Počítače a programování 1 2.přednáška. Základní lexikální struktura programu Program v jazyce Java je tvořen symboly a oddělovači Program Java je psán."

Podobné prezentace


Reklamy Google