Gyakorlati alapok

Kerekítés - gombolyítás külön függvényeskedéssel

 

A fejezet előzményei a Kerekítés - gombolyítás című fejezetben tanulmányozhatók. A külön függvényes algoritmus alapja a következő:

 

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

 

 

 

 

 

 

 

 

import java.util.Scanner;

public class Main {

public static int kerekit(int szam) {
    if(szam % 5 == 0) {
        return szam;
    }
    else
        return Math.round(((float)szam) / 5) * 5;
}

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("Kérem adjon meg egy számot: \n");
    int szam = sc.nextInt();
    System.out.println("A szám kerekítve: " + kerekit(szam));
    }
}


Eredmény:
Kérem adjon meg egy számot:
8
A szám kerekítve: 10

 

Ekkor a kerekítést egy kerekit() nevű külső függvénybe tettük. Emlékezzünk vissza azonban, a specifikáció...

  1. tömb méretének előzetes bekérése (tomb[elemszam]),

  2. elemekkel való feltöltése,

  3. elemeinek egy másik tömbbe (tomb2[elemszam]) való átmásolása és a kerekítési szabályok szerinti módosítása,

  4. illetve a kerekítési metódust külön függvénybe kellett illeszteni.

...ennél több premisszát, kiindulópontot tartalmazott. Először nézzük meg az internetes olvasó végső megoldását:

 

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

 

 

 

 

 

 

 

 

import java.util.Scanner;

public class Main {

public static int round(int osszeg) {
    int szam = osszeg;
    if (szam % 5 == 0) {
        return szam;
    } else {
        return Math.round(((float) szam) / 5) * 5;
    }
}

public static void roundSelf(int[] numbers) {
    for (int i = 0; i < numbers.length; i++) {
        numbers[i] = round(numbers[i]);
        System.out.println(numbers[i]);
    }
}

public static int[] roundNew(int[] numbers) {
    int[] tomb = new int[numbers.length];
    for (int i = 0; i < tomb.length; i++) {
        tomb[i] = round(numbers[i]);

    }
        return tomb;
}

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("Kérem az összegek számát: ");
    int osszeg = sc.nextInt();
    int[] tomb = new int[osszeg];
    System.out.println("Kérem az összegeket: ");
    for (int i = 0; i < tomb.length; i++) {
        tomb[i] = sc.nextInt();
    }
    System.out.print("Kerekítve: \n");
    roundSelf(tomb);
    }
}

 

Kérem az összegek számát: 5
Kérem az összegeket:
10
33
56
45
22
Kerekítve:
10
35
55
45
20

 

www.informatika-programozas.hu - Házi feladat

 

Ebből, valamint a Kerekítés - gombolyítás című fejezetben találtak alapján próbáljunk találni külön függvényes megoldásokat, akár többfélét is.

 

A megoldás fejezete a képre kattintva érhető el.