Twitter: @grzegg
Kategoria: java, Tagi: - - .

Java – zadania (02) do cz. 1-7

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

  1. 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,6

    Zadania:

    • 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 *****

  2. 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

Prezentacja (pdf) – zadania z odpowiedzią na zadanie 1 i podpowiedziami do zadania 2 (odpowiedź pojawi się później)


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