• Nie Znaleziono Wyników

W tym samym projekcie utwórz klasę o nazwie SymbolNewtona dziedziczącą po klasie Zadanie. Celem klasy SymbolNewtona jest obliczenie symbolu Newtona według wzoru:

N/A
N/A
Protected

Academic year: 2021

Share "W tym samym projekcie utwórz klasę o nazwie SymbolNewtona dziedziczącą po klasie Zadanie. Celem klasy SymbolNewtona jest obliczenie symbolu Newtona według wzoru:"

Copied!
5
0
0

Pełen tekst

(1)

Klasy abstrakcyjne

Zad.23. Możemy powiedzieć, że rozwiązanie standardowego zadania matematycznego składa się z trzech części: wprowadzenia danych, znalezienia rozwiązania i wypisania wyników (w tej kolejności). Przykładowa klasa opisująca zadanie może więc wyglądać:

p u b l i c c l a s s Z a d a n i e {

v o i d wprowadzDane ( ) { // d e f i n i c j a metody 1 }

v o i d z n a j d z R o z w i a z a n i e ( ) { // d e f i n i c j a metody 2 }

v o i d w y p i s z W y n i k i ( ) { // d e f i n i c j a metody 3 }

v o i d r o z w i a z ( ) { // d e f i n i c j a metody 4

wprowadzDane ( ) ; //wywo ł a n i e metody 1

z n a j d z R o z w i a z a n i e ( ) ; //wywo ł a n i e metody 2 w y p i s z W y n i k i ( ) ; //wywo ł a n i e metody 3 }

}

Metody wprowadzDane, znajdzRozwiazanie, wypiszWyniki mają puste implementacje, ponieważ na tym etapie (jeszcze bez znajomości samego zadania) nie jesteśmy w stanie podać, jakie dane należy wprowadzić, jakiej metody użyć, aby otrzymać rozwiązanie, ani też jakie dane wyjściowe będą wypisywane. Nazwy tych metod muszą się jednak pojawić, ponieważ są one wykorzystywane w zwykłej (nieabstrakcyjnej) metodzie rozwiaz.

Dzięki metodzie rozwiaz użytkownik nie musi pamiętać trzech nazw metod, ani kolejności w jakiej należy je wywoływać.

(2)

Klasa Zadanie mogłaby być z powodzeniem klasą abstrakcyjną:

p u b l i c a b s t r a c t c l a s s Z a d a n i e { a b s t r a c t v o i d wprowadzDane ( ) ; a b s t r a c t v o i d z n a j d z R o z w i a z a n i e ( ) ; a b s t r a c t v o i d w y p i s z W y n i k i ( ) ; v o i d r o z w i a z ( ) {

wprowadzDane ( ) ; z n a j d z R o z w i a z a n i e ( ) ; w y p i s z W y n i k i ( ) ; }

}

Wpisz kod abstrakcyjnej klasy Zadanie do pliku Zadanie.java.

W pliku Main.java umieść poniższy kod i spróbuj go skompilować.

p u b l i c c l a s s Main {

p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { Z a d a n i e z = new Z a d a n i e ( ) ;

} }

Wyjaśnij efekt tej kompilacji.

(3)

W jaki sposób zatem wykorzystywać metody i klasy abstrakcyjne? Należy zdefiniować klasę potomną, która uzupełni definicje metod abstrakcyjnych klasy Zadanie, np:

i m p o r t j a v a . u t i l . Random ;

p u b l i c c l a s s UkladRownan e x t e n d s Z a d a n i e { // a x + by = e

// c x + dy = f

i n t a , b , c , d , e , f ; f l o a t x , y ;

S t r i n g s ;

v o i d wprowadzDane ( ) { Random r = new Random ( ) ;

a = r . n e x t I n t ( 9 ) + 1 ; b = r . n e x t I n t ( 9 ) + 1 ; e = r . n e x t I n t ( 9 ) + 1 ; c = r . n e x t I n t ( 9 ) + 1 ; d = r . n e x t I n t ( 9 ) + 1 ; f = r . n e x t I n t ( 9 ) + 1 ; S y s t e m . o u t . p r i n t l n ( a + " x + " + b + " y = " + e ) ;

S y s t e m . o u t . p r i n t l n ( c + " x + " + d + " y = " + f ) ; }

v o i d z n a j d z R o z w i a z a n i e ( ) { f l o a t W = a ∗d − b∗ c ; f l o a t Wx = e ∗d − b∗ f ; f l o a t Wy = a ∗ f − e ∗ c ; i f (W != 0 ) {

x = Wx / W;

y = Wy / W;

}

e l s e s = " B r a k l u b n i e s k o n c z e n i e w i e l e r o z w i a z a n " ; }

v o i d w y p i s z W y n i k i ( ) {

i f ( s != n u l l ) S y s t e m . o u t . p r i n t l n ( s ) ;

e l s e S y s t e m . o u t . p r i n t l n ( " x = " + x + " , y = " + y ) ; }

(4)

Przetestuj klasę Zadanie i UkladRownan w klasie Main:

p u b l i c c l a s s Main {

p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { UkladRownan u = new UkladRownan ( ) ; u . r o z w i a z ( ) ;

} }

W tym samym projekcie utwórz klasę o nazwie SymbolNewtona dziedziczącą po klasie Zadanie. Celem klasy SymbolNewtona jest obliczenie symbolu Newtona według wzoru:

n k



= n!

k!(n − k)!

dla danych wejściowych n i k, takich że 0 ≤ k ≤ n.

Do klasy SymbolNewtona możesz dodać dodatkową metodę obliczającą silnię przekazanej w parametrze liczby naturalnej:

l o n g s i l n i a ( i n t p ) { // t r e s c metody }

(5)

Zad.24. Zdefiniuj klasę bazową Liczba, w której znajdą się metody abstrakcyjne wczytaj - nadająca wartość (np. losową) liczbie,

wyswietl - wyświetlająca liczbę

obliczKwadrat - obliczająca kwadrat liczby.

Utwórz klasy Rzeczywista i Zespolona dziedziczące po klasie Liczba. Do klas pochodnych wprowadź odpowiednie pola reprezentujące wartości tych liczb.

Przetestuj napisany kod w klasie Main, np:

p u b l i c c l a s s Main {

p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { R z e c z y w i s t a r = new R z e c z y w i s t a ( ) ; Z e s p o l o n a z = new Z e s p o l o n a ( ) ; L i c z b a l i c z ;

l i c z = r ; l i c z . w c z y t a j ( ) ; l i c z . w y s w i e t l ( ) ; l i c z . o b l i c z K w a d r a t ( ) ;

l i c z = z ; l i c z . w c z y t a j ( ) ; l i c z . w y s w i e t l ( ) ; l i c z . o b l i c z K w a d r a t ( ) ; }

}

Cytaty

Powiązane dokumenty

Osoba pisząca reportaż wybiera autentyczne zdarzenie i udaje się na miejsce aby zebrać materiał.. Rozmawia się ze świadkami, którzy widzieli

Określono, ile czasu trwają poszczególne czynności oraz jakie zasoby i koszty są z nimi związane.. Informacje dotyczące przedsięwzięcia zestawiono

Program modułu 311[50].O1 „Podstawy mechatroniki” składa się z ośmiu jednostek modułowych i obejmuje ogólno zawodowe treści kształcenia z zakresu bezpieczeństwa i higieny

Ściągnij z bazy WIOD dane (dla Polski) dotyczące emisji zanieczyszczeń do atmosfery (http://www.wiod.org/database/eas13, plik POL_AIR).. Aby niewielkim nakładem „przenieść” dane

Pewien układ gospodarczy składa się z trzech gałęzi. Gałąź pierwsza zużywa w procesie produkcji własne wyroby o wartości 20 mln zł, produkty gałęzi II o wartości 40 mln

Pewien układ gospodarczy składa się z trzech gałęzi. Gałąź I zużywa w procesie produkcji swoje własne wyroby o wartości 20 mln zł, produkty gałęzi II o wartości 40 mln zł

Proszę powiedzieć, z czego składa się kartoteka wyszukiwawcza w metodzie list prostych bez modyfikacji. Proszę nie omawiać procesu zakładania kartoteki, a jedynie to z czego się

Projekt jest to przedsięwzięcie, na które składa się zespół czynności, które charakteryzują się tym, że mają:.. 