informatyka programowanie w jezyku java zbior zadan z p odpowiedziami wieslaw rychlicki ebook

background image
background image

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym
powoduje naruszenie praw autorskich niniejszej publikacji.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi
ich właścicieli.

Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje
były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani
za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz
Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody
wynikłe z wykorzystania informacji zawartych w książce.

Redaktor prowadzący: Ewelina Burska

Projekt okładki: Studio Gravite/Olsztyn
Obarek, Pokoński, Pazdrijowski, Zaprucki

Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)

Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie?projaz
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.

Materiały do książki można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/projaz.zip

ISBN: 978-83-246-4319-6

Copyright © Helion 2012

Printed in Poland.

Kup książkę

Poleć książkę

Oceń książkę

Księgarnia internetowa

Lubię to! » Nasza społeczność

background image

Spis tre"ci

Od autora ......................................................................................... 5

Rozdzia! 1. Pierwszy krok — rozpoczynamy

nauk$ programowania w j$zyku Java ................................................. 7

1. Historia Javy i pierwsze zadania ................................................................................... 7
2. JDK, Notatnik i klasyczny przyk4ad „Hello World” ..................................................... 9
3. Znaki, tablice znaków i klasa String ........................................................................... 11
4. Klasa String — operacje na tekstach .......................................................................... 15
5. Tablica argumentów aplikacji ..................................................................................... 18
6. Prawda czy fa4sz — logiczny typ danych ................................................................... 19
7. Liczby ca4kowite typu int i klasa Integer .................................................................... 22
8. Inne typy liczb ca4kowitych w Javie ........................................................................... 25
9. Typy liczb zmiennoprzecinkowych ............................................................................ 27

Rozdzia! 2. Drugi krok — operacje wej%cia-wyj%cia

i instrukcje steruj&ce w Javie ......................................................... 31

10. WyHwietlanie sformatowanych wyników w konsoli.

Sta4e i metody z klasy Math ..................................................................................... 31

11. Wczytywanie danych — klasa Scanner .................................................................... 34
12. Operacje na tekstach — klasy StringBuffer i StringBuilder ..................................... 36
13. Instrukcje warunkowe i instrukcja selekcji ............................................................... 38
14. Instrukcja pMtli typu do-while ................................................................................... 41
15. Instrukcja pMtli typu while ........................................................................................ 42
16. Instrukcja pMtli typu for ............................................................................................ 44

Rozdzia! 3. Trzeci krok — budujemy w!asne metody i klasy ............................... 47

17. Obs4uga wyjRtków .................................................................................................... 47
18. Liczby pseudolosowe i tablice jednowymiarowe

— budujemy metody statyczne ................................................................................ 48

19. Dokumentacja klasy ................................................................................................. 53
20. Dzia4ania na u4amkach — budujemy klasM Fraction ................................................. 55
21. Klasa opakowujRca Angle — miara kRta i funkcje trygonometryczne ..................... 61
22. Liczby rzymskie i klasa Roman ................................................................................ 64
23. Trójmian kwadratowy i klasa QuadratPoly .............................................................. 66
24. Liczby zespolone — budujemy klasM Complex ........................................................ 69

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

4

Programowanie w j!zyku Java

Rozdzia# 4. Czwarty krok — pliki, tablice i macierze ......................................... 77

25. Operacje na plikach tekstowych ............................................................................... 77
26. Tablice jednowymiarowe i wielomiany .................................................................... 80
27. Obliczenia statystyczne ............................................................................................ 82
28. Tablice wielowymiarowe i macierze ........................................................................ 87
29. Obliczanie wartoHci funkcji, rekurencja i inne zadania ............................................. 92

Rozdzia# 5. Rozwi%zania zada& z rozdzia#u 1 ...................................................... 97

1. Historia Javy i pierwsze zadania ................................................................................. 97
2. JDK, Notatnik i klasyczny przyk4ad „Hello World” ................................................. 101
3. Znaki, tablice znaków i klasa String ......................................................................... 104
4. Klasa String — operacje na tekstach ........................................................................ 111
5. Tablica argumentów aplikacji ................................................................................... 117
6. Prawda czy fa4sz — logiczny typ danych ................................................................. 120
7. Liczby ca4kowite typu int i klasa Integer .................................................................. 129
8. Inne typy liczb ca4kowitych w Javie ......................................................................... 135
9. Typy liczb zmiennoprzecinkowych .......................................................................... 140

Rozdzia# 6. Rozwi%zania zada& z rozdzia#u 2 .................................................... 147

10. WyHwietlanie sformatowanych wyników w konsoli.

Sta4e i metody z klasy Math ................................................................................... 147

11. Wczytywanie danych — klasa Scanner .................................................................. 152
12. Operacje na tekstach — klasy StringBuffer i StringBuilder ................................... 157
13. Instrukcje warunkowe i instrukcja selekcji ............................................................. 162
14. Instrukcja pMtli typu do-while ................................................................................. 179
15. Instrukcja pMtli typu while ...................................................................................... 187
16. Instrukcja pMtli typu for .......................................................................................... 193

Rozdzia# 7. Rozwi%zania zada& z rozdzia#u 3 .................................................... 201

17. Obs4uga wyjRtków .................................................................................................. 201
18. Liczby pseudolosowe i tablice jednowymiarowe

— budujemy metody statyczne .............................................................................. 206

19. Dokumentacja klasy ............................................................................................... 221
20. Dzia4ania na u4amkach — budujemy klasM Fraction ............................................... 237
21. Klasa opakowujRca Angle — miara kRta i funkcje trygonometryczne ................... 269
22. Liczby rzymskie i klasa Roman .............................................................................. 290
23. Trójmian kwadratowy i klasa QuadratPoly ............................................................ 301
24. RozwiRzania zada] — liczby zespolone ................................................................. 318

Rozdzia# 8. Rozwi%zania zada& z rozdzia#u 4 .................................................... 347

25. Operacje na plikach tekstowych ............................................................................. 347
26. Tablice jednowymiarowe i wielomiany .................................................................. 358
27. Obliczenia statystyczne .......................................................................................... 370
28. Tablice wielowymiarowe i macierze ...................................................................... 385
29. Obliczanie wartoHci funkcji, rekurencja i inne zadania ........................................... 420

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

Rozdzia( 4.

Czwarty krok — pliki,
tablice i macierze

25. Operacje na plikach tekstowych

Zadanie 25.1.

KorzystajRc z obiektów i metod klasy

FileWriter

, napisz program zapisujRcy do pliku

tekstowego tekst.txt jeden wiersz tekstu: Programowanie obiektowe.

Zadanie 25.2.

Plik tekstowy tekst.txt zawiera jeden wiersz tekstu: Programowanie obiektowe. Ko-
rzystajRc z obiektu i metod klasy

FileWriter

, napisz program dopisujRcy do tego pli-

ku w pierwszym wierszu tekst: w j'zyku Java, a w kolejnym wierszu tekst: jest bardzo
interesuj*ce
.

W systemie Windows koniec wiersza w pliku tekstowym sk(ada si9 z dwóch znaków
CR (ang. carriage return, warto?@ ASCII 13, znak '\r') i LF (ang. line feed warto?@
ASCII 10, znak '\n'). W systemach UNIX i Linux koKcem wiersza jest LF, a w sys-
temie Mac OS — znak CR.

Zadanie 25.3.

KorzystajRc z obiektu i metod klasy

FileWriter

, napisz program obliczajRcy i zapi-

sujRcy w pliku silnia.txt wartoHci

n!

(

n

silnia) dla

n

=

1

,

2

, …,

12

. Kacdy wynik zapisz

w odrMbnym wierszu, w postaci

12! = 479001600

.

Przypomnijmy znaczenie symbolu n!: 1! = 1, 2! = 1!·2 = 1·2, 3! = 2!·3 = 1·2·3 itd.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

78

Programowanie w j$zyku Java

W tym zadaniu i zadaniach podobnych starajmy si9, aby plik wyj?ciowy nie zawie-
ra( na koKcu pustego wiersza (je?li obecno?@ tego ostatniego wiersza nie jest za-
mierzona). Taki wiersz moVe nam sprawi@ róVne niespodzianki, gdy plik b9dzie od-
czytywany.

Zadanie 25.4.

Napisz program zapisujRcy w pliku pierwiastki.txt wartoHci pierwiastków kwadrato-
wych i szeHciennych dla liczb naturalnych od 2 do 15. Kacdy wiersz pliku powinien
zawierag trzy liczby oddzielone znakami tabulatora — liczbM naturalnR, pierwiastek
kwadratowy z tej liczby i pierwiastek szeHcienny. Pierwiastki podaj z precyzjR do 8
miejsc po przecinku.

Do formatowania wyników uVyj metody format() z klasy String.

Zadanie 25.5.

Napisz program zapisujRcy w pliku tekstowym sto.txt sto liczb ca4kowitych wyloso-
wanych z zakresu od 1 do 20. Liczby w pliku powinny byg oddzielone odstMpami.

Zadanie 25.6.

Napisz program zapisujRcy w pliku tekstowym dane.txt 50 par liczb. Kacda para liczb
powinna byg umieszczona w odrMbnym wierszu. Pierwsza liczba w parze powinna
byg rzeczywista, dodatnia i nie wiMksza od 10 oraz podana z dok4adnoHciR do dwóch
miejsc po przecinku, druga liczba powinna byg ca4kowita i ma naleceg do przedzia4u

8

,

2

. Liczby w wierszu oddzielamy odstMpem.

Po rozwiYzaniu zadaK 25.1 – 25.6 b9dziemy mieli w bieVYcym folderze pi9@ plików:
tekst.txt, silnia.txt, pierwiastki.txt, sto.txt i dane.txt. Zawarto?@ tych plików b9dziemy
odczytywali w kolejnych zadaniach.

Zadanie 25.7.

KorzystajRc z obiektu i metod klasy

FileReader

, napisz program odczytujRcy zawar-

toHg pliku tekstowego i wyHwietlajRcy jego zawartoHg w konsoli.

Bezparametrowa metoda read() z klasy FileReader odczytuje z pliku jeden znak
i zwraca jego kod, liczb9 typu int z zakresu od 0 do 65 535 lub liczb9 –1, gdy nie
moVna odczyta@ znaku. Metoda ready() zwraca warto?@ logicznY true, gdy z pliku
moVna odczyta@ kolejny znak, i false w przeciwnym wypadku.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

Rozdzia! 4.

Czwarty krok — pliki, tablice i macierze

79

Zadanie 25.8.

KorzystajRc z obiektu i metod klasy

FileReader

, utwórz metodM (

readLine()

) odczy-

tujRcR wiersz pliku tekstowego. Napisz program odczytujRcy i wyHwietlajRcy w kon-
soli wszystkie wiersze pliku tekstowego.

Klasa FileReader nie zawiera metody readLine(), wi9c musisz jY sam zbudowa@.
Plik tekstowy otwórz przed wywo(aniem metody, obiekt (klasy FileReader) skojarzo-
ny z plikiem przekaV jako parametr do metody readLine(), która przeczytany z pli-
ku wiersz tekstu zwróci w postaci (aKcucha znaków.

Zadanie 25.9.

Napisz program wyHwietlajRcy w konsoli kod hród4owy programu w jMzyku Java wraz
z numerami linii. NazwM pliku (bez rozszerzenia) ucytkownik powinien podawag z kla-
wiatury. JeHli w okreHlonej lokalizacji nie ma wskazanego pliku, to program powinien
wyHwietlig odpowiedni komunikat.

Do wprowadzenia nazwy pliku z konsoli oraz do odczytania wierszy tekstu z pliku
wykorzystaj obiekty klasy BufferedReader i metod9 readLine() z tej klasy. Obec-
no?@ pliku moVesz sprawdzi@, stosujYc metod9 exists() z klasy File.

Zadanie 25.10.

Napisz program zapisujRcy do pliku kod hród4owy programu w jMzyku Java wraz z nu-
merami linii. NazwM pliku (bez rozszerzenia) ucytkownik powinien podawag z kla-
wiatury. JeHli w okreHlonej lokalizacji nie ma wskazanego pliku, to program powinien
wyHwietlig odpowiedni komunikat. Nazwa pliku wyjHciowego powinna byg taka jak
nazwa pliku hród4owego, rozszerzenie java zamienimy na rozszerzenie txt.

Do wprowadzenia nazwy pliku z konsoli oraz do odczytania wierszy tekstu z pliku
wykorzystaj obiekty klasy Scanner. Do zapisania pliku wyj?ciowego uVyj metod kla-
sy PrintWriter.

Zadanie 25.11.

W pliku tekstowym wpisany jest ciRg liczb ca4kowitych oddzielonych odstMpami. Na-
pisz program, który odczyta i wyHwietli w konsoli liczby z pliku oraz obliczy ich sumM.

Do testów moVesz uVy@ pliku sto.txt (rozwiYzanie zadania 25.5). Nie wykorzystuj
jednak faktu, Ve znasz ilo?@ liczb zapisanych w tym pliku.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

80

Programowanie w j$zyku Java

Zadanie 25.12.

W pliku tekstowym wpisany jest ciRg liczb ca4kowitych oddzielonych odstMpami. Na-
pisz program, który znajdzie najmniejszR liczbM w tym pliku oraz obliczy, ile razy ta
liczba w tym pliku wystMpuje.

Do testów moVesz uVy@ pliku sto.txt (rozwiYzanie zadania 25.5). Nie wykorzystuj
jednak faktu, Ve znasz ilo?@ liczb zapisanych w pliku.

Zadanie 25.13.

W pliku tekstowym zapisane sR w kolejnych wierszach pary liczb — liczba zmienno-
przecinkowa i liczba ca4kowita. Napisz program, który odczytuje pary liczb z pliku,
oblicza iloczyn kacdej pary i sumuje iloczyny. Wynik oblicze] nalecy wypisag w kon-
soli i zapisag w ostatnim wierszu pliku z danymi.

Do testów moVesz uVy@ pliku dane.txt (rozwiYzanie zadania 25.6).

26. Tablice jednowymiarowe

i wielomiany

Jednym z zastosowa] tablic jednowymiarowych moce byg przechowywanie wspó4-
czynników wielomianu.

Wielomian n-tego stopnia jednej zmiennej

0

1

1

1

...

)

(

a

x

a

x

a

x

a

x

w

n

n

n

n

"

"

"

"

#

$

$

ma n+1

wspó4czynników, które mocemy zapisag w tablicy

double[] a = {a0, a1, ..., an};

.

Zadanie 26.1.

Napisz program obliczajRcy wartoHci wielomianu. Stopie] wielomianu, wspó4czynni-
ki i kolejne wartoHci argumentu ucytkownik bMdzie wprowadza4 z klawiatury. Podanie
argumentu

x = 0

bMdzie sygna4em do zako]czenia pracy programu.

Do obliczenia warto?ci wielomianu wykorzystaj schemat Hornera.

Zadanie 26.2.

Napisz program, który obliczy i zapisze w pliku tekstowym (wielomian.txt) tablicM
wartoHci wielomianu

3

5

2

)

(

2

3

"

$

"

#

x

x

x

x

w

w przedziale

3

,

2

$

z krokiem h = 0,125.

Plik powinien zawierag trzy wiersze z informacjami o rozwiRzywanym zadaniu, we-
d4ug schematu: stopie] wielomianu (pierwszy wiersz), wspó4czynniki wielomianu
oddzielone odstMpami w drugim wierszu (zaczynajRc od wyrazu wolnego) i kra]ce

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

Rozdzia! 4.

Czwarty krok — pliki, tablice i macierze

81

przedzia4u oraz krok w trzecim wierszu. W kolejnych wierszach umieHcimy pary liczb
(argument i wartoHg) oddzielone odstMpem.

Zadanie 26.3.

Napisz program, który obliczy i wyHwietli w konsoli sumM dwóch wielomianów.

Skorzystaj z metod dost9pnych w klasie Arrays. Przyjmij, Ve wy?wietlajYc wynik
lub prezentujYc dane, wielomian

0

1

1

1

...

)

(

a

x

a

x

a

x

a

x

w

n

n

n

n

"

"

"

"

#

$

$

zapiszemy

w postaci (aKcucha znaków "w = [a0, a1, ... an]", gdzie a0, a1, …, an sY licz-
bami wyraVajYcymi wspó(czynniki wielomianu.

Zadanie 26.4.

Napisz program, który obliczy i wyHwietli w konsoli rócnicM dwóch wielomianów.

Zob. wskazówk9 do zadania 26.3.

Zadanie 26.5.

Napisz program, który obliczy i wyHwietli w konsoli iloczyn wielomianu przez liczbM.

Zadanie 26.6.

Napisz program, który obliczy i wyHwietli w konsoli iloczyn dwóch wielomianów.

Zadanie 26.7.

Napisz program, który obliczy i wyHwietli w konsoli pochodnR wielomianu.

Zadanie 26.8.

Napisz program, który obliczy i wyHwietli w konsoli ca4kM nieoznaczonR (funkcjM pier-
wotnR) wielomianu.

Zadanie 26.9.

Utwórz klasM

Polynomial

(plik Polynomial.java) umocliwiajRcR wykonywanie pod-

stawowych dzia4a] na wielomianach zapisanych w postaci tablicy wspó4czynników.
Napisz aplikacjM prezentujRcR mocliwoHci utworzonych metod i konstruktorów.

Zadanie 26.10.

Napisz program wykonujRcy dzielenie wielomianu

0

1

1

1

...

)

(

a

x

a

x

a

x

a

x

w

n

n

n

n

"

"

"

"

#

$

$

przez dwumian o postaci (x–c).

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

82

Programowanie w j$zyku Java

Zadanie 26.11.

Do4Rcz do klasy

Polynomial

dwie metody —

division()

i

remainder()

— obliczajRce

iloraz i resztM z dzielenia wielomianu reprezentowanego przez obiekt wywo4ujRcy me-
todM przez dwumian (x-c), gdzie liczba

c

typu

double

jest parametrem wywo4ania me-

tody. Napisz program demonstrujRcy dzia4anie tych metod.

Zadanie 26.12.

Napisz program obliczajRcy ca4kM oznaczonR

%

#

b

a

dx

x

w

s

)

(

dla wielomianu

0

1

1

1

...

)

(

a

x

a

x

a

x

a

x

w

n

n

n

n

"

"

"

"

#

$

$

Wszystkie potrzebne dane ucytkownik powinien wprowadzig z klawiatury — najpierw
dane wielomianu (stopie] i wspó4czynniki), a póhniej granice ca4kowania.

Do wyznaczenia funkcji pierwotnej uVyj metody (integral()) opracowanej w rozwiYza-

niach zadaK 26.8 i 26.9, a nast9pnie skorzystaj ze wzoru

)

(

)

(

)

(

a

F

b

F

dx

x

w

b

a

$

#

%

.

Zadanie 26.13.

MajRc dane wszystkie pierwiastki rzeczywiste wielomianu (

n

x

x

x

...,

,

,

2

1

), napisz pro-

gram wyznaczajRcy wspó4czynniki wielomianu.

27. Obliczenia statystyczne

Zadania 27.1 – 27.19 wykonamy dla n-elementowej próbki zapisanej w tablicy:

double[] x = {1.35, 2.45, 2.05, 1.20, 2.15, 1.70, 1.45, 1.95, 2.00, 1.65, 1.65,
2.05, 1.75, 1.25, 2.25, 1.40};

Czytelnik moce samodzielnie zmienig zestaw danych lub sposób ich pobierania przez
program — wprowadzanie danych z klawiatury lub odczytywanie z pliku. Nalecy
zwrócig uwagM na rozbiecnoHci pomiMdzy zakresem indeksów. W tablicach w jMzyku
Java indeksowanie rozpoczynamy od 0 i ko]czymy na indeksie o 1 mniejszym od
rozmiaru tablicy, natomiast we wzorach statystyki opisowej indeksy wartoHci próbki
bMdR w granicach od 1 do n.

W zadaniach bardzo czMsto bMdziemy mieli do czynienia z obliczaniem sumy ciRgu

liczb x

1

, x

2

, …, x

n

(oznaczanej symbolem

&

#

n

i

i

x

1

) zapisanego w tablicy

x[0]

,

x[1]

, …,

x[n–1]

. Zrealizujemy to przy ucyciu instrukcji pMtli:

double suma = 0;
for(double xi: x)
suma += xi;

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

Rozdzia# 4.

Czwarty krok — pliki, tablice i macierze

83

lub:

double suma = 0;
for(int i = 0; i < n; ++i))
suma += x[i];

Zadanie 27.1.

Dla podanej próbki n-elementowej x

1

, …, x

n

wyznacz najmniejszR i najwiMkszR war-

toHg w ciRgu oraz rozstMp badanej cechy.

Rozst&pem badanej cechy jest róVnica pomi9dzy warto?ciY maksymalnY i minimalnY

min

max

x

x

R

"

#

.

Zadanie 27.2.

Dla podanej próbki n-elementowej x

1

, …, x

n

wyznacz HredniR arytmetycznR.

3redni6 arytmetyczn6 liczb x

1

, …, x

n

nazywamy liczb9

$

#

#

n

i

i

x

n

x

1

1

.

Zadanie 27.3.

Dla podanej próbki n-elementowej x

1

, …, x

n

wyznacz HredniR geometrycznR.

3redni6 geometryczn6 dodatnich liczb x

1

, …, x

n

nazywamy liczb9

n

n

i

i

x

g

%

#

#

1

.

JeVeli wszystkie x

i

> 0, to

$

#

#

n

i

i

x

n

g

1

log

1

log

.

Zadanie 27.4.

Dla podanej próbki n-elementowej x

1

, …, x

n

wyznacz HredniR harmonicznR.

3redni6 harmoniczn6 róVnych od zera liczb x

1

, …, x

n

nazywamy liczb9

1

1

1

1

"

#

&&

'

(

))

*

+

#

$

n

i

i

x

n

h

, gdy

0

1

1

,

$

#

n

i

i

x

(odwrotno?@ ?redniej arytmetycznej

odwrotno?ci tych liczb).

Zadanie 27.5.

Dla podanej próbki n-elementowej x

1

, …, x

n

wyznacz HredniR potMgowR rzMdu r. Obli-

czenia wykonaj dla r = 2 i r = 3.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

84

Programowanie w j$zyku Java

=redni> pot?gow> rz?du r dodatnich liczb x

1

, …, x

n

nazywamy liczb9

r

n

i

r

i

r

x

n

p

&

#

#

1

)

(

1

. Dla

1

$

#

r

otrzymujemy ?redniY harmonicznY (

h

p

#

$ )

1

(

),

a dla

1

#

r

?redniY arytmetycznY (

x

p

#

)

1

(

).

Zadanie 27.6.

Dla podanej próbki n-elementowej x

1

, …, x

n

wyznacz medianM.

Posortuj tablic9 z danymi i wybierz element ?rodkowy, gdy n jest nieparzyste, lub
oblicz ?redniY arytmetycznY dwóch ?rodkowych liczb, gdy n jest parzyste:

'

'

(

''

)

*

++

,

-

..

/

0

"

#

"

"

parzyste

jest

gdy

,

2

1

e

nieparzyst

jest

gdy

,

1

2

2

2

1

n

x

x

n

x

m

n

n

n

e

NaleVy pami9ta@ o przesuni9ciu indeksu wynikajYcego z róVnicy pomi9dzy indeksa-
mi we wzorach a indeksami w tablicach.

Zadanie 27.7.

Wyznacz wartoHg modalnR (dominantM) n-elementowej próbki x

1

, …, x

n

.

WartoBci> modaln> (dominant>, mod>) próbki x

1

, …, x

n

o powtarzajYcych si9 war-

to?ciach nazywamy najcz9?ciej powtarzajYcY si9 warto?@, o ile taka istnieje. Po-
nadto warto?@ ta nie moVe by@ warto?ciY minimalnY lub maksymalnY.

Zadanie 27.8.

Oblicz wariancjM n-elementowej próbki x

1

, …, x

n

. Wykorzystaj wszystkie nicej poda-

ne wzory i porównaj uzyskane wyniki.

Wariancj> s

2

(dyspersj>) próbki x

1

, …, x

n

nazywamy ?redniY arytmetycznY kwadratów

odchyleK warto?ci

i

x

od ?redniej arytmetycznej

x

próbki:

1

2

&

#

$

#

n

i

i

x

x

n

s

1

2

2

1

.

MoVna zastosowa@ wzory równowaVne

&

#

$

#

n

i

i

x

x

n

s

1

2

2

2

1

lub

1

2 1

2

2

1

2

2

1

a

x

a

x

n

s

n

i

i

$

$

$

#

&

#

, gdzie a jest dowolnY sta(Y.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

Rozdzia! 4.

Czwarty krok — pliki, tablice i macierze

85

Zadanie 27.9.

Oblicz odchylenie standardowe n-elementowej próbki x

1

, …, x

n

.

Odchylenie standardowe s próbki x

1

, …, x

n

jest równe pierwiastkowi kwadratowe-

mu z wariancji s

2

(zob. zadanie 27.8).

Zadanie 27.10.

Oblicz odchylenie przeciMtne d próbki x

1

, …, x

n

od sta4ej a. Obliczenia wykonaj dla a = 2.

Odchyleniem przeci?tnym d od staEej a próbki x

1

, …, x

n

nazywamy ?redniY arytme-

tycznY warto?ci bezwzgl9dnych odchyleK poszczególnych warto?ci x

i

od sta(ej a:

&

#

$

#

n

i

i

a

x

n

d

1

1

.

Zadanie 27.11.

Oblicz odchylenie przeciMtne d

1

próbki x

1

, …, x

n

od wartoHci Hredniej x .

Zadanie 27.12.

Oblicz odchylenie przeciMtne d

2

próbki x

1

, …, x

n

od mediany

e

m .

Zadanie 27.13.

Wyznacz kwartyl dolny Q

1

i kwartyl górny Q

3

próbki x

1

, …, x

n

. Oblicz odchylenie

gwiartkowe Q.

Warto?ci uporzYdkowanej próbki dzielimy na dwie grupy: warto?ci mniejsze od me-
diany i median9 oraz median9 i warto?ci wi9ksze od mediany. Kwartylem dolnym
(Q

1

) jest mediana pierwszej grupy, a górnym (Q

3

) mediana drugiej grupy. Odchyle-

nie @wiartkowe Q obliczamy ze wzoru

2

1

3

Q

Q

Q

$

#

.

Zadanie 27.14.

Oblicz moment zwyk>y m

l

rz'du l próbki x

1

, …, x

n

. Obliczenia wykonaj dla l = 2, 3 i 4.

Wzór

N

l

x

n

m

n

i

l

i

l

3

#

&

#

,

1

1

.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

86

Programowanie w j$zyku Java

Zadanie 27.15.

Oblicz moment centralny M

l

rz'du l próbki x

1

, …, x

n

. Obliczenia wykonaj dla l = 2, 3 i 4.

Wzór

N

l

x

x

n

M

n

i

l

i

l

3

$

#

&

#

,

)

(

1

1

. Z w(asno?ci ?redniej arytmetycznej wynika, Ve

M

1

= 0, natomiast M

2

jest wariancjY.

Zadanie 27.16.

Oblicz moment absolutny zwyk>y a

l

rz'du l próbki x

1

, …, x

n

. Obliczenia wykonaj dla

l = 2, 3 i 4.

Wzór

N

l

x

n

a

n

i

l

i

l

3

#

&

#

,

|

|

1

1

.

Zadanie 27.17.

Oblicz moment absolutny centralny b

l

rz'du l próbki x

1

, …, x

n

. Obliczenia wykonaj

dla l = 2, 3 i 4.

Wzór

N

l

x

x

n

b

n

i

l

i

l

3

$

#

&

#

,

|

|

1

1

. Absolutny moment centralny rz9du pierwszego

jest odchyleniem przeci9tnym od ?redniej arytmetycznej.

Zadanie 27.18.

Oblicz wspó>czynnik zmiennoBci v próbki x

1

, …, x

n

.

Wzór

%

100

4

#

x

s

v

, gdzie s jest odchyleniem standardowym, a

x

?redniY arytme-

tycznY próbki.

Zadanie 27.19.

Oblicz wspó>czynnik nierównomiernoBci H próbki x

1

, …, x

n

.

Wzór

%

100

1

4

#

x

d

H

, gdzie d

1

jest odchyleniem przeci9tnym od ?redniej arytme-

tycznej

x

.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

Rozdzia# 4.

Czwarty krok — pliki, tablice i macierze

87

W zadaniach 27.1 – 27.19 przedstawiono podstawowe wzory zwiRzane z obliczenia-
mi statystyki opisowej dla pojedynczej próbki, zwykle nieprzekraczajRcej 30 elemen-
tów. Czytelnik moce samodzielnie na podstawie rozwiRza] tych zada] konstruowag
programy majRce na celu rozwiRzywanie problemów z zakresu statystyki.

Zadanie 27.20.

Na podstawie problemów zawartych w zadaniach 27.1 – 27.19 utwórz klasM

Stat

za-

wierajRcR metody statyczne do oblicze] statystycznych. Napisz aplikacjM konsolowR
pokazujRcR dzia4anie wybranych metod z klasy

Stat

. SporzRdh dokumentacjM tej klasy.

Zadanie 27.21.

Na podstawie problemów zawartych w zadaniach 27.1 – 27.19 utwórz klasM

Statpr

umocliwiajRcR utworzenie obiektu (próbki) zawierajRcego metody do rozwiRzywania
tych problemów. Napisz aplikacjM konsolowR pokazujRcR dzia4anie wybranych metod
z klasy

Statpr

. SporzRdh dokumentacjM tej klasy.

28. Tablice wielowymiarowe i macierze

Zadanie 28.1.

Utwórz dwuwymiarowR tablicM liczb ca4kowitych o trzech wierszach. W pierwszym
wierszu tablicy umieHg liczby od 1 do 10, w drugim kwadraty tych liczb, a w trzecim
szeHciany liczb z pierwszego wiersza. Napisz program tworzRcy i wyHwietlajRcy tM
tablicM w konsoli.

Zadanie 28.2.

W tablicy dwuwymiarowej nie wszystkie wiersze muszR mieg ten sam rozmiar. Napisz
program, który utworzy tablicM liczb ca4kowitych o dziesiMciu wierszach. Wype4nij
tablicM kolejnymi liczbami naturalnymi, zaczynajRc od liczby 1. W pierwszym wier-
szu umieHg jednR liczbM, w drugim dwie liczby, w trzecim trzy itd. — w dziesiRtym
dziesiMg liczb. Oblicz sumy liczb w kolejnych wierszach i sumM wszystkich liczb za-
pisanych w tablicy. WyHwietl w konsoli tablicM liczb oraz obliczone sumy.

Zadanie 28.3.

Utwórz klasM

TInt

, która bMdzie zawierag metody statyczne

input()

i

print()

umoc-

liwiajRce wprowadzanie danych z konsoli do tablicy lub wyHwietlanie danych z tabli-
cy w konsoli. Parametrem wywo4ania tych metod powinna byg tablica liczb ca4kowi-
tych jedno- lub dwuwymiarowa. Napisz program demonstrujRcy dzia4anie tych metod.

Zadanie 28.4.

Utwórz w klasie

TInt

metodM statycznR

setRandom()

, która wype4ni tablicM liczb ca4-

kowitych wartoHciami wylosowanymi z zakresu od 0 do n (liczba ca4kowita n > 0).

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

88

Programowanie w j!zyku Java

TablicM oraz zakres wartoHci podaj jako parametry metody. Napisz program demon-
strujRcy dzia4anie tej metody.

Zadanie 28.5.

Dodaj do klasy

TInt

metodM statycznR

printf()

wyHwietlajRcR tablicM liczb ca4kowi-

tych w konsoli. Metoda ta powinna mieg dwa parametry: 4a]cuch formatujRcy i iden-
tyfikator tablicy. Napisz program demonstrujRcy dzia4anie tej metody.

Zadanie 28.6.

Na podstawie zada] 28.3, 28.4 i 28.5 utwórz klasM

TDouble

z metodami statycznymi

input()

,

print()

,

printf()

i

setRandom()

, u4atwiajRcymi pobieranie i wypisywanie

danych oraz losowe ustawianie wartoHci w jedno- i dwuwymiarowych tablicach liczb
zmiennoprzecinkowych typu

double

. Napisz program pokazujRcy dzia4anie wybranych

metod z tej klasy.

Macierz jest uporzRdkowanR prostokRtnR tablicR liczb, dla której zdefiniowane sR dzia-
4ania algebraiczne dodawania (odejmowania) i mnocenia:

Dodawanie (odejmowanie) dwóch macierzy jest mocliwe tylko dla macierzy
o jednakowych liczbach kolumn (n) i wierszy (m). Suma (rócnica) macierzy
A i B jest macierzR C takR, ce

ij

ij

ij

b

a

c

-

#

(

ij

ij

ij

b

a

c

"

#

).

Mnocenie macierzy jest mocliwe, gdy liczba kolumn pierwszej macierzy (m)
jest równa liczbie wierszy drugiej macierzy. Iloczyn macierzy A i B jest

macierzR C takR, ce

$

#

#

m

k

kj

ik

ij

b

a

c

1

. Mnocenie macierzy nie jest przemienne.

Zawsze okreHlone jest mnocenie macierzy przez liczbM

.

, polegajRce na

pomnoceniu kacdego elementu macierzy przez tM liczbM (

ij

ij

a

c

.

#

).

Macierze mocemy przedstawiag w programach jako tablice dwuwymiarowe. Nalecy
pamiMtag, ce tablice sR indeksowane od zera, a indeksy macierzy rozpoczynamy od
jedynki.

Zadanie 28.7.

Utwórz metodM

sum()

dodajRcR dwie macierze zapisane w postaci tablic dwuwymia-

rowych. Napisz program demonstrujRcy dzia4anie metody

sum()

.

W tym i kolejnych zadaniach do wprowadzania danych uVywaj metod z klasy TInt
lub TDouble.

Zadanie 28.8.

Utwórz metodM

difference()

obliczajRcR rócnicM dwóch macierzy zapisanych w po-

staci tablic dwuwymiarowych. Napisz program demonstrujRcy dzia4anie metody

dif-

ference()

.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

Rozdzia# 4.

Czwarty krok — pliki, tablice i macierze

89

Zadanie 28.9.

Utwórz metodM

product()

obliczajRcR iloczyn dwóch macierzy zapisanych w postaci

tablic dwuwymiarowych. Napisz program demonstrujRcy dzia4anie metody

product()

.

Zadanie 28.10.

Utwórz metodM

product()

obliczajRcR iloczyn macierzy zapisanej w postaci tablicy dwu-

wymiarowych przez liczbM. Napisz program demonstrujRcy dzia4anie metody

product()

.

Zadanie 28.11.

Zbuduj metodM

transp()

tworzRcR macierz transponowanR z macierzy podanej jako

parametr metody. Napisz program demonstrujRcy dzia4anie metody

transp()

.

Macierz transponowana (przestawiona) powstaje z danej macierzy poprzez zamia-
n9 jej wierszy na kolumny i kolumn na wiersze.

Zadanie 28.12.

Utwórz metodM statycznR

toDouble()

konwertujRcR macierz o elementach ca4kowi-

tych na macierz o elementach zmiennoprzecinkowych. Napisz program demonstrujR-
cy dzia4anie tej metody. Do4Rcz jR do klasy

TInt

.

Zadanie 28.13.

Do4Rcz do klasy

TDouble

metodM statycznR o nazwie

valueOf()

, zwracajRcR tablicM

(macierz) z elementami typu

double

o elementach odpowiadajRcych elementom tabli-

cy (macierzy) liczb ca4kowitych. Napisz program demonstrujRcy dzia4anie tej metody.

Zadanie 28.14.

W klasie

TDouble

utwórz statycznR metodM

toInt()

, która bMdzie zwracag tablicM (ma-

cierz) o wartoHciach ca4kowitych, odpowiadajRcych (zamiana przez rzutowanie) tablicy
liczb zmiennoprzecinkowych podanej jako parametr. Napisz program demonstrujRcy
dzia4anie tej metody.

Zadanie 28.15.

W klasie

TInt

utwórz statycznR metodM

valueOf()

, która bMdzie budowag tablicM (ma-

cierz) o wartoHciach ca4kowitych, odpowiadajRcych (zamiana przez rzutowanie) tabli-
cy liczb zmiennoprzecinkowych podanej jako parametr. Napisz program demonstru-
jRcy dzia4anie tej metody.

Macierze, w których liczba wierszy jest równa liczbie kolumn, nazywamy ma-
cierzami kwadratowymi
. Z macierzami kwadratowymi zwiRzany jest szereg
pojMg, takich jak: Blad macierzy, wyznacznik macierzy, macierz diagonalna,
macierz trójk*tna, macierz jednostkowa i macierz odwrotna.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

90

Programowanie w j$zyku Java

Zadanie 28.16.

Utwórz statycznR metodM

trace()

wyznaczajRcR Hlad macierzy. Napisz program de-

monstrujRcy dzia4anie tej metody.

Zadanie 28.17.

Utwórz statycznR metodM

getI()

zwracajRcR macierz jednostkowR stopnia n (stopie]

podamy jako parametr wywo4ania metody). Napisz program demonstrujRcy dzia4anie
tej metody.

Zadanie 28.18.

Utwórz statycznR metodM

setI()

tworzRcR z macierzy kwadratowej podanej jako pa-

rametr macierz jednostkowR. Napisz program demonstrujRcy dzia4anie tej metody.

Zadanie 28.19.

Utwórz metodM statycznR

det()

obliczajRcR wyznacznik macierzy kwadratowej. Do

obliczenia wyznacznika ucyj rozwiniMcia Laplace’a. Napisz program demonstrujRcy
dzia4anie tej metody.

Zadanie 28.20.

Utwórz metodM statycznR

upperTriangular()

przekszta4cajRcR macierz kwadratowR

podanR jako parametr na macierz trójkRtnR górnR. Napisz program demonstrujRcy dzia-
4anie tej metody.

Zadanie 28.21.

Utwórz metodM statycznR

lowerTriangular()

przekszta4cajRcR macierz kwadratowR

podanR jako parametr na macierz trójkRtnR dolnR. Napisz program demonstrujRcy dzia-
4anie tej metody.

Zadanie 28.22.

Utwórz metodM statycznR

diagonal()

przekszta4cajRcR macierz kwadratowR podanR jako

parametr na macierz diagonalnR. Napisz program demonstrujRcy dzia4anie tej metody.

Zadanie 28.23.

Utwórz metodM statycznR

inverse()

obliczajRcR i zwracajRcR macierz odwrotnR do

macierzy kwadratowej podanej jako parametr. Napisz program demonstrujRcy dzia4a-
nie tej metody.

Zadanie 28.24.

Napisz program rozwiRzujRcy uk4ad n-równa] liniowych z n niewiadomymi (n < 10).
Uk4ad równa] rozwiRc, stosujRc metodM wyznaczników. Wszystkie niezbMdne metody
umieHg w klasie programu.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

Rozdzia! 4.

Czwarty krok — pliki, tablice i macierze

91

Zadanie 28.25.

Napisz program rozwiRzujRcy uk4ad n-równa] liniowych z n niewiadomymi. Uk4ad
równa] rozwiRc, stosujRc rachunek macierzy:

B

X

A

#

4

,

B

A

X

4

#

$1

, gdzie A — ma-

cierz podstawowa uk4adu, X — wektor niewiadomych, B — kolumna wyrazów wol-
nych. Wszystkie niezbMdne metody umieHg w klasie programu.

Zadanie 28.26.

Napisz program rozwiRzujRcy uk4ad n-równa] liniowych z n niewiadomymi. Uk4ad
równa] rozwiRc, stosujRc metodM eliminacji. Wszystkie niezbMdne metody umieHg
w klasie programu.

Zadanie 28.27.

Utwórz klasM

Matrix

, która na podstawie tablic dwuwymiarowych, podanych wymia-

rów macierzy lub innych obiektów klasy

Matrix

(konstruktor kopiujRcy) bMdzie umoc-

liwiag tworzenie obiektów reprezentujRcych macierze. Utwórz metody u4atwiajRce do-
stMp do elementów macierzy (pól obiektu), wprowadzanie i wyHwietlanie danych oraz
wype4nianie macierzy wartoHciami losowymi. Napisz program demonstrujRcy dzia4a-
nie metod klasy

Matrix

.

Zadanie 28.28.

Do4Rcz do klasy

Matrix

metody umocliwiajRce wykonywanie podstawowych dzia4a]

na macierzach: dodawanie, odejmowanie i mnocenie macierzy oraz mnocenie macie-
rzy przez skalar. Napisz program demonstrujRcy dzia4ania na macierzach.

Zadanie 28.29.

Do4Rcz do klasy

Matrix

metody umocliwiajRce przekszta4canie macierzy kwadratowych

na postag trójkRtnR lub diagonalnR. Napisz program demonstrujRcy dzia4anie tych metod.

Zadanie 28.30.

Do4Rcz do klasy

Matrix

metodM umocliwiajRcR obliczanie wyznacznika macierzy. Na-

pisz program demonstrujRcy dzia4anie tej metody.

Zadanie 28.31.

Do4Rcz do klasy

Matrix

metodM umocliwiajRcR obliczanie macierzy odwrotnej. Napisz

program demonstrujRcy obliczanie macierzy odwrotnej. Sprawdh uzyskany wynik, wy-
konujRc odpowiednie mnocenie.

Zadanie 28.32.

WykorzystujRc mocliwoHci klasy

Matrix

i obliczenia na macierzach, rozwiRc uk4ad

n-równa] liniowych z n niewiadomymi.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

92

Programowanie w j$zyku Java

Zadanie 28.33.

WykorzystujRc mocliwoHci klasy

Matrix

i metodM wyznaczników, rozwiRc uk4ad

n-równa] liniowych z n niewiadomymi.

Utwórz metod9 pomocniczY replaceCol(), która w macierzy wywo(ujYcej t9 meto-
d9 zastYpi wskazanY kolumn9 kolumnY przekazanY jako parametr (b9dzie to ko-
lumna wyrazów wolnych).

29. Obliczanie warto"ci funkcji,

rekurencja i inne zadania

Zadanie 29.1.

Napisz aplikacjM testujRcR dzia4anie podanej metody dla rócnych argumentów. OkreHl,
co oblicza ta metoda. Nadaj jej odpowiedniR nazwM.

static double f(double x) {
return (x > 0)?x:-x;
}

Zadanie 29.2.

OkreHlono dwie funkcje:

(

)

*

5

6

#

y

x

y

y

x

x

y

x

gdy

,

gdy

,

)

,

min(

oraz

(

)

*

7

8

#

y

x

y

y

x

x

y

x

gdy

,

gdy

,

)

,

max(

.

Utwórz klasM

MinMax

z metodami

min()

i

max()

obliczajRcymi i zwracajRcymi wartoHci

tych funkcji. Napisz aplikacjM pokazujRcR dzia4anie tych metod.

Zadanie 29.3.

OkreHlono funkcjM

'

(

'

)

*

5

#

7

$

#

0

gdy

,

1

0

gdy

,

0

0

gdy

,

1

)

(

x

x

x

x

f

. Co oblicza ta funkcja? Utwórz metodM ob-

liczajRcR wartoHg tej funkcji. Napisz aplikacjM pokazujRcR dzia4anie zbudowanej metody.

Zadanie 29.4.

OkreHlono funkcjM

'

(

'

)

*

9

#

#

0

,

0

,

0

)

(

x

gdy

x

x

x

gdy

x

f

. Co oblicza ta funkcja? Utwórz metodM ob-

liczajRcR wartoHg tej funkcji. Napisz aplikacjM pokazujRcR dzia4anie zbudowanej metody.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

Rozdzia! 4.

Czwarty krok — pliki, tablice i macierze

93

Zadanie 29.5.

Napisz aplikacjM testujRcR wartoHci funkcji okreHlonych wzorami:

a)

1

2

2

,

y

x

y

x

y

x

f

$

"

"

#

b)

1

2

2

,

y

x

y

x

y

x

g

$

$

"

#

c)

)

,

(

)

(

x

x

f

x

h

$

#

Co obliczajR te funkcje? Utworzonym metodom nadaj odpowiednie nazwy.

Zadanie 29.6.

Napisz definicje metod

square()

i

cube()

obliczajRcych kwadrat i szeHcian liczby

x

.

Zastosuj utworzone metody do obliczenia kwadratów i szeHcianów liczb:

a)

ca4kowitych od 1 do 15,

b)

rzeczywistych od 1 do 3 z krokiem 0,25.

Zadanie 29.7.

PotMgM o wyk4adniku ca4kowitym dodatnim okreHlamy wzorem

!

"

#

n

n

a

a

a

a

4

4

4

#

...

. Utwórz

metodM

adoen()

obliczajRcR a

n

. Napisz aplikacjM pokazujRcR dzia4anie tej metody.

Zadanie 29.8.

PotMgM o wyk4adniku ca4kowitym nieujemnym mocemy okreHlig wzorem rekurencyj-

nym:

(

)

*

5

4

#

#

$

0

dla

,

0

dla

,

1

1

n

a

a

n

a

n

n

. Napisz definicjM metody rekurencyjnej

adoen()

obli-

czajRcej a

n

oraz aplikacjM pokazujRcR dzia4anie tej metody.

Zadanie 29.9.

Szybkie pot'gowanie — innR wersjM metody rekurencyjnej obliczajRcej a

n

(szybszR ze

wzglMdu na mniejszR liczbM wywo4a] rekurencyjnych i zredukowanie liczby mnoce])
mocemy zrealizowag na podstawie wzoru:

'

'

'

'

(

''

'

'

)

*

5

+

,

-

.

/

0

5

+

,

-

.

/

0

4

#

#

$

)

0

(

parzystego

dla

)

0

(

ego

nieparzyst

dla

0

1

2

2

2

2

1

n

n

a

n

n

a

a

n

dla

a

n

n

n

.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

94

Programowanie w j$zyku Java

Utwórz metodM

adoen()

obliczajRcR a

n

. Napisz aplikacjM pokazujRcR dzia4anie tej metody.

Zadanie 29.10.

PotMgM o podstawie a rócnej od 0 i wyk4adniku ca4kowitym n mocemy zdefiniowag

w nastMpujRcy sposób:

'

'

(

'

'

)

*

7

#

5

4

4

4

#

0

dla

,

1

0

dla

,

1

0

dla

,

...

n

a

n

n

a

a

a

a

n

n

n

!

"

#

.

Napisz definicjM metody

power()

(prototyp:

double power(double a, int n)

) oblicza-

jRcej a

n

dla dowolnej liczby ca4kowitej oraz aplikacjM pokazujRcR dzia4anie tej funkcji.

Funkcj9 adoen (zob. zadanie 29.7, 29.8 lub 29.9) obliczajYcY a

n

dla n > 1 wykorzy-

stamy w funkcji power (do obliczania

n

a

lub

n

n

a

a

1

#

$

dla

...

,

3

,

2

,

1

#

n

).

Zadanie 29.11.

Pierwiastek drugiego stopnia z liczby dodatniej a mocemy obliczyg metodR iteracyjnR

na podstawie wzoru

+

,

-

.

/

0

"

#

x

a

x

x

2

1

, przyjmujRc jako pierwsze przyblicenie

1

#

x

. Ob-

liczenia kontynuujemy do chwili, gdy rócnica pomiMdzy dwoma kolejnymi przyblice-
niami pierwiastka bMdzie dostatecznie ma4a. Napisz metodM

sqrt()

(ang. square root)

obliczajRcR pierwiastek kwadratowy z podanej liczby dodatniej. Zbuduj aplikacjM po-
kazujRcR dzia4anie metody

sqrt()

i porównujRcR otrzymane wyniki z wynikami metody

bibliotecznej

Math.sqrt()

.

Zadanie 29.12.

Pierwiastek trzeciego stopnia z liczby dodatniej a mocemy obliczyg metodR iteracyjnR

na podstawie wzoru

+

,

-

.

/

0

"

#

2

2

3

1

x

a

x

x

, przyjmujRc jako pierwsze przyblicenie

1

#

x

. Ob-

liczenia kontynuujemy do chwili, gdy rócnica pomiMdzy dwoma kolejnymi przyblice-
niami pierwiastka bMdzie dostatecznie ma4a. Napisz metodM

cbrt()

(ang. cube root)

obliczajRcR pierwiastek trzeciego stopnia z podanej liczby dodatniej. Zbuduj aplikacjM
pokazujRcR dzia4anie metody

cbrt()

i porównujRcR otrzymane wyniki z wynikami me-

tody bibliotecznej

Math.cbrt()

.

Podany wzór wynika z metody Newtona-Raphsona — iteracyjnego algorytmu wy-
znaczania przybliVonej warto?ci pierwiastka funkcji. Dotyczy to równieV wzoru z za-
dania 29.11.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

Rozdzia# 4.

Czwarty krok — pliki, tablice i macierze

95

Zadanie 29.13.

Pierwiastek n-tego stopnia z liczby dodatniej a mocemy obliczyg metodR iteracyjnR

na podstawie wzoru

/

0

&

'

(

)

*

+

-

"

#

"1

1

1

n

x

a

x

n

n

x

, przyjmujRc jako pierwsze przyblicenie

1

#

x

. Obliczenia kontynuujemy do chwili, gdy rócnica pomiMdzy dwoma kolejnymi

przybliceniami pierwiastka bMdzie dostatecznie ma4a. Na podstawie podanego wzoru
napisz metodM

nRoot()

obliczajRcR pierwiastek n-tego stopnia z podanej liczby do-

datniej. Zbuduj aplikacjM pokazujRcR dzia4anie metody

nRoot()

i porównujRcR otrzy-

mane wyniki z wynikami uzyskanymi przy zastosowaniu funkcji bibliotecznej.

PoniewaV

n

n

a

a

1

#

, to warto?@ pierwiastka moVemy obliczy@ przy zastosowaniu

funkcji Math.pow(a, 1.0/n).

Skorzystaj z opracowanej w zadaniu 29.7 metody power() do obliczania warto-
?ci

1

"

n

x

.

Zadanie 29.14.

W klasie

Math

zdefiniowano metody obliczajRce funkcje hiperboliczne — sinus hiper-

boliczny (

Math.sinh()

) i cosinus hiperboliczny (

Math.cosh()

). Napisz program wyHwie-

tlajRcy na ekranie tablice wszystkich funkcji hiperbolicznych w przedziale

5

,

5

"

z krokiem 0,1. Wyniki oblicze] zapisz w pliku tekstowym FunkcjeHiperboliczne.txt.

Wyniki pracy programu moVna zapisa@ w pliku tekstowym, stosujYc w konsoli po-
lecenie:

java Z29_14 > FunkcjeHiperboliczne.txt

(przyjmujemy, Ve rozwiYzanie zadania zapisano w pliku iród(owym Z29_14.java).

Zadanie 29.15.

W klasie

Math

zdefiniowano metodM

Math.exp()

obliczajRcR wartoHg funkcji wyk4ad-

niczej

x

e . RozwiRc zadanie 29.14, nie korzystajRc z metod

Math.sinh()

i

Math.cosh()

.

Warto?ci funkcji moVna wyliczy@ na podstawie wzorów:

2

sinh

x

x

e

e

x

"

"

#

,

2

cosh

x

x

e

e

x

"

-

#

itp.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

Czytaj dalej...

96

Programowanie w j$zyku Java

Zadanie 29.16.

Zbuduj klasM

FH

(funkcje hiperboliczne) zawierajRcR metody statyczne obliczajRce war-

toHci wszystkich funkcji hiperbolicznych i funkcji do nich odwrotnych. Napisz aplika-
cjM pokazujRcR dzia4anie tych metod.

Zadanie 29.17.

Zbuduj klasM

FTD

, która bMdzie zawierag metody statyczne obliczajRce wartoHg szeHciu

funkcji trygonometrycznych i szeHciu funkcji do nich odwrotnych. Argumenty funkcji
trygonometrycznych i wartoHci funkcji odwrotnych powinny byg wyracane w stop-
niach. UdostMpnij równiec metody konwersji stopni na radiany i radianów na stopnie.
Napisz aplikacjM pokazujRcR mocliwoHci metod statycznych zawartych w tej klasie.

Zadanie 29.18.

Zbuduj klasM

FTR

, która bMdzie zawierag metody statyczne obliczajRce wartoHg szeHciu

funkcji trygonometrycznych i szeHciu funkcji do nich odwrotnych. Argumenty funkcji
trygonometrycznych i wartoHci funkcji odwrotnych powinny byg wyracane w radia-
nach. UdostMpnij równiec metody konwersji stopni na radiany i radianów na stopnie.
Napisz aplikacjM pokazujRcR mocliwoHci metod statycznych zawartych w tej klasie.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ


Wyszukiwarka

Podobne podstrony:
Programowanie w jezyku Java Zbior zadan z p odpowiedziami 2
Programowanie w jezyku Java Zbior zadan z p odpowiedziami
Programowanie w jezyku Java Zbior zadan z p odpowiedziami
Programowanie w jezyku Java Zbior zadan z p odpowiedziami projaz
5 Chem2 Zbiór zadań Odpowiedzi i wskazówki
Efektywne Programowanie W Języku Java
Java, Programowanie W Jezyku Java
6 Chem2 Zbiór zadań Odpowiedzi i wskazówki
5 Chem2 Zbiór zadań Odpowiedzi i wskazówki
UWr Programowanie pod Windows zbiór zadań
Efektywne programowanie w jezyku Java jappjp
Programowanie w jezyku Java
Efektywne programowanie w jezyku Java jappjp
Wytrzymalosc materialow zbior zadan odpowiedzi J Dębiński
Efektywne programowanie w jezyku Java 2
Efektywne programowanie w jezyku Java 2
Efektywne programowanie w jezyku Java jappjp

więcej podobnych podstron