Languages
[Edit]
PL

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

7 points
Created by:
Frank-van-Puffelen
409

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.

Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.

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