• Nie Znaleziono Wyników

Obiekty i klasy

N/A
N/A
Protected

Academic year: 2021

Share "Obiekty i klasy"

Copied!
10
0
0

Pełen tekst

(1)

Obiekty i klasy

dr Przemysław Juszczuk

Katedra Inżynierii Wiedzy – Uniwersytet Ekonomiczny w Katowicach

Laborki

(2)

Przygotuj klasę Punkt3D pozwalającą na reprezentowanie punktów w przestrzeni 3D. Współrzędne punktu to wartości rzeczywiste.

przygotuj konstruktor domyślny bezparametrowy ustalający wartości punktu w początku układu współrzędnych (0,0,0);

przygotuj konstruktor z trzema parametrami wskazującymi przesunięcie punktu względem początku układu współrzędnych;

do każdego pola klasy napisz gettery oraz settery;

napisz metodę pozwalającą wyznaczyć odległość punktu od początku układu współrzędnych w metryce euklidesowej;

jw. ale przygotuj metodę dla metryki Manhattan.

(3)

Napisz klasę ”Lancuch”, zawierającą pole String ”lancuch”, String

”koncowka”, char ”pierwszaLitera”, gdzie ”lancuch” jest ciągiem liter,

”koncowka” to 3 ostatnie litery zmiennej ”lancuch”, a ”pierwszaLitera”

zawiera pierwszą literę łańcucha.

do każdego pola przygotuj gettery;

klasa ma zawierać dwa konstruktory. Pierwszy, to konstruktor domyślny bez parametrów inicjalizujący odpowiednie zmienne wartościami:

lancuch = abcdefghij koncowka = hij pierwszaLitera = a

przygotuj drugi konstruktor inicjalizowany jednym parametrem:

zmienną ”lancuch”. Pozostałe elementy wyznaczane są na podstawie zmiennej ”lancuch”. Jeżeli zmienna ”lancuch” ma mniej niż 5 liter - brakujące litery uzupełniane są kolejnymi literami alfabetu.

Przykład:

(4)

Do klasy z zadania drugiego dodaj następujące metody:

metodę Merge, której parametrem jest inny obiekt klasy Lancuch. W wyniku wywołania tej metody, w bieżącej klasie pole ”lancuch”

modyfikowane jest w taki sposób, że zawiera na zmianę litery z oryginalnej zmiennej ”lancuch” i litery z pola obiektu przekazanego jako parametr, tzn.:

this.lancuch = ”aaa”; obiekt.lancuch = ”bbb’; nasz bieżący lancuch po metodzie Merge: ”ababab”.

this.lancuch = ”abc”; obiekt.lancuch = ”xyz’; nasz bieżący lancuch po metodzie Merge: ”axbycz”.

metodę IleASCII, która każdy element pola lancuch zamienia na kod ASCII, a następnie sumuje numery w kodzie ASCII. Suma zwracana jest jako wynik dzialania tej metody. Np.: lancuch = ”abc” = 121 + 122 + 123 = 366.

(5)

Przygotuj klasę Pracownik zawierającą pola: string imie, string nazwisko, string stanowisko, int stazPracy, double pensja. Do każdego z pól przygotuj odpowiednie gettery i settery. Klasa powinna zawierać dwa konstruktory. Domyślny inicjalizujący pola klasy dowolnymi wartościami, a także drugi inicjalizowany czterema parametrami: imie, nazwisko, stanowisko, stazPracy. Wartość pola pensja ustalana jest jako 3600.00 + dodatkowe 150.0 za każdy rok pracy. W przypadku stanowiska

”manager” pensja zwiększana jest dodatkowo o 500.0, a w przypadku

”kierownik” o 1000.0. Klasa powinna zawierać:

metodę boolean ZwiekszPensja(double wzrost), która umożliwia zwiększenie pensji o wartość zadaną parametrem wzrost.

Przykładowo wartość 0.2 powinna powodować zwiększenie pensji o 20%. W przypadku przekroczenia pułapu 10000.0 pensja nie powinna zostać aktualizowana, a metoda powinna zwrócić wartość false. W przypadku pomyślnej aktualizacji - wartość true.

(6)

Utwórz tablicę obiektów klasy Pracownik zawierajacą 100 elementów:

imiona mogą być losowane w sposób dowolny (np. z predefiniowanego, ograniczonego zbioru imion);

nazwiska mogą być losowym ciągiem liter nie krótszym niż 3 znaki i nie dłuższym, niż 15 znaków;

pole stanowisko może przyjąć jedną z wartości: ”młodszy specjalista”, ”starszy specjalista”, ”księgowy”, ”menager”,

”kierownik”, ale maksymalna liczba kierowników to 3, a maksymalna liczba menagerów to 10;

stazPracy jest dowolną wartością z przedzialu h0, 25i.

(7)

Napisz metodę void Ranking(Pracownik[] firma, int klucz), która umożliwia sortowanie tablicy obiektów klasy Pracownik w zależności od zadanego klucza. klucz 0 odpowiada sortowaniu po nazwisku; klucz 1 - sortowanie po stanowisku, klucz 2 - sortowanie po pensji.

Zadanie 7

Do klasy Pracownik z zadania 4 dopisz konstruktor kopiujący. Następnie stwórz dwa dowolne obiekty klasy pracownik. Pierwszy z nich stwórz na podstawie konstruktora z parametrami, natomiast drugi przy pomocy konstruktora kopiującego.

(8)

Napisz statyczną klasę zawierającą metody umożliwiające konwersję dowolnej liczby arabskiej na liczbę rzymską. Druga metoda w klasie powinna umożliwiać analogiczną konwersję z liczby arabskiej na liczbę w postaci binarnej. Parametrami tych metod w obydwu przypadkach jest liczba całkowita, natomiast wynikiem jest string.

Zadanie 9 – DODATKOWE

Klasa Math jest klasą statyczną zawierającą szereg operacji matematycznych. Napisz klasę statyczną OperacjeMatematyczne zawierającą wybrane metody klasy Math (bez użycia klasy Math): Pow, Abs, Ceiling (double), Floor(double), Max(double1, double2),

Sign(double), Truncate(double).

(9)

Do klasy z zadania drugiego dopisz metodę umożliwiającą wyznaczenie wartości sinus dowolnego kąta (bez użycia klasy Math). W celu

wyznaczenia wartości sinus należy wartość kąta w stopniach zamienić na radiany, a następnie korzystając z szeregu Taylora (poniżej) obliczyć wartość kąta.

sinx = x −x3 3! +x5

5! x7

7! (1)

Przyjmijmy, że nasza wersja funkcji sinus przyjmuje dwa parametry: kąt - w stopniach oraz dokładność przybliżenia z przedziału od 2 do 4, gdzie 2 oznacza przybliżanie dwoma elementami ciągu, 3 - trzema, a 4 -

czterema. W powyższym wzorze podano przybliżenie 4 elementami ciągu.

(10)

Cytaty

Powiązane dokumenty

• Za prawidłowo wykonane ćwiczenie uzyskujesz liczbę punktów wskazaną w kolumnie punktacja zadania.. Ostatnią kolumnę tabeli

• Za prawidłowo wykonane ćwiczenie uzyskujesz liczbę punktów wskazaną w kolumnie PUNKTACJA ZADANIA.. Za brak odpowiedzi lub niepełne rozwiązanie – nie

• Za prawidłowo wykonane ćwiczenie uzyskujesz liczbę punktów wskazaną w kolumnie PUNKTACJA ZADANIA.. Za brak odpowiedzi lub niepełne rozwiązanie – nie

Zadania 1, 2, 3, 4 wymagają wiedzy i umiejętności z poziomu podstawowego, zadania 5, 6, 7, 8 – z poziomu rozszerzonego, zadania 9, 10 – z poziomu zaawansowanego.. Numer zadania

Jaką długość mają boki tego trójkąta, jeśli jego podstawa jest równa 15 cmA. Najkrótszy bok trójkąta ma

• Za prawidłowo wykonane ćwiczenie uzyskujesz liczbę punktów wskazaną w kolumnie PUNKTACJA ZADANIA.. Za brak odpowiedzi lub niepełne rozwiązanie – nie

miejscowości wyruszają równocześnie naprzeciw siebie samochód osobowy jadący z prędkością 70 km/h i samochód ciężarowy. jadący z prędkością

Metoda jest implementacją operacji w jednej z klas, może być wiele metod.. implementujących daną