Priprema za kontrolni: polimorfizam i nasleđivanje
Prvi zadatak polimorfizam, preklapanje operatora, rešiti zadatke preklapanjem operatora
Zadatak 1:Kompleksni brojevi:
Napraviti klasu koja opisuje kompleksne brojeve. Klasa treba da ima sledeće metode: parametrizovani konstrukor, za sabiranje dva kompleksna broja, za oduzimanje dva kompleksna broja, za množenje dva kompleksna broja, za deljenje dva kompleksna broja, za proveru jednakosti dva kompleksna broja (da li su jednaki ili su različiti), za proveru različitosti (da li su različiti ili su jednaki), , za proveru da li je jedan broj veći/manji od drugog broja, za konjugovanje kompleksnog broja i za ispis kompleknog broja. Za proveru napraviti sistem menija tako da se unose dva kompleksna broja. Napraviti zaštitu od deljenja sa nula kompleksnim brojem pri tome poređenje delioca obaviti sa nula kompleksnim brojem!
Console.WriteLine("\t\t\tProgram za obavljanje osnovnih aritmetičkih operacija sa kompleksnim brojevima");
Console.WriteLine("\t1)Sabiranje");
Console.WriteLine("\t2)Oduzimanje");
Console.WriteLine("\t3)Mnozenje");
Console.WriteLine("\t4)Deljenje");
Console.WriteLine("\t5)Konjugovanje");
Console.WriteLine("\t6)Provera jednakosti dva kompleksna broja");
Console.WriteLine("\t7)Provera razlicitosti dva kompleksna broja");
Console.WriteLine("\t8)Provera koji je veci od dva kompleksna broja");
Console.WriteLine("\t9)Kraj programa");
Console.Write("\tOdabetite opciju:");Opšti oblik funkcije kojom se definiše novi operator je:
public static tip_vrednosti operator novi_operator(lista_argumenata)
{
}
Zadatak 2 (matrice):
Napraviti klasu kvadratna matrica. Klasa treba da ima atribute dimenziju matrice (tako da bude javno svojstvo) i samu matricu. Klasa treba da ima sledeće metode: parametrizovani/podrazumevani konstrukor, za unos matrice (poziva se u okviru kontrukotra), za ispis matrice, za sabiranje dve matrice, oduzimanje dve matrice, za proveru jednakosti dve matrice broja (da li su jednake ili su različite), za proveru različitosti(da li su različite ili su jednake), transponovanje matrice i množenje matrice sklarom. Za proveru napraviti sistem menija. Da bi se obavile operacije nad dve matrice one moraju da budu istih dimenzija. Tako da u tim slučajevima je potrebno uneti samo dimenziju prve matrice.
Console.WriteLine("\t\t\tProgram za obavljanje osnovnih aritmetičkih operacija nad matricama");
Console.WriteLine("\t1)Sabiranje");
Console.WriteLine("\t2)Oduzimanje");
Console.WriteLine("\t3)Provera jednakosti dve matrice");
Console.WriteLine("\t4)Provera različitosti dve matrice");
Console.WriteLine("\t5)Transponovanje matrice");
Console.WriteLine("\t6)Množenje matrice skalarom");
Console.WriteLine("\t7)Kraj programa");
Console.Write("\tOdabetite opciju:");Drugi zadatak višenivovsko nasleđivanje
Zadatak1: Napisati program u kojem će se realizovati višestruko nasleđivanje gde će se osnovnu klasu pravougaonik naslediti klasa kvadrat a klasu kvadrat će naslediti klasa kocka. U klasama pravougaonik i kvadrat realizovati funkcije za izračuvanjanje obima i površine gde će se izvršiti redefinisanje (overriding ) ovih metoda u klasi kvadrat. U klasi kocka izvršiti redefinisanje metode površina i definisati novu metodu za izračunavanje zapremine kocke. U okviru funkcije Main testirati rad klasa.
(pravougoanik -> kvadrat -> kocka)
Console.WriteLine("\t\t\tProgram za izračunavanje obima i površine geo. figura");
Console.WriteLine("\t1)Pravougaonik");
Console.WriteLine("\t2)Kvadrat");
Console.WriteLine("\t3)Kocka");
Console.WriteLine("\t4)Kraj programa");
Console.Write("\tOdabetite opciju:");Zadatak2: Napisati program u kojem će se realizovati višestruko nasleđivanje gde će se osnovnu klasu trougao naslediti klasa jednakostranični trougao a klasu jednakostranični trougao će da nasledi klasa trostrana prizma. U klasama trougao i jednakostranični trougao realizovati funkcije za izračuvanjanje obima i površine gde će se izvršiti redefinisanje (overriding ) ovih metoda u klasi jednakostranični trougao. U klasi trostrana prizma izvršiti redefinisanje metode površina i definisati novu metodu za izračunavanje zapremine prizme. U okviru funkcije Main testirati rad klasa.
(trougao -> jednakostranicni trougao -> trostrana prizma)
Console.WriteLine("\t\t\tProgram za izračunavanje obima i površine geo. figura");
Console.WriteLine("\t1)Trougao");
Console.WriteLine("\t2)Jednakostranični trougao");
Console.WriteLine("\t3)Trostrana prizma");
Console.WriteLine("\t4)Kraj programa");
Console.Write("\tOdabetite opciju:");Zadatak3: Napisati program u kojem će se realizovati višestruko nasleđivanje gde će se osnovnu klasu romboid naslediti klasa pravougaonik a klasu pravougaonik će naslediti klasa kvadrat. U svim klasama realizovati funkcije za izračuvanjanje obima i površine gde će se izvršiti redefinisanje (overriding ) ovih metoda u odnosu na roditeljske klase. Klasa romboid je određena stranicama romboida i ostrim uglom između stranica. U okviru funkcije Main testirati rad klasa.
(romboid -> pravougaonik -> kvadrat)
Console.WriteLine("\t\t\tProgram za izračunavanje obima i površine geo. figura");
Console.WriteLine("\t1)Romboid");
Console.WriteLine("\t2)Pravougaonik");
Console.WriteLine("\t3)Kvadrat");
Console.WriteLine("\t4)Kraj programa");
Console.Write("\tOdabetite opciju:");Zadatak 4: Napisati program u kojem će se realizovati višestruko nasleđivanje. Potrebno je realizovati apstraktnu klasu geometrijska figura u okviru koje je potrebno deklarisati dve apstraktne metode za računanje obima i površine. Apstraktnu klasu treba da nasledi klasa trougao a nju treba da nasledi klasa jednakostranični trougao a klasu jednakostranični trougao će naslediti klasa trostrana prizma. U klasi jednakostranični trougao treba redefinisati funkcije za izračuvanjanje obima i površine. U klasi trostrana prizma izvršiti redefinisanje metode površina i definisati novu metodu za izračunavanje zapremine trostrane prizme. U okviru funkcije Main preko sistema menija testirati rad klasa.
(trougao -> jednakostranicni trougao -> trostrana prizma)
Console.WriteLine("\t\t\tProgram za izračunavanje obima i površine geo. figura");
Console.WriteLine("\t1)Trougao");
Console.WriteLine("\t2)Jednakostranični trougao");
Console.WriteLine("\t3)Trostrana prizma");
Console.WriteLine("\t4)Kraj programa");
Console.Write("\tOdabetite opciju:");Napomena: U glavnom programu koristeći korisnički izuzetak napraviti zaštitu kod unosa stranica trougla (običnog) tako da zbir bilo koje dve mora da bude veći od treće. Ukoliko to nije slučaj ispisati poruku i pitati korisnika da li želi ponovo da unese nove stranice inače prikazati rezultat.
Domaći: uraditi zadatak koristeći interfejs umesto apstraktne klase tako da interfejs nasledi i klasa trougao i klasa jednsakostranični trougao!
Zadatak 5:Napisati program u kojem će se realizovati višestruko nasleđivanje. Potrebno je realizovati interfejs geometrijska figura u okviru koje je potrebno deklarisati dve metode za računanje obima i površine. Interfejs treba da nasledi klasa romboid (određen uglom između dve stranice i dužinom stranica) I klasa pravougoanik, a klasu romboid treba da nasledi klasa pravougaonik a klasu pravougaonik će naslediti klasa kvadar. U klasi pravougaonik treba redefinisati funkcije za izračuvanjanje obima i površine. U klasi kvadar izvršiti redefinisanje metode površina i definisati novu metodu za izračunavanje zapremine kocke. U okviru funkcije Main preko sistema menija testirati rad klasa.
Console.WriteLine("\t\t\tProgram za izračunavanje obima i površine geo. figura");
Console.WriteLine("\t1)Romboid");
Console.WriteLine("\t2)Pravougaonik");
Console.WriteLine("\t3)Kvadar");
Console.WriteLine("\t4)Kraj programa");
Console.Write("\tOdabetite opciju:");Napomena: U glavnom programu koristeći korisnički izuzetak napraviti zaštitu kod unosa ugla roboida koji mora da bude manji ili jednak 90 stepeni. Ukoliko to nije slučaj ispisati poruku i pitati korisnika da li želi ponovo da unese nov ugao.
Domaći: uraditi zadatak koristeći apstraktnu klasu umesto interfejsa tako da apstraknu klasu nasledi klasa romboid!
Zadatak 6: Napisati program u kojem će se realizovati višestruko nasleđivanje. Potrebno je realizovati apstraktnu klasu geometrijska figura u okviru koje je potrebno deklarisati dve apstraktne metode za računanje obima i površine. Apstraktnu klasu treba da nasledi klasa pravougaonik a nju treba da nasledi klasa kvadrat a klasu kvadrat će naslediti klasa kocka. U klasi kvadrat redefinisati funkcije za izračuvanjanje obima i površine. U klasi kocka izvršiti redefinisanje metode površina i definisati novu metodu za izračunavanje zapremine kocke. U okviru funkcije Main preko sistema menija testirati rad klasa.
Console.WriteLine("\t\t\tProgram za izračunavanje obima i površine geo. figura");
Console.WriteLine("\t1)Pravougaonik");
Console.WriteLine("\t2)Kvadrat");
Console.WriteLine("\t3)Kocka");
Console.WriteLine("\t4)Kraj programa");
Console.Write("\tOdabetite opciju:");Napomena: U glavnom programu koristeći sistemski izuzetak napraviti zaštitu kod unosa stranica pravougoanika u pogrešnom format (recimo da je koirnsik uneo string). Ukoliko to nije slučaj ispisati poruku i pitati korisnika da li želi ponovo da unese nove stranice inače prikazati rezultat.
Domaći: uraditi zadatak koristeći interfejs umesto apstraktne klase tako da interfejs nasledi i klasa pravougoaniki klasa kvadrat!
Zadatak 7:Napisati program u kojem će se realizovati višestruko nasleđivanje. Potrebno je realizovati interfejs geometrijska figura u okviru koje je potrebno deklarisati dve metode za računanje obima i površine. Interfejs treba da naslede sve tri klase. Klasu trougao treba da nasledi klasa jednokraki trougao a klasu jednokraki trougao će naslediti klasa jednakostranični trougao. U svim klasama realizovati funkcije za izračuvanjanje obima i površine gde će se izvršiti redefinisanje (overriding) ovih metoda u odnosu na roditeljske klase. U okviru funkcije Main preko sistema menija testirati rad klasa.
Console.WriteLine("\t\t\tProgram za izračunavanje obima i površine geo. figura");
Console.WriteLine("\t1)Trougao");
Console.WriteLine("\t2)Jednakokraki trougao");
Console.WriteLine("\t3)Jednakostranicni trougao");
Console.WriteLine("\t4)Kraj programa");
Console.Write("\tOdabetite opciju:");Napomena: U glavnom programu koristeći korisnički izuzetak napraviti zaštitu kod unosa stranica trougla (običnog) tako da zbir bilo koje dve mora da bude veći od treće. Ukoliko to nije slučaj ispisati poruku i pitati korisnika da li želi ponovo da unese nove stranice inače prikazati rezultat.
Domaći: uraditi zadatak koristeći apstraktnu klasu umesto interfejsa tako da apstraknu klasu nasledi klasa trougao!
Zadatak3: apstraktne klase, interfejs
šah, potapanje brodova
Koristeći nasleđivanje napraviti program šah. U okviru programa napraviti apstraktnu klasu figura koja u sebi sadrži x i y koordinatu pozicije figure i oznaku figure, parametrizovani konstruktor(e) i apstraktne metodu pomeranje(služi za pomeranje figure po tabli). Ovu klasu treba da nasledi klasa lovac koja treba da sadrži parametrizovani konstruktor i u okviru koje treba da se realizuje ova metoda. Program takođe treba da sadrži klasu tabla koja će kroz podrazumevani konstruktor da inicijalizuje praznu tablu i koja će omogućiti prikaz table posle pozicioniranja i pomeranja figure lovca. Takođe u ovoj klasi treba da se nalazi metoda pozicioniraj koja služi za pozicioniranje figure na tabli. U okviru funkcije main omogućiti pozicioniranje lovca (na slučajnu poziciju) a zatim i njegovo pomernje po tabli dokle god to korisnik želi. Kroz obradu izuzetaka ne dozvoliti pozicioniranje lovca na pogrešno polje i druge potencijalne greške!
Console.WriteLine("Pomeranje lovca!!!");
Console.WriteLine("1) Gore levo");
Console.WriteLine("2) Gore desno");
Console.WriteLine("3) Dole levo");
Console.WriteLine("4) Dole desno");
Console.WriteLine("5) Kraj");
Console.Write("Odaberite jednu od opcija:");
- Realizovati ovaj zadatak da nasleđene figure budu: top,skakač, kralj, kraljica, pešak.
- Umesto apstraktnih klasa koristite interfejs za realizaciju!
Koristeći nasleđivanje napraviti program potapanje brodova. U okviru programa napraviti interfejs figura koja u sebi sadrži metode repozicioniraj (služi za pozicioniranje i repozicioniranje figure na tabli) i gadjaj (treba da omogući gađanje oblika). Ovaj interfjes treba da nasledi klasa Loblik (ima 5 polja i u obliku je slova L) koja treba da sadrži x i y koordinatu pozicije figure (gornji levi ćošak), parametrizovani konstruktor i u okviru nje treba da se realizuju metode deklarisane u interfejsu. Program takođe treba da sadrži klasu tabla koja će kroz podrazumevani konstruktor i posebnu funkciju da inicijalizuje praznu tablu , funkciju koja će omogućiti prikaz table posle pozicioniranja i iscrtavanje oblika, funkciju pozicioniraj koja će da postavi oblik na tablu i funkciju koja omogućava proveru da li je oblik pogođen. U okviru funkcije main omogućiti pozicioniranje oblika (na slučajnu poziciju) a zatim i gađanje oblika od strane korisnika. Ukoliko je korisnik pogodio oblik, oblik treba da se pojavi na novom slučajnom mestu. Uvek pitati korisnika da li zeli ponovo da gadja oblik. Ako ne želi izaći iz programa.
Napraviti zaštitu od izuzetaka i to od unosa podataka u pogrešnom formatu i gađanja figure van polja table.
Realizovati ovaj zadatak koristeći apstraktnu klasu da nasleđene figure budu neki drugi oblici (npr plus).
Kriterijum:
35-64 ocena:2
65- 94 ocena:3
95 -124 ocena:4
125-160 ocena:5
Prvi i drugi zadatak nose po 40 poena
Treći zadatak nosi 80 poena
3ITS - Priprema za kontrolni: polimorfizam i nasleđivanje
By lanik
3ITS - Priprema za kontrolni: polimorfizam i nasleđivanje
- 333