Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00469 007087 14670000 na godz. na dobę w sumie
Programowanie w języku Java. Zbiór zadań z (p)odpowiedziami - książka R
Programowanie w języku Java. Zbiór zadań z (p)odpowiedziami - książka
Autor: Liczba stron: 440
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-4319-6 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> java - programowanie
Porównaj ceny (książka, ebook, audiobook).

Poznaj niezawodną Javę!

Gdy przegląda się oferty pracy dla programistów, trudno nie natknąć się na słowo 'Java'. Ten obiektowy, niezależny od platformy język programowania przez niemal dwie dekady swojego istnienia zdążył zapracować na reputację łatwego w użyciu i wydajnego narzędzia do różnych zastosowań, a także zjednać sobie przychylność rzesz profesjonalnych programistów i miłośników technologii informatycznych, traktujących programowanie jako hobby. Za teoretyczną znajomością Javy nie zawsze idzie jednak praktyczna umiejętność korzystania z technik programistycznych stosowanych w tym języku.

Właśnie dlatego powstała książka 'Programowanie w języku Java. Zbiór zadań z (p)odpowiedziami' . Poprzedzające każdy dział publikacji krótkie, rzeczowe wprowadzenia teoretyczne umożliwi rozpoczęcie przygody z Javą nawet osobom, które nie miały z nią wcześniej żadnego kontaktu, a stanowiące rdzeń książki zadania pozwolą utrwalić wiadomości zarówno początkującym, jak i nieco bardziej zorientowanym użytkownikom tego języka. Całość uzupełniono o odpowiedzi, dzięki którym każdy czytelnik może zweryfikować poprawność rozwiązań, oraz wskazówki dotyczące tego, gdzie należy szukać dodatkowych informacji.

Skończ z teorią, zacznij tworzyć prawdziwe programy!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Recenzje na blogach:

soy-como-el-viento.blogspot.com Myśli i słowa wiatrem niesione: Mój Tata napisał książkę...

Darmowy fragment publikacji:

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ść 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 przykáad „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 faász — logiczny typ danych ................................................................... 19 7. Liczby caákowite typu int i klasa Integer .................................................................... 22 8. Inne typy liczb caákowitych 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. WyĞwietlanie sformatowanych wyników w konsoli. Staáe 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 pĊtli typu do-while ................................................................................... 41 15. Instrukcja pĊtli typu while ........................................................................................ 42 16. Instrukcja pĊtli typu for ............................................................................................ 44 Rozdziaä 3. Trzeci krok — budujemy wäasne metody i klasy ............................... 47 17. Obsáuga wyjątków .................................................................................................... 47 18. Liczby pseudolosowe i tablice jednowymiarowe — budujemy metody statyczne ................................................................................ 48 19. Dokumentacja klasy ................................................................................................. 53 20. Dziaáania na uáamkach — budujemy klasĊ Fraction ................................................. 55 21. Klasa opakowująca Angle — miara kąta i funkcje trygonometryczne ..................... 61 22. Liczby rzymskie i klasa Roman ................................................................................ 64 23. Trójmian kwadratowy i klasa QuadratPoly .............................................................. 66 24. Liczby zespolone — budujemy klasĊ Complex ........................................................ 69 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 wartoĞci 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 przykáad „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 faász — logiczny typ danych ................................................................. 120 7. Liczby caákowite typu int i klasa Integer .................................................................. 129 8. Inne typy liczb caákowitych w Javie ......................................................................... 135 9. Typy liczb zmiennoprzecinkowych .......................................................................... 140 Rozdziaä 6. Rozwiñzania zadaþ z rozdziaäu 2 .................................................... 147 10. WyĞwietlanie sformatowanych wyników w konsoli. Staáe 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 pĊtli typu do-while ................................................................................. 179 15. Instrukcja pĊtli typu while ...................................................................................... 187 16. Instrukcja pĊtli typu for .......................................................................................... 193 Rozdziaä 7. Rozwiñzania zadaþ z rozdziaäu 3 .................................................... 201 17. Obsáuga wyjątków .................................................................................................. 201 18. Liczby pseudolosowe i tablice jednowymiarowe — budujemy metody statyczne .............................................................................. 206 19. Dokumentacja klasy ............................................................................................... 221 20. Dziaáania na uáamkach — budujemy klasĊ Fraction ............................................... 237 21. Klasa opakowująca Angle — miara kąta i funkcje trygonometryczne ................... 269 22. Liczby rzymskie i klasa Roman .............................................................................. 290 23. Trójmian kwadratowy i klasa QuadratPoly ............................................................ 301 24. Rozwiązania 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 wartoĞci funkcji, rekurencja i inne zadania ........................................... 420 Rozdziaä 4. Czwarty krok — pliki, tablice i macierze 25. Operacje na plikach tekstowych Zadanie 25.1. Korzystając z obiektów i metod klasy FileWriter, napisz program zapisujący do pliku tekstowego tekst.txt jeden wiersz tekstu: Programowanie obiektowe. Zadanie 25.2. Plik tekstowy tekst.txt zawiera jeden wiersz tekstu: Programowanie obiektowe. Ko- rzystając z obiektu i metod klasy FileWriter, napisz program dopisujący 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 siö 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 koþcem wiersza jest LF, a w sys- temie Mac OS — znak CR. Zadanie 25.3. Korzystając z obiektu i metod klasy FileWriter, napisz program obliczający i zapi- sujący w pliku silnia.txt wartoĞci n! (n silnia) dla n = 1, 2, …, 12. KaĪdy wynik zapisz w odrĊbnym wierszu, w postaci 12! = 479001600. Przypomnijmy znaczenie symbolu n!: 1! = 1, 2! = 1!·2 = 1·2, 3! = 2!·3 = 1·2·3 itd. 78 Programowanie w jözyku Java W tym zadaniu i zadaniach podobnych starajmy siö, aby plik wyjĈciowy nie zawie- raä na koþcu pustego wiersza (jeĈli obecnoĈè tego ostatniego wiersza nie jest za- mierzona). Taki wiersz moĔe nam sprawiè róĔne niespodzianki, gdy plik bödzie od- czytywany. Zadanie 25.4. Napisz program zapisujący w pliku pierwiastki.txt wartoĞci pierwiastków kwadrato- wych i szeĞciennych dla liczb naturalnych od 2 do 15. KaĪdy wiersz pliku powinien zawieraü trzy liczby oddzielone znakami tabulatora — liczbĊ naturalną, pierwiastek kwadratowy z tej liczby i pierwiastek szeĞcienny. Pierwiastki podaj z precyzją do 8 miejsc po przecinku. Do formatowania wyników uĔyj metody format() z klasy String. Zadanie 25.5. Napisz program zapisujący w pliku tekstowym sto.txt sto liczb caákowitych wyloso- wanych z zakresu od 1 do 20. Liczby w pliku powinny byü oddzielone odstĊpami. Zadanie 25.6. Napisz program zapisujący w pliku tekstowym dane.txt 50 par liczb. KaĪda para liczb powinna byü umieszczona w odrĊbnym wierszu. Pierwsza liczba w parze powinna byü rzeczywista, dodatnia i nie wiĊksza od 10 oraz podana z dokáadnoĞcią do dwóch miejsc po przecinku, druga liczba powinna byü caákowita i ma naleĪeü do przedziaáu 8,2 . Liczby w wierszu oddzielamy odstĊpem. Po rozwiñzaniu zadaþ 25.1 – 25.6 bödziemy mieli w bieĔñcym folderze piöè plików: tekst.txt, silnia.txt, pierwiastki.txt, sto.txt i dane.txt. ZawartoĈè tych plików bödziemy odczytywali w kolejnych zadaniach. Zadanie 25.7. Korzystając z obiektu i metod klasy FileReader, napisz program odczytujący zawar- toĞü pliku tekstowego i wyĞwietlający jego zawartoĞü w konsoli. Bezparametrowa metoda read() z klasy FileReader odczytuje z pliku jeden znak i zwraca jego kod, liczbö typu int z zakresu od 0 do 65 535 lub liczbö –1, gdy nie moĔna odczytaè znaku. Metoda ready() zwraca wartoĈè logicznñ true, gdy z pliku moĔna odczytaè kolejny znak, i false w przeciwnym wypadku. Rozdziaä 4. i Czwarty krok — pliki, tablice i macierze 79 Zadanie 25.8. Korzystając z obiektu i metod klasy FileReader, utwórz metodĊ (readLine()) odczy- tującą wiersz pliku tekstowego. Napisz program odczytujący i wyĞwietlający w kon- soli wszystkie wiersze pliku tekstowego. Klasa FileReader nie zawiera metody readLine(), wiöc musisz jñ sam zbudowaè. Plik tekstowy otwórz przed wywoäaniem metody, obiekt (klasy FileReader) skojarzo- ny z plikiem przekaĔ jako parametr do metody readLine(), która przeczytany z pli- ku wiersz tekstu zwróci w postaci äaþcucha znaków. Zadanie 25.9. Napisz program wyĞwietlający w konsoli kod Ĩródáowy programu w jĊzyku Java wraz z numerami linii. NazwĊ pliku (bez rozszerzenia) uĪytkownik powinien podawaü z kla- wiatury. JeĞli w okreĞlonej lokalizacji nie ma wskazanego pliku, to program powinien wyĞwietliü odpowiedni komunikat. Do wprowadzenia nazwy pliku z konsoli oraz do odczytania wierszy tekstu z pliku wykorzystaj obiekty klasy BufferedReader i metodö readLine() z tej klasy. Obec- noĈè pliku moĔesz sprawdziè, stosujñc metodö exists() z klasy File. Zadanie 25.10. Napisz program zapisujący do pliku kod Ĩródáowy programu w jĊzyku Java wraz z nu- merami linii. NazwĊ pliku (bez rozszerzenia) uĪytkownik powinien podawaü z kla- wiatury. JeĞli w okreĞlonej lokalizacji nie ma wskazanego pliku, to program powinien wyĞwietliü odpowiedni komunikat. Nazwa pliku wyjĞciowego powinna byü taka jak nazwa pliku Ĩródáowego, 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 uĔyj metod kla- sy PrintWriter. Zadanie 25.11. W pliku tekstowym wpisany jest ciąg liczb caákowitych oddzielonych odstĊpami. Na- pisz program, który odczyta i wyĞwietli w konsoli liczby z pliku oraz obliczy ich sumĊ. Do testów moĔesz uĔyè pliku sto.txt (rozwiñzanie zadania 25.5). Nie wykorzystuj jednak faktu, Ĕe znasz iloĈè liczb zapisanych w tym pliku. 80 Programowanie w jözyku Java Zadanie 25.12. W pliku tekstowym wpisany jest ciąg liczb caákowitych oddzielonych odstĊpami. Na- pisz program, który znajdzie najmniejszą liczbĊ w tym pliku oraz obliczy, ile razy ta liczba w tym pliku wystĊpuje. Do testów moĔesz uĔyè pliku sto.txt (rozwiñzanie zadania 25.5). Nie wykorzystuj jednak faktu, Ĕe znasz iloĈè liczb zapisanych w pliku. Zadanie 25.13. W pliku tekstowym zapisane są w kolejnych wierszach pary liczb — liczba zmienno- przecinkowa i liczba caákowita. Napisz program, który odczytuje pary liczb z pliku, oblicza iloczyn kaĪdej pary i sumuje iloczyny. Wynik obliczeĔ naleĪy wypisaü w kon- soli i zapisaü w ostatnim wierszu pliku z danymi. Do testów moĔesz uĔyè pliku dane.txt (rozwiñzanie zadania 25.6). 26. Tablice jednowymiarowe i wielomiany Jednym z zastosowaĔ tablic jednowymiarowych moĪe byü przechowywanie wspóá- czynników wielomianu. Wielomian n-tego stopnia jednej zmiennej wspóáczynników, które moĪemy zapisaü w tablicy double[] a = {a0, a1, ..., an};. axa xa n ma n+1 xw )( xa n ...  1  1 n n 1 0    Zadanie 26.1. Napisz program obliczający wartoĞci wielomianu. StopieĔ wielomianu, wspóáczynni- ki i kolejne wartoĞci argumentu uĪytkownik bĊdzie wprowadzaá z klawiatury. Podanie argumentu x = 0 bĊdzie sygnaáem 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) tablicĊ z krokiem h = 0,125. wartoĞci wielomianu Plik powinien zawieraü trzy wiersze z informacjami o rozwiązywanym zadaniu, we- dáug schematu: stopieĔ wielomianu (pierwszy wiersz), wspóáczynniki wielomianu oddzielone odstĊpami w drugim wierszu (zaczynając od wyrazu wolnego) i kraĔce w przedziale 3,2  xw )(  5 2 3 x x x 3 2 Rozdziaä 4. i Czwarty krok — pliki, tablice i macierze 81 przedziaáu oraz krok w trzecim wierszu. W kolejnych wierszach umieĞcimy pary liczb (argument i wartoĞü) oddzielone odstĊpem. Zadanie 26.3. Napisz program, który obliczy i wyĞwietli w konsoli sumĊ dwóch wielomianów. Skorzystaj z metod dostöpnych w klasie Arrays. Przyjmij, Ĕe wyĈwietlajñc wynik lub prezentujñc dane, wielomian zapiszemy w postaci äaþcucha znaków w = [a0, a1, ... an] , gdzie a0, a1, …, an sñ licz- bami wyraĔajñcymi wspóäczynniki wielomianu. axa xa n  ... xw )(   n xa n 1 0 n  1  1 Zadanie 26.4. Napisz program, który obliczy i wyĞwietli w konsoli róĪnicĊ dwóch wielomianów. Zob. wskazówkö do zadania 26.3. Zadanie 26.5. Napisz program, który obliczy i wyĞwietli w konsoli iloczyn wielomianu przez liczbĊ. Zadanie 26.6. Napisz program, który obliczy i wyĞwietli w konsoli iloczyn dwóch wielomianów. Zadanie 26.7. Napisz program, który obliczy i wyĞwietli w konsoli pochodną wielomianu. Zadanie 26.8. Napisz program, który obliczy i wyĞwietli w konsoli caákĊ nieoznaczoną (funkcjĊ pier- wotną) wielomianu. Zadanie 26.9. Utwórz klasĊ Polynomial (plik Polynomial.java) umoĪliwiającą wykonywanie pod- stawowych dziaáaĔ na wielomianach zapisanych w postaci tablicy wspóáczynników. Napisz aplikacjĊ prezentującą moĪliwoĞci utworzonych metod i konstruktorów. Zadanie 26.10. Napisz program wykonujący dzielenie wielomianu xw )( n xa n  n  1 xa n  1  ... przez dwumian o postaci (x–c). axa  1 0 82 Programowanie w jözyku Java Zadanie 26.11. Doáącz do klasy Polynomial dwie metody — division() i remainder() — obliczające iloraz i resztĊ z dzielenia wielomianu reprezentowanego przez obiekt wywoáujący me- todĊ przez dwumian (x-c), gdzie liczba c typu double jest parametrem wywoáania me- tody. Napisz program demonstrujący dziaáanie tych metod. Zadanie 26.12. Napisz program obliczający caákĊ oznaczoną s xw )( n xa n  xa  1 n n  1  ... axa  1 0 b ³ a dxxw )( dla wielomianu Wszystkie potrzebne dane uĪytkownik powinien wprowadziü z klawiatury — najpierw dane wielomianu (stopieĔ i wspóáczynniki), a póĨniej granice caákowania. Do wyznaczenia funkcji pierwotnej uĔyj metody (integral()) opracowanej w rozwiñza- niach zadaþ 26.8 i 26.9, a nastöpnie skorzystaj ze wzoru dxxw )( bF )(  aF )( . b ³ a Zadanie 26.13. Mając dane wszystkie pierwiastki rzeczywiste wielomianu ( gram wyznaczający wspóáczynniki wielomianu. xx 1 , 2 , ..., nx ), napisz pro- 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 moĪe samodzielnie zmieniü zestaw danych lub sposób ich pobierania przez program — wprowadzanie danych z klawiatury lub odczytywanie z pliku. NaleĪy zwróciü uwagĊ na rozbieĪnoĞci pomiĊdzy zakresem indeksów. W tablicach w jĊzyku Java indeksowanie rozpoczynamy od 0 i koĔczymy na indeksie o 1 mniejszym od rozmiaru tablicy, natomiast we wzorach statystyki opisowej indeksy wartoĞci próbki bĊdą w granicach od 1 do n. W zadaniach bardzo czĊsto bĊdziemy mieli do czynienia z obliczaniem sumy ciągu liczb x1, x2, …, xn (oznaczanej symbolem ¦ ) zapisanego w tablicy x[0], x[1], …, x[n–1]. Zrealizujemy to przy uĪyciu instrukcji pĊtli: ix 1 n i double suma = 0; for(double xi: x) suma += xi; Rozdziaä 4. i 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 x1, …, xn wyznacz najmniejszą i najwiĊkszą war- toĞü w ciągu oraz rozstĊp badanej cechy. Rozstöpem badanej cechy jest róĔnica pomiödzy wartoĈciñ maksymalnñ i minimalnñ xR  x max . min Zadanie 27.2. Dla podanej próbki n-elementowej x1, …, xn wyznacz Ğrednią arytmetyczną. ćredniñ arytmetycznñ liczb x1, …, xn nazywamy liczbö x 1 n n ¦ i 1 ix . Zadanie 27.3. Dla podanej próbki n-elementowej x1, …, xn wyznacz Ğrednią geometryczną. ćredniñ geometrycznñ dodatnich liczb x1, …, xn nazywamy liczbö JeĔeli wszystkie xi 0, to log g 1 n n ¦ i 1 log ix . n g – n i 1 ix . Zadanie 27.4. Dla podanej próbki n-elementowej x1, …, xn wyznacz Ğrednią harmoniczną. ćredniñ harmonicznñ róĔnych od zera liczb x1, …, xn nazywamy liczbö  1 h § ¦n ¨¨ © 1 n 1 i · ¸¸ ¹ 1 ix , gdy n ¦ i 1 1 ix z 0 (odwrotnoĈè Ĉredniej arytmetycznej odwrotnoĈci tych liczb). Zadanie 27.5. Dla podanej próbki n-elementowej x1, …, xn wyznacz Ğrednią potĊgową rzĊdu r. Obli- czenia wykonaj dla r = 2 i r = 3. 84 Programowanie w jözyku Java ćredniñ potögowñ rzödu r dodatnich liczb x1, …, xn nazywamy liczbö x r i . Dla 1 r otrzymujemy Ĉredniñ harmonicznñ (  )1( p h ), r )( p a dla n ¦ 1 i r 1 n 1 r Ĉredniñ arytmetycznñ ( p )1( x ). Zadanie 27.6. Dla podanej próbki n-elementowej x1, …, xn wyznacz medianĊ. Posortuj tablicö z danymi i wybierz element Ĉrodkowy, gdy n jest nieparzyste, lub oblicz Ĉredniñ arytmetycznñ dwóch Ĉrodkowych liczb, gdy n jest parzyste: m e ­ °° ® ° ° ¯ x  n 1 2 § ¨¨ © 1 2 , gdy n jest nieparzyst e  x · ¸¸ , ¹  1 n 2 x n 2 gdy n jest parzyste NaleĔy pamiötaè o przesuniöciu indeksu wynikajñcego z róĔnicy pomiödzy indeksa- mi we wzorach a indeksami w tablicach. Zadanie 27.7. Wyznacz wartoĞü modalną (dominantĊ) n-elementowej próbki x1, …, xn. WartoĈciñ modalnñ (dominantñ, modñ) próbki x1, …, xn o powtarzajñcych siö war- toĈciach nazywamy najczöĈciej powtarzajñcñ siö wartoĈè, o ile taka istnieje. Po- nadto wartoĈè ta nie moĔe byè wartoĈciñ minimalnñ lub maksymalnñ. Zadanie 27.8. Oblicz wariancjĊ n-elementowej próbki x1, …, xn. Wykorzystaj wszystkie niĪej poda- ne wzory i porównaj uzyskane wyniki. Wariancjñ s2 (dyspersjñ) próbki x1, …, xn nazywamy Ĉredniñ arytmetycznñ kwadratów odchyleþ wartoĈci ix od Ĉredniej arytmetycznej x próbki: 2 s 1 n n ¦ 1 i  x x i 2 . MoĔna zastosowaè wzory równowaĔne 2 s n ¦ 1 n 1 i x i 2 x   a 2  a , gdzie a jest dowolnñ staäñ. 2 s 1 n n ¦ 1 i x 2 i  2 x lub Rozdziaä 4. i Czwarty krok — pliki, tablice i macierze 85 Zadanie 27.9. Oblicz odchylenie standardowe n-elementowej próbki x1, …, xn. Odchylenie standardowe s próbki x1, …, xn jest równe pierwiastkowi kwadratowe- mu z wariancji s2 (zob. zadanie 27.8). Zadanie 27.10. Oblicz odchylenie przeciĊtne d próbki x1, …, xn od staáej a. Obliczenia wykonaj dla a = 2. Odchyleniem przeciötnym d od staäej a próbki x1, …, xn nazywamy Ĉredniñ arytme- tycznñ wartoĈci bezwzglödnych odchyleþ poszczególnych wartoĈci xi od staäej a: d 1 n n ¦ 1 i  a . x i Zadanie 27.11. Oblicz odchylenie przeciĊtne d1 próbki x1, …, xn od wartoĞci Ğredniej x . Zadanie 27.12. Oblicz odchylenie przeciĊtne d2 próbki x1, …, xn od mediany em . Zadanie 27.13. Wyznacz kwartyl dolny Q1 i kwartyl górny Q3 próbki x1, …, xn. Oblicz odchylenie üwiartkowe Q. WartoĈci uporzñdkowanej próbki dzielimy na dwie grupy: wartoĈci mniejsze od me- diany i medianö oraz medianö i wartoĈci wiöksze od mediany. Kwartylem dolnym (Q1) jest mediana pierwszej grupy, a górnym (Q3) mediana drugiej grupy. Odchyle- nie èwiartkowe Q obliczamy ze wzoru . 1  3 QQQ 2 Zadanie 27.14. Oblicz moment zwykáy ml rzĊdu l próbki x1, …, xn. Obliczenia wykonaj dla l = 2, 3 i 4. Wzór m l n ¦ 1 n 1 i x l i ,  Nl . 86 Programowanie w jözyku Java Zadanie 27.15. Oblicz moment centralny Ml rzĊdu l próbki x1, …, xn. Obliczenia wykonaj dla l = 2, 3 i 4. Wzór M l n ¦ 1 n 1 i ( x i  x ,) l  Nl . Z wäasnoĈci Ĉredniej arytmetycznej wynika, Ĕe M1 = 0, natomiast M2 jest wariancjñ. Zadanie 27.16. Oblicz moment absolutny zwykáy al rzĊdu l próbki x1, …, xn. Obliczenia wykonaj dla l = 2, 3 i 4. Wzór a l n ¦ 1 n 1 i | x i ,| l  Nl . Zadanie 27.17. Oblicz moment absolutny centralny bl rzĊdu l próbki x1, …, xn. Obliczenia wykonaj dla l = 2, 3 i 4. Wzór b l n ¦ 1 n 1 i | x i  x ,| l  Nl . Absolutny moment centralny rzödu pierwszego jest odchyleniem przeciötnym od Ĉredniej arytmetycznej. Zadanie 27.18. Oblicz wspóáczynnik zmiennoĞci v próbki x1, …, xn. Wzór v ˜ 100 , gdzie s jest odchyleniem standardowym, a x Ĉredniñ arytme- s x tycznñ próbki. Zadanie 27.19. Oblicz wspóáczynnik nierównomiernoĞci H próbki x1, …, xn. dH 1 ˜ Wzór x tycznej x . 100 , gdzie d1 jest odchyleniem przeciötnym od Ĉredniej arytme- Rozdziaä 4. i Czwarty krok — pliki, tablice i macierze 87 W zadaniach 27.1 – 27.19 przedstawiono podstawowe wzory związane z obliczenia- mi statystyki opisowej dla pojedynczej próbki, zwykle nieprzekraczającej 30 elemen- tów. Czytelnik moĪe samodzielnie na podstawie rozwiązaĔ tych zadaĔ konstruowaü programy mające na celu rozwiązywanie problemów z zakresu statystyki. Zadanie 27.20. Na podstawie problemów zawartych w zadaniach 27.1 – 27.19 utwórz klasĊ Stat za- wierającą metody statyczne do obliczeĔ statystycznych. Napisz aplikacjĊ konsolową pokazującą dziaáanie wybranych metod z klasy Stat. SporządĨ dokumentacjĊ tej klasy. Zadanie 27.21. Na podstawie problemów zawartych w zadaniach 27.1 – 27.19 utwórz klasĊ Statpr umoĪliwiającą utworzenie obiektu (próbki) zawierającego metody do rozwiązywania tych problemów. Napisz aplikacjĊ konsolową pokazującą dziaáanie wybranych metod z klasy Statpr. SporządĨ dokumentacjĊ tej klasy. 28. Tablice wielowymiarowe i macierze Zadanie 28.1. Utwórz dwuwymiarową tablicĊ liczb caákowitych o trzech wierszach. W pierwszym wierszu tablicy umieĞü liczby od 1 do 10, w drugim kwadraty tych liczb, a w trzecim szeĞciany liczb z pierwszego wiersza. Napisz program tworzący i wyĞwietlający tĊ tablicĊ w konsoli. Zadanie 28.2. W tablicy dwuwymiarowej nie wszystkie wiersze muszą mieü ten sam rozmiar. Napisz program, który utworzy tablicĊ liczb caákowitych o dziesiĊciu wierszach. Wypeánij tablicĊ kolejnymi liczbami naturalnymi, zaczynając od liczby 1. W pierwszym wier- szu umieĞü jedną liczbĊ, w drugim dwie liczby, w trzecim trzy itd. — w dziesiątym dziesiĊü liczb. Oblicz sumy liczb w kolejnych wierszach i sumĊ wszystkich liczb za- pisanych w tablicy. WyĞwietl w konsoli tablicĊ liczb oraz obliczone sumy. Zadanie 28.3. Utwórz klasĊ TInt, która bĊdzie zawieraü metody statyczne input() i print() umoĪ- liwiające wprowadzanie danych z konsoli do tablicy lub wyĞwietlanie danych z tabli- cy w konsoli. Parametrem wywoáania tych metod powinna byü tablica liczb caákowi- tych jedno- lub dwuwymiarowa. Napisz program demonstrujący dziaáanie tych metod. Zadanie 28.4. Utwórz w klasie TInt metodĊ statyczną setRandom(), która wypeáni tablicĊ liczb caá- kowitych wartoĞciami wylosowanymi z zakresu od 0 do n (liczba caákowita n 0). 88 Programowanie w jözyku Java TablicĊ oraz zakres wartoĞci podaj jako parametry metody. Napisz program demon- strujący dziaáanie tej metody. Zadanie 28.5. Dodaj do klasy TInt metodĊ statyczną printf() wyĞwietlającą tablicĊ liczb caákowi- tych w konsoli. Metoda ta powinna mieü dwa parametry: áaĔcuch formatujący i iden- tyfikator tablicy. Napisz program demonstrujący dziaáanie tej metody. Zadanie 28.6. Na podstawie zadaĔ 28.3, 28.4 i 28.5 utwórz klasĊ TDouble z metodami statycznymi input(), print(), printf() i setRandom(), uáatwiającymi pobieranie i wypisywanie danych oraz losowe ustawianie wartoĞci w jedno- i dwuwymiarowych tablicach liczb zmiennoprzecinkowych typu double. Napisz program pokazujący dziaáanie wybranych metod z tej klasy. Macierz jest uporządkowaną prostokątną tablicą liczb, dla której zdefiniowane są dzia- áania algebraiczne dodawania (odejmowania) i mnoĪenia:  Dodawanie (odejmowanie) dwóch macierzy jest moĪliwe tylko dla macierzy o jednakowych liczbach kolumn (n) i wierszy (m). Suma (róĪnica) macierzy A i B jest macierzą C taką, Īe ). ( c   a ij b ij ij c ij a ij b ij  MnoĪenie macierzy jest moĪliwe, gdy liczba kolumn pierwszej macierzy (m) jest równa liczbie wierszy drugiej macierzy. Iloczyn macierzy A i B jest macierzą C taką, Īe c ij ba kj ik . MnoĪenie macierzy nie jest przemienne. m ¦ k 1  Zawsze okreĞlone jest mnoĪenie macierzy przez liczbĊ O , polegające na pomnoĪeniu kaĪdego elementu macierzy przez tĊ liczbĊ ( c O a ij ij ). Macierze moĪemy przedstawiaü w programach jako tablice dwuwymiarowe. NaleĪy pamiĊtaü, Īe tablice są indeksowane od zera, a indeksy macierzy rozpoczynamy od jedynki. Zadanie 28.7. Utwórz metodĊ sum() dodającą dwie macierze zapisane w postaci tablic dwuwymia- rowych. Napisz program demonstrujący dziaáanie metody sum(). W tym i kolejnych zadaniach do wprowadzania danych uĔywaj metod z klasy TInt lub TDouble. Zadanie 28.8. Utwórz metodĊ difference() obliczającą róĪnicĊ dwóch macierzy zapisanych w po- staci tablic dwuwymiarowych. Napisz program demonstrujący dziaáanie metody dif- ference(). Rozdziaä 4. i Czwarty krok — pliki, tablice i macierze 89 Zadanie 28.9. Utwórz metodĊ product() obliczającą iloczyn dwóch macierzy zapisanych w postaci tablic dwuwymiarowych. Napisz program demonstrujący dziaáanie metody product(). Zadanie 28.10. Utwórz metodĊ product() obliczającą iloczyn macierzy zapisanej w postaci tablicy dwu- wymiarowych przez liczbĊ. Napisz program demonstrujący dziaáanie metody product(). Zadanie 28.11. Zbuduj metodĊ transp() tworzącą macierz transponowaną z macierzy podanej jako parametr metody. Napisz program demonstrujący dziaáanie metody transp(). Macierz transponowana (przestawiona) powstaje z danej macierzy poprzez zamia- nö jej wierszy na kolumny i kolumn na wiersze. Zadanie 28.12. Utwórz metodĊ statyczną toDouble() konwertującą macierz o elementach caákowi- tych na macierz o elementach zmiennoprzecinkowych. Napisz program demonstrują- cy dziaáanie tej metody. Doáącz ją do klasy TInt. Zadanie 28.13. Doáącz do klasy TDouble metodĊ statyczną o nazwie valueOf(), zwracającą tablicĊ (macierz) z elementami typu double o elementach odpowiadających elementom tabli- cy (macierzy) liczb caákowitych. Napisz program demonstrujący dziaáanie tej metody. Zadanie 28.14. W klasie TDouble utwórz statyczną metodĊ toInt(), która bĊdzie zwracaü tablicĊ (ma- cierz) o wartoĞciach caákowitych, odpowiadających (zamiana przez rzutowanie) tablicy liczb zmiennoprzecinkowych podanej jako parametr. Napisz program demonstrujący dziaáanie tej metody. Zadanie 28.15. W klasie TInt utwórz statyczną metodĊ valueOf(), która bĊdzie budowaü tablicĊ (ma- cierz) o wartoĞciach caákowitych, odpowiadających (zamiana przez rzutowanie) tabli- cy liczb zmiennoprzecinkowych podanej jako parametr. Napisz program demonstru- jący dziaáanie tej metody. Macierze, w których liczba wierszy jest równa liczbie kolumn, nazywamy ma- cierzami kwadratowymi. Z macierzami kwadratowymi związany jest szereg pojĊü, takich jak: Ğlad macierzy, wyznacznik macierzy, macierz diagonalna, macierz trójkątna, macierz jednostkowa i macierz odwrotna. 90 Programowanie w jözyku Java Zadanie 28.16. Utwórz statyczną metodĊ trace() wyznaczającą Ğlad macierzy. Napisz program de- monstrujący dziaáanie tej metody. Zadanie 28.17. Utwórz statyczną metodĊ getI() zwracającą macierz jednostkową stopnia n (stopieĔ podamy jako parametr wywoáania metody). Napisz program demonstrujący dziaáanie tej metody. Zadanie 28.18. Utwórz statyczną metodĊ setI() tworzącą z macierzy kwadratowej podanej jako pa- rametr macierz jednostkową. Napisz program demonstrujący dziaáanie tej metody. Zadanie 28.19. Utwórz metodĊ statyczną det() obliczającą wyznacznik macierzy kwadratowej. Do obliczenia wyznacznika uĪyj rozwiniĊcia Laplace’a. Napisz program demonstrujący dziaáanie tej metody. Zadanie 28.20. Utwórz metodĊ statyczną upperTriangular() przeksztaácającą macierz kwadratową podaną jako parametr na macierz trójkątną górną. Napisz program demonstrujący dzia- áanie tej metody. Zadanie 28.21. Utwórz metodĊ statyczną lowerTriangular() przeksztaácającą macierz kwadratową podaną jako parametr na macierz trójkątną dolną. Napisz program demonstrujący dzia- áanie tej metody. Zadanie 28.22. Utwórz metodĊ statyczną diagonal() przeksztaácającą macierz kwadratową podaną jako parametr na macierz diagonalną. Napisz program demonstrujący dziaáanie tej metody. Zadanie 28.23. Utwórz metodĊ statyczną inverse() obliczającą i zwracającą macierz odwrotną do macierzy kwadratowej podanej jako parametr. Napisz program demonstrujący dziaáa- nie tej metody. Zadanie 28.24. Napisz program rozwiązujący ukáad n-równaĔ liniowych z n niewiadomymi (n 10). Ukáad równaĔ rozwiąĪ, stosując metodĊ wyznaczników. Wszystkie niezbĊdne metody umieĞü w klasie programu. Rozdziaä 4. i Czwarty krok — pliki, tablice i macierze 91 Zadanie 28.25. Napisz program rozwiązujący ukáad n-równaĔ liniowych z n niewiadomymi. Ukáad , gdzie A — ma- równaĔ rozwiąĪ, stosując rachunek macierzy: cierz podstawowa ukáadu, X — wektor niewiadomych, B — kolumna wyrazów wol- nych. Wszystkie niezbĊdne metody umieĞü w klasie programu. BA 1 ˜ XA B , X ˜ Zadanie 28.26. Napisz program rozwiązujący ukáad n-równaĔ liniowych z n niewiadomymi. Ukáad równaĔ rozwiąĪ, stosując metodĊ eliminacji. Wszystkie niezbĊdne metody umieĞü w klasie programu. Zadanie 28.27. Utwórz klasĊ Matrix, która na podstawie tablic dwuwymiarowych, podanych wymia- rów macierzy lub innych obiektów klasy Matrix (konstruktor kopiujący) bĊdzie umoĪ- liwiaü tworzenie obiektów reprezentujących macierze. Utwórz metody uáatwiające do- stĊp do elementów macierzy (pól obiektu), wprowadzanie i wyĞwietlanie danych oraz wypeánianie macierzy wartoĞciami losowymi. Napisz program demonstrujący dziaáa- nie metod klasy Matrix. Zadanie 28.28. Doáącz do klasy Matrix metody umoĪliwiające wykonywanie podstawowych dziaáaĔ na macierzach: dodawanie, odejmowanie i mnoĪenie macierzy oraz mnoĪenie macie- rzy przez skalar. Napisz program demonstrujący dziaáania na macierzach. Zadanie 28.29. Doáącz do klasy Matrix metody umoĪliwiające przeksztaácanie macierzy kwadratowych na postaü trójkątną lub diagonalną. Napisz program demonstrujący dziaáanie tych metod. Zadanie 28.30. Doáącz do klasy Matrix metodĊ umoĪliwiającą obliczanie wyznacznika macierzy. Na- pisz program demonstrujący dziaáanie tej metody. Zadanie 28.31. Doáącz do klasy Matrix metodĊ umoĪliwiającą obliczanie macierzy odwrotnej. Napisz program demonstrujący obliczanie macierzy odwrotnej. SprawdĨ uzyskany wynik, wy- konując odpowiednie mnoĪenie. Zadanie 28.32. Wykorzystując moĪliwoĞci klasy Matrix i obliczenia na macierzach, rozwiąĪ ukáad n-równaĔ liniowych z n niewiadomymi. 92 Programowanie w jözyku Java Zadanie 28.33. Wykorzystując moĪliwoĞci klasy Matrix i metodĊ wyznaczników, rozwiąĪ ukáad n-równaĔ liniowych z n niewiadomymi. Utwórz metodö pomocniczñ replaceCol(), która w macierzy wywoäujñcej tö meto- dö zastñpi wskazanñ kolumnö kolumnñ przekazanñ jako parametr (bödzie to ko- lumna wyrazów wolnych). 29. Obliczanie wartoĈci funkcji, rekurencja i inne zadania Zadanie 29.1. Napisz aplikacjĊ testującą dziaáanie podanej metody dla róĪnych argumentów. OkreĞl, co oblicza ta metoda. Nadaj jej odpowiednią nazwĊ. static double f(double x) { return (x 0)?x:-x; } Zadanie 29.2. OkreĞlono dwie funkcje: y y Utwórz klasĊ MinMax z metodami min() i max() obliczającymi i zwracającymi wartoĞci tych funkcji. Napisz aplikacjĊ pokazującą dziaáanie tych metod. gdy gdy gdy gdy oraz max( yx , ) min( yx , ) y y x x ­ ® ¯ x , y , t  x x . ­ ® ¯ x , y , d ! Zadanie 29.3. OkreĞlono funkcjĊ xf )( 0  ­ ,1 ° ® ,0 ° ,1 ¯ gdy x gdy x gdy x !  0 0 . Co oblicza ta funkcja? Utwórz metodĊ ob- liczającą wartoĞü tej funkcji. Napisz aplikacjĊ pokazującą dziaáanie zbudowanej metody. Zadanie 29.4. OkreĞlono funkcjĊ xf )( liczającą wartoĞü tej funkcji. Napisz aplikacjĊ pokazującą dziaáanie zbudowanej metody. gdy x 0 , gdy x z 0 . Co oblicza ta funkcja? Utwórz metodĊ ob- ­ ,0 ° ® x °¯ x Rozdziaä 4. i Czwarty krok — pliki, tablice i macierze 93 Zadanie 29.5. Napisz aplikacjĊ testującą wartoĞci funkcji okreĞlonych wzorami: a) yxf , b) yxg , x x  x y 2  y x y y c) xh )( xf ,(  x 2 ) Co obliczają te funkcje? Utworzonym metodom nadaj odpowiednie nazwy. Zadanie 29.6. Napisz definicje metod square() i cube() obliczających kwadrat i szeĞcian liczby x. Zastosuj utworzone metody do obliczenia kwadratów i szeĞcianów liczb: a) caákowitych od 1 do 15, b) rzeczywistych od 1 do 3 z krokiem 0,25. Zadanie 29.7. PotĊgĊ o wykáadniku caákowitym dodatnim okreĞlamy wzorem n a metodĊ adoen() obliczającą an. Napisz aplikacjĊ pokazującą dziaáanie tej metody. ˜ ˜ aa a ... . Utwórz ˜ n Zadanie 29.8. PotĊgĊ o wykáadniku caákowitym nieujemnym moĪemy okreĞliü wzorem rekurencyj- nym: n a ­ ,1 ® ˜ aa ¯ dla  , n 1 n 0 dla . Napisz definicjĊ metody rekurencyjnej adoen() obli- n ! 0 czającej an oraz aplikacjĊ pokazującą dziaáanie tej metody. Zadanie 29.9. Szybkie potĊgowanie — inną wersjĊ metody rekurencyjnej obliczającej an (szybszą ze wzglĊdu na mniejszą liczbĊ wywoáaĔ rekurencyjnych i zredukowanie liczby mnoĪeĔ) moĪemy zrealizowaü na podstawie wzoru: ­ ° 1 ° °° ® ° ° § ° ¨ ° © ¯ a dla §˜ ¨ © a  n 1 2 0 dla n nieparzyst ego ( n ! )0 . n 2 · ¸ ¹ n a n 2 a 2 · ¸ ¹ dla n parzystego ( n ! )0 94 Programowanie w jözyku Java Utwórz metodĊ adoen() obliczającą an. Napisz aplikacjĊ pokazującą dziaáanie tej metody. Zadanie 29.10. PotĊgĊ o podstawie a róĪnej od 0 i wykáadniku caákowitym n moĪemy zdefiniowaü w nastĊpujący sposób: n a , ... ˜ ˜ aa a ˜ n dla n ­ ° ° ® ,1 ° ,1 ° ¯ a n dla n dla n ! 0 . 0  0 Napisz definicjĊ metody power() (prototyp: double power(double a, int n)) oblicza- jącej an dla dowolnej liczby caákowitej oraz aplikacjĊ pokazującą dziaáanie tej funkcji. Funkcjö adoen (zob. zadanie 29.7, 29.8 lub 29.9) obliczajñcñ an dla n 1 wykorzy- stamy w funkcji power (do obliczania na lub a dla ,3,2,1 n ... ). n 1  a n Zadanie 29.11. Pierwiastek drugiego stopnia z liczby dodatniej a moĪemy obliczyü metodą iteracyjną . Ob- na podstawie wzoru , przyjmując jako pierwsze przybliĪenie 1 x x 1 2 §  ¨ x © a x · ¸ ¹ liczenia kontynuujemy do chwili, gdy róĪnica pomiĊdzy dwoma kolejnymi przybliĪe- niami pierwiastka bĊdzie dostatecznie maáa. Napisz metodĊ sqrt() (ang. square root) obliczającą pierwiastek kwadratowy z podanej liczby dodatniej. Zbuduj aplikacjĊ po- kazującą dziaáanie metody sqrt() i porównującą otrzymane wyniki z wynikami metody bibliotecznej Math.sqrt(). Zadanie 29.12. Pierwiastek trzeciego stopnia z liczby dodatniej a moĪemy obliczyü metodą iteracyjną . Ob- na podstawie wzoru , przyjmując jako pierwsze przybliĪenie 1 x x  2 x § ¨ © 1 3 a x 2 · ¸ ¹ liczenia kontynuujemy do chwili, gdy róĪnica pomiĊdzy dwoma kolejnymi przybliĪe- niami pierwiastka bĊdzie dostatecznie maáa. Napisz metodĊ cbrt() (ang. cube root) obliczającą pierwiastek trzeciego stopnia z podanej liczby dodatniej. Zbuduj aplikacjĊ pokazującą dziaáanie metody cbrt() i porównującą otrzymane wyniki z wynikami me- tody bibliotecznej Math.cbrt(). Podany wzór wynika z metody Newtona-Raphsona — iteracyjnego algorytmu wy- znaczania przybliĔonej wartoĈci pierwiastka funkcji. Dotyczy to równieĔ wzoru z za- dania 29.11. Rozdziaä 4. i Czwarty krok — pliki, tablice i macierze 95 Zadanie 29.13. Pierwiastek n-tego stopnia z liczby dodatniej a moĪemy obliczyü metodą iteracyjną na podstawie wzoru , przyjmując jako pierwsze przybliĪenie  n  x 1 x 1 n § ¨ © a 1 nx · ¸ ¹ 1 x . Obliczenia kontynuujemy do chwili, gdy róĪnica pomiĊdzy dwoma kolejnymi przybliĪeniami pierwiastka bĊdzie dostatecznie maáa. Na podstawie podanego wzoru napisz metodĊ nRoot() obliczającą pierwiastek n-tego stopnia z podanej liczby do- datniej. Zbuduj aplikacjĊ pokazującą dziaáanie metody nRoot() i porównującą otrzy- mane wyniki z wynikami uzyskanymi przy zastosowaniu funkcji bibliotecznej. n a a PoniewaĔ funkcji Math.pow(a, 1.0/n). 1 n , to wartoĈè pierwiastka moĔemy obliczyè przy zastosowaniu Skorzystaj z opracowanej w zadaniu 29.7 metody power() do obliczania warto- Ĉci 1nx . Zadanie 29.14. W klasie Math zdefiniowano metody obliczające funkcje hiperboliczne — sinus hiper- boliczny (Math.sinh()) i cosinus hiperboliczny (Math.cosh()). Napisz program wyĞwie- 5,5 tlający na ekranie tablice wszystkich funkcji hiperbolicznych w przedziale z krokiem 0,1. Wyniki obliczeĔ zapisz w pliku tekstowym FunkcjeHiperboliczne.txt. Wyniki pracy programu moĔna zapisaè w pliku tekstowym, stosujñc w konsoli po- lecenie: java Z29_14 FunkcjeHiperboliczne.txt (przyjmujemy, Ĕe rozwiñzanie zadania zapisano w pliku Ēródäowym Z29_14.java). Zadanie 29.15. W klasie Math zdefiniowano metodĊ Math.exp() obliczającą wartoĞü funkcji wykáad- niczej xe . RozwiąĪ zadanie 29.14, nie korzystając z metod Math.sinh() i Math.cosh(). WartoĈci funkcji moĔna wyliczyè na podstawie wzorów: cosh x x e x  e 2 itp. sinh x x e x  e 2 , 96 Programowanie w jözyku Java Zadanie 29.16. Zbuduj klasĊ FH (funkcje hiperboliczne) zawierającą metody statyczne obliczające war- toĞci wszystkich funkcji hiperbolicznych i funkcji do nich odwrotnych. Napisz aplika- cjĊ pokazującą dziaáanie tych metod. Zadanie 29.17. Zbuduj klasĊ FTD, która bĊdzie zawieraü metody statyczne obliczające wartoĞü szeĞciu funkcji trygonometrycznych i szeĞciu funkcji do nich odwrotnych. Argumenty funkcji trygonometrycznych i wartoĞci funkcji odwrotnych powinny byü wyraĪane w stop- niach. UdostĊpnij równieĪ metody konwersji stopni na radiany i radianów na stopnie. Napisz aplikacjĊ pokazującą moĪliwoĞci metod statycznych zawartych w tej klasie. Zadanie 29.18. Zbuduj klasĊ FTR, która bĊdzie zawieraü metody statyczne obliczające wartoĞü szeĞciu funkcji trygonometrycznych i szeĞciu funkcji do nich odwrotnych. Argumenty funkcji trygonometrycznych i wartoĞci funkcji odwrotnych powinny byü wyraĪane w radia- nach. UdostĊpnij równieĪ metody konwersji stopni na radiany i radianów na stopnie. Napisz aplikacjĊ pokazującą moĪliwoĞci metod statycznych zawartych w tej klasie.
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Programowanie w języku Java. Zbiór zadań z (p)odpowiedziami
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: