Languages
[Edit]
PL

Java - zliczanie liczb w tablicy dla pocz─ůtkuj─ůcych

7 points
Created by:
Kate_C
2857

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

Hey ­čĹő
Would you like to know what we do?
  • Dirask is a friendly IT community for learners, professionals and hobbyists to share their knowledge and help each other in extraordinary easy way.
  • We welcome everyone,
    no matter what the experience,
    no matter how basic the question is,
    this community will help you.