Gyakorlati alapok

Bekért számok átlaga

 

Ebben a fejezetben folyamatosan bekért számok egyszeri átlagát számoljuk és írjuk ki.

 

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

 

Átlagszámításkor a számsorozat összege van elosztva a számsorban szereplő számok mennyiségével. Ezt a fajta átlagot nevezik számtani vagy aritmetikai középértéknek is.

 

Az implementáció szinte teljesen azonos a Bekért számok összege című fejezetben foglaltakkal, egyetlen kivétellel: a folyamatos összegzés mellett (osszeg += szam) számolnunk kell a bekért számok mennyiségét is (szamlalo++). A probléma azonban, hogy noha 0 szám esetén lezáródik a sorozat, a számláló értékét ez is növeli +1-gyel, ennek kompenzálására az átlagszámítás így módosul:

 

osszeg / (szamlalo-1)

 

Mivel az átlagszámítás mindig osztásos művelet, érdemes a benne szereplő adattagokat double típusra deklarálni, hiszen int adattípus esetén adatcsonkolódás léphet fel:

 

double osszeg = 0;
double atlag = 0;

 

Ezért biztonságképpen -bár a kód egyszerűbben is működne-, az átlagszámítás műveletét külön választottam:

 

atlag = osszeg /(szamlalo-1);

 

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

 

 

 

 

 

 

 


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int szam = 0;
    int szamlalo = 0;
    double osszeg = 0;

    double atlag = 0;
    do {
        System.out.print("Adjon meg egy számot vagy kérje az átlagot 0-val!\n");
        String szamString = in.nextLine();
        szam = Integer.parseInt(szamString);
        osszeg += szam;
        szamlalo++;
    } while (szam != 0);
    System.out. println("Összeg: " + osszeg);

    atlag = osszeg /(szamlalo-1);
    System.out. println("Átlag: " + atlag);
    }
}

 

Végeredmény (például):

Adjon meg egy számot vagy kérje az összeget 0-val!
5
Adjon meg egy számot vagy kérje az összeget 0-val!
6
Adjon meg egy számot vagy kérje az összeget 0-val!
7
Adjon meg egy számot vagy kérje az összeget 0-val!
8
Adjon meg egy számot vagy kérje az összeget 0-val!
9
Adjon meg egy számot vagy kérje az összeget 0-val!
0
Összeg: 35.0
Átlag: 7.0

 

Láthatjuk azonban, hogy az algoritmus sok egyéb feltételt még nem ellenőriz le, többek közt rossz karakterek begépelése, negatív számok, stb. Ennek lekezelése már magasabb szintű programozási feladat.