Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Parancssori argumentumok Primitív típusok Operátorok Vezérlési szerkezetek Tömbök Ürmös Beáta, 2011.

Hasonló előadás


Az előadások a következő témára: "Parancssori argumentumok Primitív típusok Operátorok Vezérlési szerkezetek Tömbök Ürmös Beáta, 2011."— Előadás másolata:

1 Parancssori argumentumok Primitív típusok Operátorok Vezérlési szerkezetek Tömbök Ürmös Beáta, 2011

2

3  minden parancssorból indított Java programnak átadhatunk argumentumokat is ◦ a main függvényben: String[] args a parancssori argumentumokat tartalmazó tömb  a program indításakor megadott argumentumokat az args tömb tartalmazza ◦ egyes elemeit indexeléssel érjük el ◦ Javában az indexelés 0-tól indul

4 int elsoArg; if (args.length > 0) { try { elsoArg = Integer.parseInt(args[0]); } catch (NumberFormatException e) { System.err.println("Argument must be an integer"); System.exit(1); } }

5  args.length ◦ az args tömb elemeinek számával tér vissza  try{} és catch{} blokkok ◦ kivételkezelés (bővebben később…)  args[0]: ◦ az args tömb első elemének elérése

6  Integer.parseInt(args[0]); ◦ az args tömb első elemét számmá alakítjuk (erre azért van szükség, mert a parancssori argumentumokat String-ként kapjuk meg, mi viszont egy int típusú változóban akarjuk eltárolni az értékét) ◦ általános alak:.parse*( );  Integer.parseInt(“5”);  Double.parseDouble(“6.15”);  stb.  a program neve nem parancssori argumentum!

7

8

9  a stacken keletkeznek  mindig érték szerint tárolódnak ◦ minden más referencia szerint  csak előjeles típusok vannak (ellentétben a C- vel) ◦ Pl. int van, de unsigned int nincs  2 speciális típus: ◦ BigInteger: akármekkora egész szám ◦ BigDecimal: akármekkora fix pontos szám  Példaprogram: PrimitivTipusok.java

10  objektumba csomagolják a primitív típust, és a heap-en tárolják  Pl.: ◦ int a;  ez nem objektum, hanem egyszerű változó! ◦ Integer a = new Integer(5);  ez objektum!

11 Integer a = new Integer(5); Integer b = new Integer(3); Ebben az esetben: a = b;  ennek hatására „a” ugyanoda mutat, ahova „b” a = b.clone();  „b” értéke az „a”-ba másolódik Míg ha „a” és „b” egyszerű int típusú változók: a = b ;  értékadás

12

13

14

15

16  n lépéssel toljuk a biteket balra  2 n-edik hatványával szorozzuk az eredeti decimális számot ◦ mindig 0-val töltődnek fel az átléptetett helyek  Pl.: 16 << 2 (decimális 64) 0000000000000000000000000001000000000000000000000000010000000000

17  n lépéssel toljuk a biteket jobbra  2 n- edik hatványával osztjuk az eredeti decimális számot ◦ mindig az előjelbittel töltődnek fel az átléptetett helyek  Pl.: 16 >> 2 (decimális 4) 00000000000000000000000000010000 00000000000000000000000000000100

18  n lépéssel toljuk a biteket jobbra ◦ mindig 0-val töltődnek fel az átléptetett helyek  pozitív számok esetén ugyanaz, mint az előjeles léptetés  negatív számok esetén furcsa eredményt ad ◦ Pl. -16 >>> 2  decimális 1 073 741 820

19 int a = 5; int x; x = ++a; x = a++; Prefix operátorként: x értéke 6 lesz Postfix operátorként: x értéke 5 lesz, és az értékadás után növelődik ‘a’

20 double c; c= 5/2; c = ((double)5)/2;  osztályok között is lehet típuskonverzió Ennek az eredménye: 2.0 Ennek az eredménye: 2.5

21  Operatorok.java

22

23  minden C-ben megismert vezérlési szerkezetet használhatunk Java-ban is ◦ goto van, de ne használjuk (ahogy C-ben sem)

24

25

26

27 for (int i = 0; i < 5; i++){ … }  több ciklusváltozó/több feltétel esetén vesszővel választom el őket  Példaprogram: Haromszog.java Deklarálhatom itt is, de ez a változó csak a cikluson belül él!

28  pub könyvtár: 3. gyakorlathoz tartozó feladatok.txt-ben

29  Számítsd ki a parancssoron kapott két időpont (óra perc óra perc) között eltelt időt és írasd ki a konzolra (óra perc formában).  Ellenőrizd, adott-e meg a felhasználó parancssori argumentumot! (Ha nem, akkor tájékoztasd, hogy mit és milyen formában várja a program.)  Szerda éjfélig küldhető be!

30

31  Java-ban a tömbök is objektumok ◦ new kulcsszóval kell őket létrehozni  Pl.: ◦ int[] egeszek= new int[10]; ◦ double valosak[] = new double[5]; ◦ Alma[] almaskosar = new Alma[8]; Az Alma egy saját, általunk létrehozott típus.

32  minden tömbnek van egy csak olvasható adattagja: length ◦ a tömb hosszát (elemszámát) adja vissza ◦ pl.: almaskosar.length  indexelés: mindig 0-tól kezdődik és n-1-ig tart int szamok[] = new int[10]; szamok[10] = 10; szamok[9] = 10; Helytelen! Helyes!

33  több módon is lehetséges: ◦ int egeszek[] = {1,2,3}; ◦ int[] egeszekMasolat= egeszek;  többdimenziós tömböt is létrehozhatunk, hasonlóan az egydimenzióshoz: ◦ int[][] ketdim= { {1,1,1}, {2,3,4} }; ◦ int[][][] haromdim= { {1,2,3}, {4,5,6}, {7,8,9} }; ◦ int[][][] haromdimMasodik= new int[2][3][5]; ◦ int [][] masikTomb = ketdim;  ugyanolyan értékeket vesz fel, mint a „ketdim” nevű tömb

34  DoubleTomb.java (pub, 04-es mappa)  Tomb.java (honlapom)

35 Ajánlott linkek: Primitív típusok: http://download.oracle.com/javase/tutorial/java/nutsan dbolts/datatypes.html http://download.oracle.com/javase/tutorial/java/nutsan dbolts/datatypes.html http://www.particle.kth.se/~lindsey/JavaCourse/Book/Pa rt1/Java/Chapter02/primitives.html http://www.particle.kth.se/~lindsey/JavaCourse/Book/Pa rt1/Java/Chapter02/primitives.html Operátorok: http://download.oracle.com/javase/tutorial/java/nutsan dbolts/opsummary.html http://download.oracle.com/javase/tutorial/java/nutsan dbolts/opsummary.html Parancssori argumentumok: http://download.oracle.com/javase/tutorial/essential/en vironment/cmdLineArgs.html http://download.oracle.com/javase/tutorial/essential/en vironment/cmdLineArgs.html


Letölteni ppt "Parancssori argumentumok Primitív típusok Operátorok Vezérlési szerkezetek Tömbök Ürmös Beáta, 2011."

Hasonló előadás


Google Hirdetések