Gyakorlati alapok

Virtuális ötös lottó külön függvényeskedéssel II.

 

A fejezet gondolati és programozás-technikai előzményei a Virtuális ötös lottó és a Virtuális ötös lottó külön függvényeskedéssel című fejezetben olvashatók.

 

Ebben a fejezetben a virtuális ötöslottóra egy egészen más megoldást mutatunk meg. A megalkotott metódusok a következők:

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

 

Érdekes implementációs megoldás, hogy a tippelt és véletlenszám-generált számok összehasonlítása metszet-tétellel történik, hiszen ennek során éppúgy a közös elemeket és egyszeresen keressük.

 

A kód része Sike Zoltán informatika tanár oktatási anyagának. Nézzük meg a futtatható Java-kódot:

 

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

 

 

 

 

 

 

 

 

import java.util.Random;
import java.util.Scanner;

public class Main {

public static boolean benneVan(int szam, int[] tomb) {
    boolean talalat = false;
    for(int i = 0; i < tomb.length; i++) {
        if(szam == tomb[i]) {
            talalat = true;
            break;
            }
        }
    return talalat;
}

public static int[] tombFeltoltes(int elemszam, int hatar) {
    int[] tomb = new int[elemszam];
    Random rnd = new Random();
    int szam;
    for(int i = 0; i < tomb.length; i++) {
        do{
            szam = rnd.nextInt(hatar) + 1;
        }while (benneVan(szam, tomb));
        tomb[i] = szam;
    }
    return tomb;
}

public static void kiir(int[] tomb){
    System.out.println();
    for (int i = 0; i < tomb.length; i++) {
        System.out.print(tomb[i]+" ");
    }
}

public static int[] metszet(int[] szamok, int[] tippek) {
    int[] tomb = new int[szamok.length + 1];
    int db = 0;
    for (int i = 0; i < szamok.length; i++) {
        if(benneVan(szamok[i], tippek))
        {
            db++;
            tomb[db] = szamok[i];
        }
    }
    tomb[0] = db;
    return tomb;
}

public static void main(String[] args) {
    int[] szamok = tombFeltoltes(5, 90);
    int[] tippek = new int[5];
    int szam;
    Scanner in = new Scanner(System.in);
    for(int i = 0; i <= 4; i++) {
        do{
            System.out.print("Kérem a " + (i + 1) + ". számot: ");
            szam = in.nextInt();
        }
    while(benneVan(szam, tippek) || (szam < 1 || szam > 90));
    tippek[i] = szam;
    }
    kiir(szamok);
    kiir(tippek);
    kiir(metszet(szamok, tippek));
    }
}

 

Végeredmény:

Kérem a 1. számot: 1
Kérem a 2. számot: 23
Kérem a 3. számot: 40
Kérem a 4. számot: 1
Kérem a 4. számot: 56
Kérem a 5. számot: 68

83 13 33 82 55
1 23 40 56 68
0 0 0 0 0 0

 

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

 

Házi feladat - Szintén külön függvényben számoljuk meg és írjuk ki a találati számot!

 

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