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:

  1. a bemeneti adat - (elméletileg) bármilyen szám,

  2. a program - a megjelenítés, az adatbevitel és a műveletek (+ - * /),

  3. 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...

 

www.informatika-programozas.hu - Windows-számológép

 

...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.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

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...

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

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:

  1. 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,

  2. 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 (+),

  3. 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:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

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.