Languages
[Edit]
PL

Java - zliczanie liczb w tablicy dla początkujących

7 points
Created by:
Kate_C
21250

Zadanie:

Mamy tablicę z ocenami uczniów i naszym zadaniem jest policzenie ile i jakich ocen dostali uczniowie.

Np mając tablicę z ocenami uczniów:

int[] ocenyUczniow = {3, 5, 4, 3, 5, 5};

W tej tablicy mamy:

  • Zero ocen 1
  • Zero ocen 2
  • Dwie oceny 3 (index 0, 3)
  • Jedna ocena 4 (index 2)
  • Trzy oceny 5 (index 1, 4, 5)

Jak widzimy, klasa uczy się bardzo dobrze.

Efektem końcowym tego zadania jest wypisanie w ładnej formie ile i jakich ocen dostali uczniowie:

Twój program powinien wypisać w konsoli:

Zliczone oceny:
Liczba jedynek: 0
Liczba dwojek:  0
Liczba trojek:  2
Liczba czworek: 1
Liczba piatek:  3

Jeśli wiesz jak rozwiązać to zadanie, nie przechodź od razu do rozwiązania i spróbuj sam rozwiązać to zadanie.

Rozwiązanie:

public class ZliczanieLiczb {

    public static void main(String[] args) {

        int liczbaOcenJedynek = 0;
        int liczbaOcenDwojek = 0;
        int liczbaOcenTrojek = 0;
        int liczbaOcenCzworek = 0;
        int liczbaOcenPiatek = 0;

        int[] ocenyUczniow = {3, 5, 4, 3, 5, 5};

        for (int i = 0; i < ocenyUczniow.length; i++) {
            int ocena = ocenyUczniow[i];
            if (ocena == 1) {
                liczbaOcenJedynek++;
            }
            if (ocena == 2) {
                liczbaOcenDwojek++;
            }
            if (ocena == 3) {
                liczbaOcenTrojek++;
            }
            if (ocena == 4) {
                liczbaOcenCzworek++;
            }
            if (ocena == 5) {
                liczbaOcenPiatek++;
            }
        }

        System.out.println("Zliczone oceny:");
        System.out.println("Liczba jedynek: " + liczbaOcenJedynek);
        System.out.println("Liczba dwojek:  " + liczbaOcenDwojek);
        System.out.println("Liczba trojek:  " + liczbaOcenTrojek);
        System.out.println("Liczba czworek: " + liczbaOcenCzworek);
        System.out.println("Liczba piatek:  " + liczbaOcenPiatek);
    }
}

Wynik:

Zliczone oceny:
Liczba jedynek: 0
Liczba dwojek:  0
Liczba trojek:  2
Liczba czworek: 1
Liczba piatek:  3

Zadanie 2

Zadanie drugie jest analogiczne do 1, tylko teraz sami musimy sobie wygenerować tablicę z ocenami. Użyć do tego powinniśmy losowych liczb z przedziału od 1 do 5. Wielkość tablicy powinna być taka sama jak w przykładzie 1 (aby sobie nie utrudniać życia odrazu). Jeśli program będzie działał prawidłowo to możemy zwiększyć tą liczbe (zwiększamy ilość uczniów w klasie :D) do np 1000.

Rozwiązanie zadania 2

import java.util.concurrent.ThreadLocalRandom;

public class ZliczanieLiczb2 {

    public static void main(String[] args) {

        int[] ocenyUczniow = new int[6];
        for (int i = 0; i < ocenyUczniow.length; i++) {
            ocenyUczniow[i] = nastepnaLosowaOcena();
        }

        int liczbaOcenJedynek = 0;
        int liczbaOcenDwojek = 0;
        int liczbaOcenTrojek = 0;
        int liczbaOcenCzworek = 0;
        int liczbaOcenPiatek = 0;

        for (int i = 0; i < ocenyUczniow.length; i++) {
            int ocena = ocenyUczniow[i];
            if (ocena == 1) {
                liczbaOcenJedynek++;
            }
            if (ocena == 2) {
                liczbaOcenDwojek++;
            }
            if (ocena == 3) {
                liczbaOcenTrojek++;
            }
            if (ocena == 4) {
                liczbaOcenCzworek++;
            }
            if (ocena == 5) {
                liczbaOcenPiatek++;
            }
            if (ocena < 1 || ocena > 5) {
                throw new RuntimeException();
            }
        }

        System.out.println("Zliczone oceny:");
        System.out.println("Liczba jedynek: " + liczbaOcenJedynek);
        System.out.println("Liczba dwojek:  " + liczbaOcenDwojek);
        System.out.println("Liczba trojek:  " + liczbaOcenTrojek);
        System.out.println("Liczba czworek: " + liczbaOcenCzworek);
        System.out.println("Liczba piatek:  " + liczbaOcenPiatek);
    }

    public static int nastepnaLosowaOcena() {
        // 1 - włącznie - czyli 1 jest minimalną liczbą
        // 6 - wyłącznie - czyli 5 jest maksymalną liczbą
        return ThreadLocalRandom.current().nextInt(1, 6);
    }
}

Wynik (pierwsze uruchomienie programu):

Zliczone oceny:
Liczba jedynek: 2
Liczba dwojek:  0
Liczba trojek:  1
Liczba czworek: 1
Liczba piatek:  2

Wynik (drugie uruchomienie programu):

Zliczone oceny:
Liczba jedynek: 3
Liczba dwojek:  0
Liczba trojek:  0
Liczba czworek: 2
Liczba piatek:  1

Wynik (trzecie uruchomienie programu):

Zliczone oceny:
Liczba jedynek: 1
Liczba dwojek:  0
Liczba trojek:  1
Liczba czworek: 1
Liczba piatek:  3

Używamy w tym przykładzie liczb losowych, czyli każde uruchomienie programu będzie dawało różne wyniki (z małym prawdopodobieństwem, że program da te same wyniki).

Podsumowanie

Oczyście można ten program zrobić prościej i aby miał bardziej wszechstronne zastosowanie. Do tego moglibyśmy użyć tablicy aby zliczać sobie oceny pod indexami lub HashMap-y jeśli zakres liczb mógłby być np od 1 do 10000 lub większy. Ale małymi kroczkami dojdziemy do bardziej zaawansowanych przykładów.

Java dla początkujących

Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join