You are on page 1of 6

grupa VII: Wykonaj poniŜsze polecenia i zilustruj odpowiedzi odpowiednimi przykładami: 1.

Czym róŜni się funkcjonalnie i konstrukcyjnie aplikacja od apletu? Podaj przykłady aplikacji, apletu, sposobu ich kompilacji i uruchamiania. 2. Do czego słuŜą interfejsy? Podaj przykład jak utworzyć własny interfejs i zastosować go w programie. 3. Czym róŜni się przeciąŜanie metod od przesłaniania metod? 4. Program 4.1 Utwórz interfejs Chorujacy posiadający metody zachorowal(choroba, data), czyChory(), naCoChory() 4.2 Utwórz klasę Pacjent posiadającą właściwości interfejsu Chorujący oraz metodyKonstruktor pobierający informacje o nazwisku, wieku, peselu i NIP-ie 4.2.1 Pola klasy przechowujące te informacje 4.2.2 Metodę zachorował(choroba, data) sprawdzającą czy istnieje obiekt klasy KartaPacjenta, jeśli tak to wstawiającą do karty informacje o chorobie, jeśli nie to tworzący obiekt tej klasy (opis klasy poniŜej) oraz wstawiający do karty informacje o chorobie 4.2.3 Metodę naCoChory() wyświetlającą informację o bieŜących chorobach pacjenta na podstawie karty (poprzez metodę dajSchorzenia) 4.3 Klasę KartaPacjenta pobierającą w konstruktorze Pacjenta z którym będzie związana, numer karty oraz datę utworzenia, 4.3.1 Metodę dodajChorobe(choroba,data) dodającą do tablicy dwuwymiarowej 3x100 łańcuchów znaków informację o nazwie choroby jako element w pierwszym wierszu tablicy, datę zachorowania jako element w drugim wierszu tablicy oraz wartość T lub N w trzecim wierszu jako znacznik czy Pacjent w danym momencie choruje na tą chorobę. Kolejne schorzenia mają występować w kolumnach tablicy 4.3.2 Metodę dajSchorzenia() wyświetlająca informacje o bieŜących chorobach, tzn. nazwę i datę zachorowania 4.3.3 Metodę wyleczono(choroba) zmieniającą wartość T na N dla podanego schorzenia 4.4 Utworzyć klasę programu o nazwie Rejestracja, 4.4.1 Utwórz kilka obiektów typu Pacjent, wprowadź dla kaŜdego informacje o kilku chorobach 4.4.2 Wyświetl informacje na co są chorzy poprzez wywołanie odpowiedniej metody Pacjenta 4.4.3 Wprowadź wyleczenie jednego schorzenia i wyświetl informacje o chorobach ponownie ---------------------------------odp: interface Chorujacy { void zachorowal(String choroba,String data); void czyChory(); void naCoChory(); } class Pacjent implements Chorujacy { public String nazwisko; int wiek; String pesel; String nip; public KartaPacjenta a; Pacjent(String nazwisko,int wiek,String pesel,String nip) { this.nazwisko=nazwisko; this.wiek=wiek; this.pesel=pesel; this.nip=nip; } public void zachorowal(String choroba,String data) { if(a==null) { a=new KartaPacjenta(this,data,wiek); a.dodajChorobe(choroba,data); } else { a.dodajChorobe(choroba,data); } } public void czyChory() { } public void naCoChory() { a.dajSchorzenia(); } } class KartaPacjenta { int numk; String data; Chorujacy b; String choroby[][]=new String [3][100]; int ilch=0; KartaPacjenta(Chorujacy b,String data,int numk) { this.b=b; this.data=data; this.numk=numk; } public void dodajChorobe (String choroba,String data) { choroby[0][ilch]=choroba; choroby[1][ilch]=data; choroby[2][ilch]=new String("T"); ilch++; } public void dajSchorzenia() { for(int i=0;i<ilch;i++) { if(choroby[2][i].equals("T")) System.out.println(choroby[0][i]+" "+choroby[1][i]); } } public void wyleczono(String choroba) { for(int i=0;i<ilch;i++) { if(choroby[0][i].equals(choroba)) { choroby[2][i]="N"; break; } } }

} public class Rejestracja { public static void main(String[] args) { Pacjent a=new Pacjent("ziomal",13,"44443","3333"); a.zachorowal("aids", "14.05.2008"); a.zachorowal("syfilis","14.06.2008"); a.zachorowal("grypa","14.07.2008"); a.naCoChory(); a.a.wyleczono("syfilis"); // TODO Auto-generated method stub a.naCoChory(); } } *************************************************************** *************************************************************** grupa IV Napisz program: 1)Utwórz klasę Filtr posiadającą metodę abstrakcyjną filtruj(double[]) zwracającą wektor typu double. 2)Utwórz dwie klasy FiltrG i FiltrD reprezentujące filtry dolnoprzepustowy i górnoprzepustowy pochodne po klasie Filtr. 3)Utwórz metody do filtrowania w klasach pochodnych: dolnoprzepustowa wykonuje sumy w kolejnych parach i zapisuje wynik w miejscu pary a górnoprzepustowa róŜnice 4)Utwórz interfejs Sortujący posiadający metody sortujWGore(double[]) i sortujWDol(double[]) ktorych zadaniem bedzie posortowanie wartości od największej do najmniejszej i odwrotnie (nie korzystać z klasy Arrays) 5)Do klas FiltrG i FiltrD dodaj utworzony interfejs 6)program tworzy 2 obiekty FiltrG i FiltrD i filtruje dany wektor double[] równolegle filtrem dolno i górnoprzepustowym. 7)Wykorzystując utworzone funkcje sortowania wyświetlić wartość największą i najmniejszą przefiltrowanych wektorów. interface Sortujacy { void sortujWGore(double[] wektor); void sortujWDol(double[] wektor); } abstract class Filtr { abstract double [] filtruj(double[] wektor); } class FiltrG extends Filtr implements Sortujacy { public double [] filtruj(double[] wektor) { int i=0; double temp[]=new double[wektor.length/2]; for(int a=0;a<temp.length;a++) { temp[a]=wektor[i]-wektor[i+1]; i=i+2; } return temp; } public void sortujWGore(double[] wektor) { double pom; for(int i=wektor.length;i>=0;i--) { for(int j=0;j<i-1;j++) { if(wektor[j]<wektor[j+1]) { pom=wektor[j]; wektor[j]=wektor[j+1]; wektor[j+1]=pom; } } }

} public void sortujWDol(double[] wektor) { double pom; for(int i=wektor.length;i>=0;i--) { for(int j=0;j<i-1;j++) { if(wektor[j]>wektor[j+1]) { pom=wektor[j]; wektor[j]=wektor[j+1]; wektor[j+1]=pom; } } } } } class FiltrD extends Filtr implements Sortujacy { public double [] filtruj(double[] wektor) { int i=0; double temp[]=new double[wektor.length/2]; for(int a=0;a<temp.length;a++) { temp[a]=wektor[i]+wektor[i+1]; i=i+2; } return temp; } public void sortujWGore(double[] wektor) { double pom;

for(int i=wektor.length;i>=0;i--) { for(int j=0;j<i-1;j++) { if(wektor[j]<wektor[j+1]) { pom=wektor[j]; wektor[j]=wektor[j+1]; wektor[j+1]=pom; } } }

} public void sortujWDol(double[] wektor) { double pom; for(int i=wektor.length;i>=0;i--) { for(int j=0;j<i-1;j++) { if(wektor[j]>wektor[j+1]) { pom=wektor[j]; wektor[j]=wektor[j+1]; wektor[j+1]=pom; } } }

}

}

public class Glowna {

public static void main (String[] args) { // TODO Auto-generated method stub Filtr a= new FiltrD(); Filtr b= new FiltrG(); double wektor[]={10,7,3,4,20,6}; double temp[]; temp=a.filtruj(wektor); ((Sortujacy)a).sortujWDol(temp); System.out.println(temp[0]); ((Sortujacy)a).sortujWGore(temp); System.out.println(temp[0]); temp=b.filtruj(wektor); ((Sortujacy)b).sortujWDol(temp); System.out.println(temp[0]); ((Sortujacy)b).sortujWGore(temp); System.out.println(temp[0]);

} } *********************************************************** *********************************************************** Wykonaj poniŜsze polecenia i zilustruj odpowiedzi odpowiednimi przykładami: 1. Czym róŜni się funkcjonalnie i konstrukcyjnie aplikacja od apletu? Podaj przykłady aplikacji, apletu, sposobu ich kompilacji i uruchamiania. 2. Do czego słuŜą interfejsy? Podaj przykład jak utworzyć własny interfejs i zastosować go w programie. 3. Co to jest metoda wewnetrzna i lokalna. Podaj przyklady ************************************************************** ************************************************************** grupa 1. Pisane z pamięci. Mam nadzieję, Ŝe nie wdadzą się Ŝadne nieścisłości. 1. Utwórz klasę Punkt zawierającą tablicę jednowymiarową ze współrzędnymi punktu. 2. Utwórz klasę abstrakcyjną Funkcja z metodą abstrakcyjną oblicz(Punkt p) 3. Utwórz klasę FunkcjaKwadratowa dziedziczącą po Funkcja z polami zawierającymi współczynniki i konstruktor inicjujący te współczynniki. Zdefiniuj metodę oblicz dla tej klasy i stwórz metodę przeciąŜoną oblicz(double) zwracającą wartość wartość funkcji w punkcie. 4. dodaj metodę obliczającą pierwiastki równania kwadratowego. (Funkcja typu void wyświetlająca pierwiastki. NaleŜy rozpatrzyć wszystkie przypadki) 5. W programie utwórz 2 zmienne typu Punkt, 2 zmienne typu FunkcjaKwadratowa. Wywołaj dla obu zmiennych FunkcjaKwadratowa kaŜdą z metod oblicz dla kaŜdego punktu. wywołaj metody liczące pierwiastki dla obu zmiennych.

import java.util.*; public class Main { public void metoda(int liczba){ System.out.println("Liczby od 0 do " + liczba + ":"); for(int i = 0; i <= liczba; i++){ System.out.print(i + ", "); } } public Main() { } public static void main(String[] args) { Main main = new Main(); main.metoda(Integer.parseInt(args[0])); //tworzymy drapiezce: Drapiezca gepard = new Drapiezca(4, 55, "Gepard"); gepard.dodajPozywienie("Zebra"); gepard.dodajPozywienie("Antylopa"); gepard.dodajPozywienie("Zyrafa"); //tworzymy roslinozerce: Roslinozerca antylopa = new Roslinozerca(4, 60, "Antylopa", "Trawa"); Roslinozerca zebra = new Roslinozerca(4, 120, "Zebra", "Trawa"); Roslinozerca zyrafa = new Roslinozerca(4, 360, "Zyrafa", "Liscie"); Roslinozerca nosorozec = new Roslinozerca(4, 550, "Nosorozec", "Woda"); Collection c = new ArrayList(); c.add(antylopa); c.add(zebra); c.add(zyrafa); c.add(nosorozec); Iterator it = c.iterator(); int licznik = 0; //w petli wykonujemy metode poluj(): while(it.hasNext()){ if(gepard.poluj((Roslinozerca)it.next())) licznik ++; } System.out.println("\nZjadlem " + licznik + " zwierzaki!"); } }

class Drapiezca extends Zwierze { private String [] typ_pozywienia; Drapiezca(int ilosc_nog, float waga, String gatunek){ super(ilosc_nog, waga, gatunek); typ_pozywienia = new String[10]; } void dodajPozywienie(String pozywienie){ int i = 0; //znajdujemy pierwsze wolne miejsce: while((typ_pozywienia[i] != null) && (i < 10)) i++; if(i < 10) typ_pozywienia[i] = pozywienie; else System.out.println("Innych nie jadam!"); }

boolean poluj(Roslinozerca r){ String gatunek = r.dajGatunek(); int i = 0; boolean znal = false; while((i < 10) && (!znal)){ if(gatunek == typ_pozywienia[i]){ r.upolowany(); znal = true; } i++; }// zwraca sukces polowania - przydatne przy zliczaniu upolowanych zwierzat if(znal) return true; else return false; } } class Roslinozerca extends Zwierze { private String typ_pozywienia; private boolean zjedzony; Roslinozerca(int ilosc_nog, float waga, String gatunek, String typ_pozywienia){ super(ilosc_nog, waga, gatunek); this.typ_pozywienia = typ_pozywienia; zjedzony = false; } void upolowany(){ zjedzony = true; } } class Zwierze { protected int ilosc_nog; protected float waga; protected String gatunek; public Zwierze(int ilosc_nog, float waga, String gatunek){ this.ilosc_nog = ilosc_nog; this.waga = waga; this.gatunek = gatunek; } String dajGatunek(){ return gatunek; }

}