Gyakorlati alapok
A 4 alapművelet nemcsak iskolásoknak
A számítógép működési elvét, miszerint a bemeneti adatokat a betáplált program kimeneti adatokká alakítja át (Turing-elv) talán egy egyszerű számológépen tudjuk a legjobban érzékeltetni...
Bemeneti adatok → Program → Kimeneti adatok
...ahol:
-
a bemeneti adat - (elméletileg) bármilyen szám,
-
a program - a megjelenítés, az adatbevitel és a műveletek (+ - * /),
-
a kimeneti adat - a végeredmény.
Az ügy ennél kissé bonyolultabb, hiszen ha számítógépünkön beindítunk egy számológép-alkalmazást...
...akkor a megjelenítést, az adatbevitelt (és még számos egyéb funkciót) nemcsak kizárólag az alkalmazás végez el, hanem az alatta futó operációs rendszer is.
A programírás és programvégrehajtás tehát legtöbbször megoszlik az alkalmazás és az operációs rendszer között. A Java nyelvben ehhez hozzájön még egy további, köztes szoftverréteg, a JVM, amely a Java-alkalmazás és az operációs rendszer között helyezkedik el.
Most pedig nézzünk egy egyszerű összeadást...
public class Main {
public static void main(String[] args) {
int a = 1;
int b = 2;
System.out.println(a + b);
}
}
Végeredmény:
3
...ahol:
-
a bemeneti adat - int a és int b, ekkor a műveleti memóriában 2 db int nagyságú /32 bites/ változóhely kerül lefoglalásra és fel is töltődik, úgymond inicializálódik 1 és 2 értékekkel,
-
a program - minden olyan megírt kód, ami ezen kód futtatásához szükséges (tehát voltaképpen maga a futtató környezet, az Eclipse is), valamint összeadás művelete (+),
-
a kimeneti adat - a végeredmény, a System.out.println(a + b) függvényben érhető el.
Ezek után könnyű kiterjesztenünk a fenti kódot a 4 alapműveletre:
public class Main {
public static void main(String[] args) {
float a = 3;
int b = 2;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println((float)a / b);
}
}
Végeredmény:
5
1
6
1.5
Vegyük észre, hogy az osztásnál kasztolnunk kell ((float)a), mert nagy valószínűséggel az osztási eredmény nem ad egész számot. Másrészről azt is észrevehetjük, hogy ez a "számológép" nagyon sántít, mert mindig ugyanazon számokkal dolgozik. Számunkra ez hosszabb távon teljesen haszontalan. A megoldás, hogy tetszőleges számot fogadjon be és esetleg mi magunk választhassunk a műveleteket között. Ez a feladat már felveti a döntés problémáját. Nyilvánvalóan ez már összetettebb programozási feladatokat igényel, amelyhez nekünk előbb számos további programozási elemet kell elsajátítanunk.