cwicz01

background image

1

1. Wielomian stopnia drugiego - trójmian (waga 1)

Napisz klas¦ reprezentuj¡c¡ wielomian stopnia drugiego (trójmian). Zmienne klasy powinny

by¢ wspóªczynnikami wielomianu.

Napisz 2 konstruktory (wg wªasnego uznania). Pamietaj o konstruktorze umo»liwiaj¡cym nada-

nie dowolnych warto±ci wszystkim wspóªczynnikom wielomianu.

Wszystkie pola klasy sªu»¡ce do budowania wielomianu powinny by¢ prywatne. Po zbudowaniu

obiektu mo»na przeczyta¢, za pomoc¡ odpowiednich metod, wspóªczynniki wielomianu. Po

zbudowaniu obiektu pól tych nie mo»na zmienia¢.

Nadpisz odpowiednio metod¦ toString(). Pami¦taj, metoda toString() nie sªu»y do wyprowa-

dzania warto±ci zwracanych przez dost¦pne metody, powinna by¢ tekstowym równowa»nikiem

obiektu.

Napisz metod¦ obliczaj¡c¡ warto±¢ trójmianu dla dowolnej warto±ci argumentu.

Napisz metod¦ obliczaj¡c¡ warto±¢ pochodnej trójmianu dla dowolnej warto±ci argumentu.

Napisz metod¦ obliczaj¡c¡ miejsca zerowe wielomianu. Rozpatrz 3 przypadki: zbudowany trój-

mian nie jest wielomianem stopnia drugiego, s¡ dwa rzeczywiste (by¢ mo»e takie same) roz-

wi¡zania, rozwi¡zania s¡ zespolone. Peªna informacja o tych trzech przypadkach powinna by¢

dost¦pna w metodach testuj¡cych.

Napisz metod¦ obliczaj¡c¡ ekstremum wielomianu. Informacja o ekstremum (dokªadniej: war-

to±¢ odci¦tej i rz¦dnej ekstremum) i o typie ekstremum (minimum, maksimum) powinna by¢

dost¦pna w metodach testuj¡cych.

Przetestuj zbudowan¡ klas¦, opisz w komentarzach wszystkie przeprowadzone testy.

Wyniki dziaªania zbudowanych metod musz¡ by¢ dost¦pne w programach wykorzystuj¡cych

t¦ klas¦.

Zadanie mo»e wymaga¢ zdeniowania dodatkowych klas.

Wszystkie klasy, wszystkie metody powinny by¢ udokumentowane.

background image

2

2. Napisz program speªniaj¡cy poni»sze warunki (waga 1)

Napisz klas¦ reprezentuj¡c¡ wektor (−

x ∈ R

n

), zbuduj 2 konstruktory, pami¦taj o konstruk-

torze za pomoc¡ którego mo»liwe b¦dzie nadanie dowolnych warto±ci wspóªrz¦dnym wektora.

Napisz metod¦ dodaj¡c¡ 2 wektory (metoda z jednym argumentem).

Napisz metod¦ obliczaj¡c¡ iloczyn skalarny dwóch wektorów (metoda z jednym argumentem).

Napisz metod¦ obliczaj¡c¡ dªugo±¢ wektora (metoda bezargumentowa).

Napisz klas¦ reprezentuj¡c¡ macierz (rozmiar nxm), zbuduj 2 konstruktory, pami¦taj o kon-

struktorze, za pomoc¡ którego mo»liwe b¦dzie nadanie elementom macierzy dowolnych warto-

±ci.

Napisz metod¦ obliczaj¡c¡ sum¦ dwu macierzy (metoda z jednym argumentem).

Napisz metod¦ mno»¡c¡ macierz przez wektor (metoda z jednym argumentem - wektorem).

Przetestuj program dla danych wprowadzanych z klawiatury oraz dla danych zapisanych w

pliku.

Napisz dokumentacj¦ dla klas reprezentuj¡cych wektor i macierz.

background image

3

3. Napisz program speªniaj¡cy poni»sze warunki (waga 2)

Napisz klas¦ reprezentuj¡c¡ punkt na pªaszczy¹nie (niech nosi nazw¦ Punkt), wspóªrz¦dne

powinny by¢ typu double.

Zbuduj 2 konstruktory w klasie Punkt.

Zbuduj metod¦ obliczaj¡c¡ odlegªo±¢ mi¦dzy dwoma punktami (ta metoda powinna mie¢ 1

argument).

Nie zapomnij o metodzie toString() i metodach pozwalaj¡cych pobra¢ wspóªrz¦dne punktu.

Napisz klas¦ reprezentuj¡c¡ trójk¡t (Trojkat) wykorzystuj¡c klas¦ Punkt - kompozycja. Zaªó»,

»e trójk¡t istnieje.

Napisz dwa konstruktory.

Napisz metody obliczaj¡ce pole, obwód, wysoko±¢, rysuj¡c¡ i okre±laj¡c¡ kolor wypeªnienia

trójk¡ta. Wystarczy policzy¢ jedn¡ z wysoko±ci. Na razie funkcja rysuj¡ca powinna wyprowa-

dza¢ tekst Rysuj¦ trójk¡t.

Napisz klas¦ reprezentuj¡c¡ czworok¡t (Czworokat) wykorzystuj¡c klas¦ Punkt (zaªó», »e jest

to czworok¡t wypukªy).

Napisz dwa konstruktory.

Napisz metody obliczaj¡ce pole, obwód, przek¡tn¡, rysuj¡c¡ i okre±laj¡c¡ kolor wypeªnienia

czworok¡ta. Wystarczy policzy¢ jedn¡ z przek¡tnych. Metoda rysuj¡ca na razie powinna wy-

prowadza¢ tekst Rysuj¦ czworok¡t.

Pami¦taj o metodzie toString() w ka»dej klasie.

Zbuduj klas¦ testuj¡c¡ powy»sze klasy.

W klasie testuj¡cej zbuduj tablice trojk¡tów i czworok¡tów. Wykonaj wszystkie dost¦pne me-

tody na elementach tych tablic.

Uporz¡dkuj rosn¡co trójk¡ty i czworok¡ty, jako kryterium porz¡dkowania przyjmij pole gury.

Do sortowania wykorzystaj metod¦ z klasy Arrays.

Napisz dokumentacj¦ klas Punkt, Trojkat Czworokat

Narysuj trójk¡t i czworok¡t - zbuduj aplikacj¦.

background image

4

4. Zbuduj tablice zawieraj¡ce trójk¡ty i czworok¡ty i narysuj je. Wszystkie wielok¡ty, bez wgl¦du na

podane wspóªrz¦dne (np.: ujemne wspóªrz¦dne), powinny by¢ widoczne w wybranym polu rysowa-

nia. Skalowanie jest przedstawione poni»ej. (waga 2)
Skalowanie.

x

max

− x

min

x

max

− x

1

=

b − a

b − x

2

x

2

= b −

(x

max

− x

1

)(b − a)

x

max

− x

min

y

max

− y

min

y

max

− y

1

=

d − c

d − y

2

y

2

= d −

(y

max

− y

1

)(d − c)

y

max

− y

min

background image

5

5. Wykonaj dwa poni»sze programy (waga 4)

Przeksztaª¢ przykªad opisuj¡cy geometri¦ wg poni»szych punktów

 W przykªadzie tym, metody obliczaj¡ce pole, obwód, rysowanie s¡ wspólnymi cechami

wielok¡tów. Musz¡ by¢ tylko wypeªnione ró»n¡ tre±ci¡. Metoda okre±laj¡ca kolor mo»e

by¢ niezale»na o typu wielok¡ta. Zbuduj klas¦ abstrakcyjn¡ odzwierciedlaj¡c¡ ten fakt. W

klasie abstrakcyjnej zdeniuj dwa pola caªkowite pierwsze z nich powinno przechowywa¢

numer kolejny budowanego wielok¡ta, drugie powinno przechowywa¢ informacj¦ ile zosta-

ªo zbudowanych wielok¡tów, ka»dy wielok¡t musi mie¢ dost¦p do tej informacji. Napisz

odpowiedni konstruktor.

 Zmodykuj klasy Trojkat i Czworokat tak, by dziedziczyªy z klasy Wielokat. Przetestuj

program.

 W metodzie main(), oprócz testów z poprzedniego punktu, zbuduj tablic¦ klasy Wielokat

zapisz w niej kilka trójk¡tów i czworok¡tów zastosuj wszystkie zdeniowane w klasach

Trojkat i Czworokat metody do elementów tej tablicy.

Przeksztaª¢ poprzedni program wg poni»szych punktów

 Zbuduj interfejs okre±laj¡cy dowoln¡ gur¦, zapisz w nim wszystkie, wspólne dla gur

metody (te, które zostaªy zdeniowane w poprzednich programach).

 W klasie abstrakcyjnej Wielokat zaimplementuj ten interfejs.
 W metodzie testuj¡cej zbuduj tablic¦ klasy interfejsu, zapisz w niej kilka trójk¡tów i

czworok¡tów, zastosuj wszystkie zdeniowane metody do elementów tej tablicy.

background image

6

6. Napisz program, w którym po przyci±ni¦ciu lewego przycisku myszy b¦dzie rysowany trójk¡t.

Wszystkie narysowane w ten sposób trójk¡ty b¦d¡ widoczne na ekranie po dowolnej akcji na oknie.

Ostatnio narysowany trójk¡t b¦dzie miaª inny kolor ni» wszystkie poprzednie. Poni»ej przedstawio-

ne s¡ kolejne kroki wykonania tak sformuªowanego zadania. Stan poni»szych zrzutów ekranu ma

by¢ taki, gdy nast¡pi dowolna akcja na oknie. (waga 2)
Start programu

Po pierwszym klikni¦ciu

Po pi¡tym klikni¦ciu

Kolejne kroki:

Zbudow¢ JFrame, JPanel, narysow¢ jeden trójk¡t, naªo»y¢ JPanel na JFrame.

Zarejestrowa¢ panelu odpowiedniego sªuchacza.

Napisa¢ metod¦ wykonywan¡ po rozpoznaniu zdarzenia.

Nale»y przetestowa¢ dziaªanie programu w przypadku, gdy w metodzie paint() jest wywoªy-

wana metoda paint z klasy bazowej (super.paint();).

background image

7

7. Napisz program, który dla danej macierzy A o n wierszach i m kolumnach oraz wektor −

x ∈ R

m

policzy wektor −

y ∈ R

n

przez

y = A−

x

Algorytm mno»enia macierzy nale»y zrealizowa¢ w k w¡tkach (np. n = 100, k = 3). W¡tki na-

le»y zorganizowa¢ przez dziedziczenie z klasy Thread i przez implementacj¦ interfejsu Runnable.

Przetestuj program na niewielkich rozmiarów macierzy. Po otrzymaniu poprawnych rezultatów,

przetestuj zadanie na wi¦kszej macierzy (np: n = 100, m = 200, macierz mo»na wygenerowa¢) i

dla kilku ró»nych warto±ci k. Porównaj czas oblicze« dla testowanej liczby przyjmowanych w¡tków.

(waga 3)

background image

8

8. Napisz program, w którym na JFrame zostanie umieszczony na JPanel oraz 3 komponenty klasy

JButton. Na panelu b¦d¡ spadaªy w wybranej liczbie kulki. Kolory kulek b¦d¡ wybierane losowo.

Pr¦dko±ci spadania kulek b¦d¡ równie» losowe. Miejsca startu kulek b¦d¡ wybierane losowo. Poni»ej

umieszczone s¡ 2 zrzuty ekranu dla jednej kulki w dwóch ró»nych chwilach oraz 2 zrzuty ekranu

w dwóch ró»nych chwilach dla 10 kulek. Przyciski pozwalaj¡ na zatrzymanie spadania kulek, na

wznowienie pracy programu oraz zatrzymanie pracy programu. (waga 3)
Jedna kulka, pierwszy przykªad.

Jedna kulka, drugi przykªad.

Dziesi¦¢ kulek, pierwszy przykªad.

background image

9

Dziesi¦¢ kulek, drugi przykªad.

Spadanie kulek zapisz w w¡tku.
Uzupeªnij program o sterowan¡ przez mysz belk¦ wyªapuj¡c¡ kulki, zliczaj zªapane kulki.

background image

10

9. Napisz aplikacj¦ umo»liwiaj¡c¡ przegl¡danie zdj¦¢. Podstawowe funkcjonalno±ci tej aplikacji to:

wybór zdj¦¢ przez wskazanie pliku, wy±wietlenie zdj¦cia w panelu umo»liwiaj¡cym przewijanie,

skalowanie zdj¦¢, obracanie zdj¦¢ itp. (Waga 3)
Potrzebne elementy:

JMenuBar, JMenuItem, ActionListener

JScrollPane

JFileChooser, showOpenDialog(), APPROVE_OPTION, getSelectedFile(), getSelectedPath()

File

BueredImage, ImageIO.read()

JPanel, paint(), drawImage(), Image, getScaledInstance()

Kolejne kroki

JFrame + JMenuBar + JMenuItem + JFileChooser + JScrollPane

Do ka»dego JMenuItem doda¢ ActionListener i oprogramowa¢ zdarzenia.

Zaznaczenie pliku wymaga wykorzystania metody showOpenDialog(null), sprawdzenia rezul-

tatu wywoªania tej metody, je±li wynik jest równy staªej APPROVE_OPTION - plik wybrany,

to za pomoc¡ metody getSelectedFile() mo»na otrzyma¢ obiekt klasy File.

Obiekt klasy File pozwala na utworzenie obiektu klasy BueredImage przez przeczytanie go

za pomoc¡ metody ImageIO.read(). Utworzony obiekt klasy BueredImage nale»y wyswietli¢

na ekranie za pomoc¡ metody repaint().

Jpanel + paint() + drawImage(). Metoda paint() zapisana w klasie JPanel powinna wy±wietli¢

zdj¦cie.

Naªo»y¢ JPanel z obrazkiem na JFrame.

Metoda getScaledInstance() pozwala na skalownie obiektu klasy Image.

background image

11

10. Rozszerz program wykonuj¡cy podstawowe operacje na tabeli autor (program zawieraj¡cy interjejs

graczny) przedstawiony na wykªadzie o wykonanie podstawowych dziaªa« na tabeli przedmiot.

(Waga 3)


Wyszukiwarka

Podobne podstrony:
cwicz01rzecz
cwicz07rzecz
Cwicz09 02
cwicz06 07
Cwicz07KluczBD1TE1, Studia WIT - Informatyka, POB - Przetwarzanie obrazów
cwicz02 mat
Cwicz08 01
Cwicz06KluczBD1TE2(1), Studia WIT - Informatyka, POB - Przetwarzanie obrazów
Cwicz01
cwicz04
cwicz07 2
cwicz06rzecz
cwicz08
cwicz08 mat
Cwicz08Komendy
Cwicz05 01 id 124116 Nieznany
Cwicz04
Cwicz05KluczBD1TE2, Studia WIT - Informatyka, POB - Przetwarzanie obrazów

więcej podobnych podstron