4. hét Numerikus- és egyéb adattípusok
Tartalom:
4.1.
Egész és valós
számtípusok
4.1.1.
Egészek
4.1.2.
Valós számok
4.2. Egyéb típusok
4.3. Szám és szöveg közötti
konvertálások
4.3.1.
Szövegből számmá
konvertálás
4.3.2.
Számból szöveggé
konvertálás
4.4. A
Math
osztály
4.4.1.
Alapvető metódusok
4.4.2.
Hatványozással
kapcsolatos metódusok
4.4.3.
Trigonometrikus
függvények
4.4.4.
Véletlen szám
készítés
4.5.
Tesztkérdések
4.6. Feladatok
A Java nyelvben az adattípusoknak két fajtája van: primitív és referencia típusok. A primitív adattípusok egy egyszerű értéket képesek tárolni: számot, karaktert vagy logikai értéket.
Primitív típusok:
|
Referencia típusok:
|
4.1. Egész és valós számtípusok
| Típus | Leírás | Méret / formátum |
| byte | bájt méretű egész | 8 bit kettes komplemens (-128 - 127) |
| short | rövid egész | 16 bit kettes komplemens (-32768 - 32767) |
| int | egész | 32 bit kettes komplemens (-2147483648 - 2147483647) |
| long | hosszú egész | 64 bit kettes komplemens (-9223372036854775808 - 9223372036854775807) |
| Típus | Leírás | Méret / formátum |
| float | egyszeres pontosságú lebegőpontos | 32 bit IEEE 754 |
| double | dupla pontosságú lebegőpontos | 64 bit IEEE 754 |
| Típus | Leírás | Méret / formátum |
| char | karakterek | 16 bit Unicod karakter |
| boolean | logikai érték | true vagy false |
4.3. Szám és szöveg közötti konvertálások
4.3.1. Szövegből számmá konvertálás
Előfordulhat, hogy a sztringként rendelkezésre álló adatot számként kell kezelnünk. pl. A szöveges állományból beolvasott adatok sztringként állnak a rendelkezésünkre és ha szeretnénk velük valamilyen matematikai műveletet végezni, akkor át kell alakítani szám típusúvá.
Az átalakítást a valueOf metódussal tudjuk elvégezni.
Példa: (Két szöveg típusú változó számként történő összeadása.)

4.3.2. Számból szöveggé konvertálás
Az a helyzet is előfordulhat, hogy a számból szövegbe konvertálásra van szükségünk. pl. A program által szolgáltatott szám értékeket szeretnénk egy szöveges állományba kiírni.
Az átalakítást a toString metódussal tudjuk elvégezni.
Példa: (Egy egész típusú szám számjegyeinek megszámlálása.)

Az alapvető aritmetikai számításokon (+, -, /, %) túl a Java nyelv biztosítja számunkra a Math osztályt. Az osztály metódusai magasabb rendű matematikai számítások elvégzését is lehetővé teszik. (pl. egy szög szinuszának a kiszámítása.)
A Math osztály metódusai osztály metódusok, így közvetlenül az osztály nevével kell őket meghívni.
pl. Math.abs(-32);
Nézzük meg a legfontosabb metódusokat!
|
double abs(double) float abs(foat) int abs(int) long abs(long) |
abszolút érték A kapott paraméter abszolút értékével tér vissza. |
| double ceil(double) |
felfelé kerekítés A legkisebb double értékkel tér vissza, ami nagyobb vagy egyenlő a megkapott paraméterrel. |
| double floor(double) |
lefelé kerekítés A legnagyobb double értékkel tér vissza, ami kisebb vagy egyenlő a megkapott paraméterrel. |
| double rint(double) |
a legközelebbi egészhez kerekít A megkapott paraméterhez legközelebb álló double értékkel tér vissza. |
|
long round(double) int round(float) |
kerekítés A legközelebbi long vagy int értéket adja vissza. |
|
double min(double, double) float min(float, float) int min(int, int) long min(long, long) |
A két paraméter közül a kisebbel tér vissza. |
|
double max(double, double) float max(float, float) int max(int, int) long max(long, long) |
A két paraméter közül a nagyobbal tér vissza. |
A következő program bemutatja a fenti táblázatban ismertetett metódusok használatát:

4.4.2. Hatványozással kapcsolatos metódusok:
| double exp(double) | A szám exponenciális értékével tér vissza. |
| double log(double) | A szám természetes alapú logaritmusával tér vissza. |
| double pow(double, double) | Az első paramétert a második paraméter értékével megadott hatványra emeli. |
| double sqrt(double) | A megadott paraméter négyzetgyökével tér vissza. |
A következő program bemutatja a fenti táblázatban ismertetett metódusok használatát:

4.4.3. Trigonometrikus függvények:
| double sin(double) | Egy szám szinuszával tér vissza. |
| double cos(double) | Egy szám koszinuszával tér vissza. |
| double tan(double) | Egy szám tangensével tér vissza. |
| double asin(double) | Egy szám arc szinuszával tér vissza. |
| double acos(double) | Egy szám arc koszinuszával tér vissza. |
| double atan(double) | Egy szám arc tangensével tér vissza. |
| double toDegrees(double) | A paramétert fokká konvertálja. |
| double toRadians(double) | A paramétert radiánná konvertálja. |
A következő program bemutatja a fenti táblázatban ismertetett metódusok használatát:

4.4.4. Véletlen szám készítés:
Gyakran szükségünk van véletlen számok
előállítására, ezt a double random()
metódussal tehetjük meg. A metódus egy véletlen számot ad [0.0;1.0[
intervallumban.
Példa:(Generáljunk egy véletlen egész számot 1-től 10-ig terjedő intervallumban.)

Figyeljük meg a bekeretezett kifejezést!
A random() metódus 0 és 1 közötti double típusú számot állít elő úgy, hogy a 0-t igen, de az 1-t soha nem veszi fel. Mi 1 és 10 közötti egész számot szeretnénk, ezért a véletlen számot meg kell szorozni 10-el és még hozzá kell adni 1-t is. Azt, hogy a végeredmény egész típusú legyen "ki kell kényszerítenünk" (int).
4.5. Tesztkérdések
4.6.1 Készíts programot, amely kiszámítja és kiírja az 5
egység sugarú kör kerületét és területét! (megoldás)
4.6.2. Készíts programot, amely kiszámítja és kiírja a
képernyőre a 30 fokos szög szögfüggvényeit! (megoldás)
4.6.3. Készíts programot, amely 10-től 20-ig generál két véletlen egész számot! Majd kiírja a két szám összegét, valamint szorzatát.
(megoldás)
4.6.4. A következő sorok közül melyik fog hiba nélkül
lefordulni?
a) byte a=256;
b) int i=10,
c) char c="a";
d) double d=1.33;
(megoldás)
4.6.5. Készíts programot, ami ha megadunk két nem negatív számot sztring formátumban, akkor a kisebbik négyzetgyökét kiírja a képernyőre.(megoldás)