Zamieszczam kolejne zadania dotyczące przede wszystkim operacji na tablicach dwuwymiarowych.
Przy okazji informuję, że uaktualniłem poprzednie posty o rozwiązania zadań, tam gdzie ich jeszcze nie było.
Zadania
-
Poniżej podano dane pomiarowe dla 5 populacji (po 10 pomiarów) dotyczące liczby młodych urodzonych przez samicę.
populacja 1: 7,8,4,6,7,8,5,4,5,4
populacja 2: 9,9,8,7,8,6,7,8,8,9
populacja 3: 5,6,7,7,6,5,6,5,7,8
populacja 4: 9,8,9,8,7,8,9,9,8,7
populacja 5: 7,5,4,5,4,7,6,5,8,6Zadania:
- Umieść te dane w programie i oblicz dla każdej z populacji średnią, zaokrąglaną do liczb całkowitych w dół (podpowiedź: jeśli wynik dzielenia, który zawiera część dziesiętną przypiszemy do zmiennej typu int to część ułamkowa zostanie odcięta).
- Narysuj na ekranie histogram poziomy
na którym znają się średnie i słupki pokazujące
te średnie:
5 *****
7 *******
6 ******
8 ********
5 *****
- Napisz program który pobierze od użytkownika liczbę, po czym wypisze na ekranie trójkąt Pascala o zadanej liczbie rzędów. Wartość każdej komórki, oprócz skrajnych 1, niech oblicza sumując sąsiednie komórki z rzędu powyżej.
Dodatkowo: niech wypisze po lewej numer rzędu a po prawej sumę elementów w rzędzie. (podpowiedzi: zob. prezentację)
0 . . . . . . . . 1 . . . . . . . . 1
1 . . . . . . . 1 . 1 . . . . . . . 2
2 . . . . . . 1 . 2 . 1 . . . . . . 4
3 . . . . . 1 . 3 . 3 . 1 . . . . . 8
4 . . . . 1 . 4 . 6 . 4 . 1 . . . . 16
5 . . . 1 . 5 . 10 . 10 . 5 . 1 . . . 32
6 . . 1 . 6 . 15 . 20 . 15 . 6 . 1 . . 64
7 . 1 . 7 . 21 . 35 . 35 . 21 . 7 . 1 . 128
8 1 . 8 . 28 . 56 . 70 . 56 . 28 . 8 . 1 256
Kody
Zadanie 1
Dane pomiarowe dla 5 populacji są wpisz do tabeli, oblicz średnią zaokrąglaną w dół dla każdej populacji a następnie wydrukuj poziomy histogram (pełna treść – patrz wyżej).
// tablica z danymi - w rzędach dane // dla poszczególnych populacji int[][] dane={ {7,8,4,6,7,8,5,4,5,4}, {9,9,8,7,8,6,7,8,8,9}, {5,6,7,7,6,5,6,5,7,8}, {9,8,9,8,7,8,9,9,8,7}, {7,5,4,5,4,7,6,5,8,6}}; // w tej tablicy będziemy przechowywać // średnie dla poszczególnych populacji int[] srednie = new int[5]; int suma; int i=0; int sumaWszystkich=0; // Pętla w której pobieramy "rzędy" - w każdym // są dane dla jednej populacji for (int tab[] : dane) { // zmienna w której przechowujemy sumę wartości suma=0; // pętla która pobiera kolejne dane dla populacji // a następnie je po kolei sumuje for (int d : tab) { // każda kolejna wartość jest dodawana do // otrzymanej poprzednio sumy i przypisywana // do zmiennej suma suma=suma+d; } // obliczmy średnią dla populacji a następnie // wpisujemy obliczoną wartośc do tablicy w której // przechowujemy średnie dla populacji srednie[i]=suma/tab.length; // teraz będziemy obliczać dane dla nastepnej populacji // więc zwiększamy i o 1 i++; } // Rysujemy poziomy histogram // Pobieramy kolejne wartości z tabeli przechowującej // średnie z kolejnych populacji for(int j : srednie) { // wypisujemy wartość średniej System.out.print(j+" "); // pętla która wykonuje się tyle razy ile wynosi średnia // za każdym obrotem pętli drukowany jest znak * for (int k=0; k<j;k++) { System.out.print("*"); } // kiedy został wydrukowany "słupek" dla populacji // trzeba przejśc do nowej linii System.out.println(); }
Leave a Reply
You must be logged in to post a comment.