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();
}
@grzegg
Leave a Reply
You must be logged in to post a comment.