Zadania do wykonania



Zad. 1 (3 p.)

Description: Description: rKorzystając z dostarczonej definicji klasy Para napisać program, który ustala wartości dwóch par liczb zgodnie z podanymi przez użytkownika w kolejnych dialogach wejściowych wartościamu, po czym pokazuje wynik sumowania tych par w oknie komunikatów w postaci:
Para 1 = (a1, b1)
Para 2 = (a2, b2)
Suma  = (s1, s2)

Uwaga: w klasie Para dostępne są konstruktory:
Para()
Para(int, int)
Para(int)

oraz metody:

void set(int,int) // ustala wartośc pary
Para add(Para) // dodaje pary i jako wynik zwraca parę sumaryczną
String toString() // zwraca wartość pary w postaci łańcucha znakowego
boolean equals(Object o) //  zwraca true, jeśli o jest klasy Para i ma takie same składniki
                                     //  jak para na rzecz której wywołano metodę equals;
                                     //  zwraca false w przeciwnym razie

Zob. też definicję klasy Para w pliku Para.java



Zad. 2 (3 p.)

W klasie String zdefiniowane są m.in. metody:

Użyć tych metod w programie który sumuje dlugość wprowadzanych w dialogach wejściowych 5 napisów, wypisuje je na konsoli dużymi literami i dla każdego napisu stwierdza czy zawiera on podnapis java (pisany dowolnymi literami).



Zad. 3 (1 p.)

Sprawdzić jaki wynik da następujący fragment programu:

String s = "A"
int n = 1, m = 2;
String out;
out = n + m; // jak zapewnić, by out zawierała napis 3?
out = s + n + m; // jak zapewnić, by out zawierał napis A3 ?



Zad 4 (2 p.)

Napisać program, który  pozwala na wprowadzenie dwóch par liczb całkowitych (obiekty klass Para)  a następnie dwóch napisów; po czym stwierdza, czy pary są takie same i czy napisy są takie same.



Zad 5. (2 p.)

Użytkownik wprowadza w dialogu wejściowym jakieś napisy.
Wprowadzanie kończy się, gdy użytkownik wpisał słowo "koniec" (dowolnymi literami) lub wcisnął "Cancel".
Wypisać ponumerowane od 1 napisy.




Zad 6 (3 p.)

Zapisać definicję  trzech wymyślonych przez siebie klas.

 


Zad 7 (6 p.)
Zdefiniować i przetestować w programie pełniejszą wersję klasy Para.

Pola klasy, reprezentujące składniki pary nazwać: first i second.
Inicjalnie ich wartości mają być równe 1.

Każda para może mieć swoją nazwę (np. "Temperatury dzień/noc", "rozmiary"), ale nie musi.
Zatem potrzebne będzie też pole name.
Jeśli przy tworzeniu pary nie podaliśmy nazwy, to  nazwą będzie "bez nazwy".


Konstruktory:

// bez nazw par
Para()
Para(int)
Para(int, int)
Para(Para)

// z nazwami par
Para(String)
Para(String, int)
Para(String, int, int)
Para(String, Para)


Metody:

int getFirst()   // zwraca piewrszy składnik pary
int getSecond() // zwraca drugi składnik pary
String getName() // zwraca nazwe pary
void setFirst(int)   // zmienia piewrszy składnik
void setSecond(int) // zmienia drugi składnik
void setName(String) // zmienia nazwę pary

Para add(Para)  // dodaje dwie pary i zwraca nową parę jako wynik (nazwa tej pary to:
                          "suma par [nazwa1] i [nazwa2]")
Para add(int)     // dodaje do obu składników pary podaną jako argument liczbę
                        // i zwraca nową wynikową parę
                        // (nazwa tej pary to "suma pary [nazwa] i liczby N"
Para add( int, int) // dodaje do odpowiednich składników pary podane jako argument liczby

podobne metody - dla operacji mnożenia par

void increase()  // zwiększa o 1 oba skłądniki pary
void decrease() // zmniejsza o 1 oba składniki pary

String toString() // zwraca napis reprezentujący parę
Postać napisu:

Para nr N [nazwa]  = ( first , second )

gdzie N - kolejny numer pary (pary są numerowane od 1 w kolejności ich tworzenia w programie)
nazwa - nazwa pary


Klasę Para przetestować na różne możliwe sposoby w innej klasie (np. ParaTest).

Wyjaśnienie:

Numer pary zawarty powinien być w obiekcie-para (każda para ma swój numer);
numery są nadawane kolejno, przy tworzeniu par (a więc w konstruktorze) wg kolejności powstawania par w programie.


Pomoc:
dla uproszczenia programowania można (i należy) wywoływać konstruktory z konstruktorów.
Aby wywołać inny konstruktor z danego konstruktora w pierwszym wierszu konstruktora piszemy:
    this(argumenty_wywołania);