Zad. 1 (3 p.)
Korzystają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);