Programowanie 3 - Funkcje, pliki i klasy

Programowanie 3 - Funkcje, pliki i klasy dr Przemysław Juszczuk Instytut Informatyki Uniwersytetu Śląskiego Laborki dr Przemysław Juszczuk Programo...
0 downloads 2 Views 201KB Size
Programowanie 3 - Funkcje, pliki i klasy dr Przemysław Juszczuk Instytut Informatyki Uniwersytetu Śląskiego

Laborki

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

funkcja; parametry funkcji; typ zwracany; typ void; funkcje bez parametrów; napis.length() - jako przykład funkcji.

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

funkcja dodająca dwie liczby; lokalny zasięg zmiennych w funkcji. Zadania Napisz funkcję, która przyjmuje 3 parametry: długość tablicy, przedział min i max (int) a następnie tworzy tablicę liczb losowych z tego przedziału i zwraca ich sumę. Napisz funkcję, która tworzy tablicę dwuwymiarową liczb losowych (lokalnie). Dana jest tablica n x m. Napisz funkcję która transponuje podaną tablicę. Napisz własną funkcję uppercase. Napisz funkcję substring. Napisz funkcję Split.

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

Czytanie z plików tekstowych import biblioteki io; klasa File; klasa FileReader; klasa BudderedReader; czytanie z pliku i metoda readLine(); koniec dostępu do pliku; Wyjątki i ich obsługa w Java try; catch; Exception; finally;

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

Zapis do plików tekstowych klasa File i FileWriter; BufferedWriter; metoda write(); koniec dostępu do pliku; Zadania 1

2

3

Funkcja przyjmująca jako parametr nazwę pliku i odczytująca co drugą linię tekstu. Funkcja przyjmująca jako parametr nazwę pliku i zwracająca sumę elementów w pliku. Użytkownik podaje n danych, do pliku zapisywane są tylko cyfry.

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

klasa a obiekt; definicja klasy; dostęp public i private; konstruktor klasy; konstruktor domyślny;

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

Zadania Dana jest klasa Pracowik z następującymi polami: 1 imię (String) 2 nazwisko (string) 3 wiek (int) 4 stażpracy (int) 5 pensja (double) Napisz funkcję, która dla każdego pracownika o stażu pracy większym niż 5 lat zwiększy pensję o 5% na każdy dodatkowy przepracowany rok, tzn. dla stażu 6 lat, pensja wynosi: pensja + 5%, dla 10 lat : pensja + 25% i tak dalej.

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

Zadania Zaproponuj klasę Kwadrat z następującymi polami: bok, przekątna, obwód, pole. Klasa powinna posiadać konstruktory: 4 parametrowy dla każdej danej. Dodatkowo powinny być spełnione odpowiednie założenia pomiędzy bokiem a przekątną: d = a sqrt(2). 1 parametrowy: podawany jest tylko bok. Klasa powinna zawierać także metody: obliczPole, ObliczObwód, zmieńBok (funkcja zmieńBok pozwala na zmianę wartości boku oraz jednocześnie aktualizuje zmienne: obwód, pole i przekątna.

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

Zadania Napisz klasę Student posiadającą pola: imię (String) nazwisko (String) wiek (int) średnia (double) stypendium (boolean) rok studiów (byte) Klasa ma posiadać 3 konstruktory: imię, nazwisko, wiek, średnia, stypendium, rok studiów imie, nazwisko, wiek, średnia (stypendium obliczane, jeżeli średnia większa od 4.00), rok studiów imię, nazwisko, średnia (wiek ustalany na 19 lat, stypendium na podstawie średniej), rok studiów = 1. Oczywiście wszystkie wartości muszą być sprawdzone i mieć sens, tzn. rok studiów max = 5, średnia max 5.00, min 2.5 i tak dalej.

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

Zadanie cd Napisać metodę zapisu obiektów klasy student do pliku, dopóki użytkownik podaje dane. napisać metodę modyfikującą pole stypendium, jeżeli użytkownik jest minimum na drugim roku (warunek stypendium – średnia 4.0) napisać metodę, która wypisuje studentów na wybranym roku (rok studiów jako parametr funkecji).

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

Zadania pliki obiektowe 1

Napisz klasę Zespolona posiadającą dwa pola prywatne: double r oraz double i; konstruktor przyjmujący jako parametry wartości r oraz i. metody ustawR, ustawI, wyswietlR,wyswietlI wyswietlLiczbe - metoda powinna zwracać String postaci x + yi (gdzie x to wartość r a y to wartość i). Dodaj - metoda przyjmująca jako parametry dwa obiekty klasy zespolona i zwracająca obiekt tej samej klasy (przy dodawaniu liczb zespolonych dodajemy ze sobą odpowiednie elementy).

2

Napisz metodę, która jako parametr przyjmuje nazwę pliku. Plik zawiera obiekty klasy Zespolona. W wyniku działania metody mają powstać dwa pliki tekstowe: ile.txt zawierający liczbę obiektów klasy zespolona. suma.txt zawierający sumę wszystkich części rzeczywistych z pliku.

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

Zadania obiektowe 1

Napisz klasę Mapa posiadającą nastepujące pola: klucz - wartość int oraz pole - wartość string; ponadto klasa powinna posiadać konstruktor przyjmujący 2 parametry: klucz powinien być liczbą z przedziału ¡1,100¿ , pole stringiem składającym się z 3 małych liter - jeżeli wartości te nie zgadzają się, przyjmij 1 i aaa”. , metody ustawKlucz, UstawPole, wyswietlKlucz,wyswietlPole Sklej - metody przyjmującej dwa obiekty klasy Mapa zwracającej w wyniku obiekt tej samej klasy, gdzie wartości klucz są do siebie dodane, a pola doklejone. Np. dla 1 aac”i 15 ćcd”mamy 16 aacccd” , ,

2

Napisz metodę, która jako parametr przyjmuję nazwę pliku. Plik zawiera obiekty klasy Mapa. W wyniku działania metody ma powstać plik zawierający tylko obiekty, których klucz jest mniejszy niż 50.

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

Zadania dodatkowe Napisz funkcję rysującą trójkąt Pascala, której parametrem jest wysokość trójkąta. Napisz funkcję, której parametrem jest liczba rzymska. Wynikiem działania funkcji ma być liczba arabska ( w postaci int). Napisać funkcje, której parametrem jest jednowymiarowa tablica int, natomiast funkcja udostępnia tę samą tablicę z wartościami znormalizowanymi do przedziału < 0, 1 >. Napisz funkcję, która dostaje trzy parametry:dwa pierwsze to przedziały kodu ASCII, np: 65: 97. W wyniku działania funkcji tworzony jest String z losowych znaków z zadanego przedziału o długości takiej, jak trzeci parametr. Napisz funkcję, która wyświetla trójwymiarową tabliczkę mnożenia z zadanego przedziału, np: 3 i 10, wyświetli tabliczkę mnożenia, gdzie najmniejszą wartością będzie 3*3*3 a największą 10*10*10.

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

Zadania dodatkowe Dany jest plik tekstowy. Napisz funkcję, której parametrem jest nazwa pliku, a w wyniku działania programu otrzymujemy liczbę kropek w pliku. Dany jest plik tekstowy z liczbami, gdzie część ułamkowa oddzielona jest od części dziesiętnej kropką. Ponadto, liczby oddzielone są od siebie dwukropkiem. Bez użycia funkcji replace, napisz funkcję która zamieni wszystkie propki w pliku na przecinki. Dodatkowo w nowym pliku liczby powinny być oddzielone od siebie spacjami. Napisz funkcję, której parametrem jest nazwa pliku z dowolnymi znakami. W wyniku działania funkcji mają powstać dwa pliki: jeden z cyframi:0,2,4,6,8. Drugi zawierający cyfry: 1,3,5,7,9. jw., ale w jednym pliku mają znaleźć się wszystkie LICZBY parzyste, w drugim liczby nieparzyste. tzn dla łańcucha assff 263sd20a35 w jednym pliku ma znaleźć się 263 i 35, natomiast w drugim: 2.

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

Zadania dodatkowe Napisz klasę kwadrat zawierającą pola: a- bok, d- przekątna, pole, obwód. Przygotuj 2 konstruktory: pierwszy przyjmuje 4 parametry:a,d,pole,obwód. Ponadto wszystkie zależności muszą się zgadzać, tzn. obwód musi być równy 4a i tak dalej. W przeciwnym wypadku wartości zmiennych mają być ustalone jako domyślne: a=0, d=0, pole=0, obwód=0. drugi konstruktor przyjmuje 1 parametr: bok a, na jego podstawie obliczane są pozostałe wartości.

Klasa powinna zawierać metody pozwalające odczytywać i ustalać wartości poszczególnych pól. Wymagane są też funkcje: obliczPole(), obliczObwod(), obliczd(). Do klasy z zadania 10: przygotować jednowymiarową tablicę obiektów klasy kwadrat. Tablica powinna zostać wypełniona losowymi wartościami boku a z przedziału < 0, 1000 > (podanym w konstruktorze). Następnie, przy pomocy odpowiedniej funkcji odczytać wartość pola: obwód i wskazać numer obiektu o maksymalnej wartości tego pola.

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

Dodatkowe zadania Do klasy z zadania 10 napisać funkcję, która jako parametr przyjmuje dwuwymiarową tablicę obiektów klasy Kwadrat. Tablica powinna zostać wypełniona losowymi obiektami, gdzie wartość boku a należy do przedziału ¡0,1000¿. W wyniku działania funkcji powinniśmy otrzymać sumę pól obiektów leżących w tablicy pod dolną przekątną. Plik Macierze.obj zawiera obiekty klasy Macierz, zawierającej następujące pola i metody: int wiersze = liczba wierszy int kolumny = liczba kolumn int min - minimalna wartość elementów w macierzy int max - maksymalna wartość elementów w macierzy - int[][] matrix o wymiarze wiersze x kolumny, gdzie elementami macierzy są wartości całkowite, losowe z przedziału < min, max >

Klasa posiada 3 konstruktory: pierwszy posiada parametry: liczbawierszy, liczbakolumn, min, max. drugi posiada parametry: min, max. Wartości wiersze i kolumny mają wartości równe 10. trzeci posiada parametry: liczbawierszy, liczbkolumn. Wartość min ustalona jest jako 0, natomiast max to 10.

tablica matrix wypełniana jest liczbami losowymi w konstruktorze !! dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

Dodatkowe zadania cd Należy dopisać także metody pozwalające na dostęp do pól: min, max, wiersze i kolumny. Pola te nie mogą być modyfikowane. Wymagana jest także metoda Wyswietl() wypisująca całą macierz, PodajElement(int w, int k), która udostępnia element na przecięciu wiersza w i kolumny k oraz ZmienElement(int w, int k). Zadanie jest następujące: napisz funkcję, która jako parametr dostaje nazwę pliku z obiektami klasy Macierz, następnie dla każdego obiektu z tej klasy wyzerować obydwie przekątne. W tym celu można dopisać dodatkową metodę do klasy Macierz zerującą przekątne lub posłużyć się metodą ZmienElement(int w, int k). napisz funkcję, której parametrem jest nazwa pliku z obiektami klasy Macierz. W wyniku działania funkcji udostępniona zostaje tablica obiektów Macierz zawierająca wszystkie obiekty z pliku zapisane w odwrotnej kolejności. Deklaracja takiej metody powinna wyglądać następująco: public Macierz[] Funkcja(String sciezka).

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy

Dziękuję za uwagę.

dr Przemysław Juszczuk

Programowanie 3 - Funkcje, pliki i klasy