You are on page 1of 6

2.

Objektnoorijentisanoprogramiranjeu programskomjezikuDELPHI
Zadatak1.DefinisatiklasuTTackakojasadrisledeapolja: Podatkexiytipadoublekojipredstavljajukoordinatetake; KonstruktorNapravikojiimadvaargumentaxiytipadouble; ProceduraPostavi(x,y:double)kojapostavljavrednostixiykoordinate; ProceduraTranslacija(dx,dy:double)kojavritranslacijutakezazadativector; Procedura Rotacija(a:double)kojomsetakarotiraokokoordinatnogpoetkazaugao a usmerukazaljkenasatu. ProceduraSimetrijakojomsetakapreslikavaunjojcentralnosimetrinu; ProceduraIzvestajzaispisivanjekoordinatatake. Uglavnomprogramuuitatikoordinatejednetake,transliratijezavektor(2,3)inakontogarotirati zaPi/2.Poslesvakeoperacijeispisivatikoordinatetake. Zadatak2.Konstruisatiklasu TKrugkojanasledjujeklasu TTackaizpredhodnogzadatkaikojaima sledeapolja: Podatakrkojipredstavljapoluprenikkruga. Procedura Postavi(x,y,r:double) kojom se postavljaju vrednosti koordinata centra i poluprenikakruga; Procedura Postavi(r:double)kojomsepostavljasamopoluprenik; ProceduraIspiskojomseispisujecentaripoluprenikkruga. Uglavnomprogramuuitatikoordinatecentraipoluprenikjednogkruga,postavitipoluprenikna 5 kaoikoordinatena1i3.Poslesvakeakcijetampativrednostikoordinataiprenika. Zadatak3.Realizacijaklasekompleksnihbrojeva.Klasa TComplex bitrebalodasadridvapodatka lanatipadouble,kojipredstavljajurealniiimaginarnideokompleksnogbroja.Metodiklasesu: procedura add(b2:complex), kojom se vri sabiranje sa zadatim kompleksnim brojem kao parametrom, procedura sub(b2:complex), kojom se vri oduzimanje od zadatog kompleksnog broja (parametar), funkcijafRe,kojomseizdvajarealnideokompleksnogbroja, funkcijafIm,kojomseizdvajaimaginarnideokompleksnogbroja, proceduraPrint(),kojasluizaispiskompleksnogbroja, Konstruktor Make(real,imag:double) kojiformiranovkompleksnibrojzazadatirealnii imaginarnideo. Uglavnomprogramuuitatidvakompleksnabrojaiispisatinjihovzbirirazliku. 1

Zadatak 4. Definisati klasu TRazlomak koja e omoguiti osnovne operacije nad razlomcima. Klasa TRazlomaksadrisledeapolja: dvaprivatnapodatkacelibrojevibrojilaciimenilac, procedurakojimseispisujerazlomak, procedurazaskraivanjerazlomka, proceduraZbir(b2:razlomak) zasabiranjedvarazlomka, konstruktorsadvaparametra(brojilaciimenilac). Uglavnomprogramuuitatidvarazlomka,skratitiihiispisatinjihovevrednostiposleskraivanjakaoi vrednostzbiraovadvarazlomka(takodjeposleskraivanja). Zadatak5.KreiratiklasuTDatumzaradsadatumimakojaimasledeustrukturu: privatnilanovi: d,m,gkojipredstavljajudan,mesecigodinu; funkcijaBrdanakojaizraunavabrojdanaumesecu; javnilanovi: funkcija Prestupnakojaproveravadalijegodinaprestupna(vraa Trueakojestea False akonije); konstruktorNapravi(d,m,g:integer)kojipostavljadan,mesecigodinu; proceduraSutrakojinalazisutranjidatum; proceduraJucekojinalaziprethodnidatum; proceduraIspiskojiispisujedatum. Napisatitestprogram. Zadatak6. a)Napisatiprogramukomesedefinieklasa TPoligon,kojomseopisujepravilanpoligon.Ovaklasa koristiupoljupodataka: Duinustrane(DuzinaStranetipadouble)ibrojstrana(BrojStranatipainteger). Kaometodeklasedefinisati: FunkcijuPreuzmiStranu kojakaorezultatvraazadatuduinustrane. Proceduru PostaviStranu kojapromenljivoj DuzinaStrane dodeljujeprosleenurealnu vrednost. FunkcijuPreuzmiBrojStrana kojapreuzimadefinisanbrojstranapoligona. Funkciju PostaviBrojStrana kojapromenljivoj BrojStrana dodeljujezadatucelobrojnu vrednost. VirtuelnuproceduruIspisiNaziv. b)KaopodklasuklasePoligon definisatiklasuTrougao kojaraspolaesledeimmetodama. FunkcijuPovrsinaTrougla kojaseraunapoformuli: DuzinaStrane*DuzinaStrane* 3 / 2 . FunkcijuObimTrougla kojaraunanjegovobimpoformuli3*DuzinaStrane. ImplementirativirtuelnuproceduruIspisiNazivkojaedaispisujeTrougao. c)KaopodklasuklasePoligon definisatiklasuKvadrat kojaraspolaesledeimmetodama. FunkcijuPovrsinaKvadrata kojaseraunapoformuliDuzinaStrane*DuzinaStrane. FunkcijuObimKvadrata kojaraunanjegovobimpoformuli4 * DuzinaStrane. 2

Implementirati virtuelnu proceduru IspisiNaziv koja e da ispisuje Kvadrat. U glavnom programuuitatijedantrogaoikvadratiispisatinjihovupovrinuiobim. Zadatak7.Definisatiklasu TTrougaosalanovima: Xa, Ya, Xb, Yb, Za, Zb,kojipredstavljaju redomxiykoordinatetemenatrouglaisvisutipadouble.Napisati: KonstruktorsaestargumentaFormiraj(Xa, Ya, Xb, Yb, Za, Zb:double). Funkcije a, b, ckojeredomvraajuduinestranicaBC,CAiACovogtrougla.Duzinastranice BCraunasepoformuli a ( xb xc ) 2 ( y b y c ) 2 .

Funkciju Povrsinakojaraunapovrinutrougla.PovrinaseraunaprimenomHeronovogobrasca, tj. P s ( s a )( s b)( s c) gdeje s (a b c) / 2 .

Funkciju PomeriZa(x,y:integer)kojapomeratrougao(odgovarajuekoordinatetemena) zavrednostnavedenihargumenata. Uglavnomprogramuuitatitrougao,ispisatiduinestranica,povrinu,transliratigazavektor(1,1)i ispisativrednostnovodobijenihkoordinatastranica. Zadatak 8. Definisati klasu TNiz koja omoguava rad sa nizom realnih brojeva. Elementi klase niz su: PrivatnilanBrElem kojipredstavljabrojelemenataunizu, PrivatnilanEltipanizkojipredstavljaelementeniza(tipadouble), Javnimetodiklasesu: Konstruktor Napravi(br:integer)kojimseformiranizduine brisvielementiovogniza inicijalizujunavrednost0. Procedura PostaviElement(i:integer; x:double) kojom se postavlja vrednost elementanizasaindeksom i(ujednoproveravadalijeindeks iuodgovarajuimgranicama, tj.izmedju1iBrElem), ProceduraPrikaziElemente zaispiselemenataniza, FunkcijaElement(i:integer) ijijerezultatelementnizasaindeksomi, ProceduraSort zasortiranjeelemenataniza, Napisatitestprogram. Zadatak9.NapisatiklasuTVremekojaimasledeeelemente: privatnelanoveh,miskojiredompredstavljajubrojsati,minutaisekundi. proceduraDodajSekundukojomsevremeuveavaza1sekundu. proceduraIspiszaispisvremena. funkcijaPrePodnekojaispitujedalijeproslopodneilinije. funkcijaUkupanBrSeckojaraunaukupanbrojsekundikojesuprotekleodponoi(rezultatje tipalongint). konstruktorNapravi(sec:longint)gdejesecbrojsekundikojijeprotekaoodponoi. Napisatitestprogram. 3

Zadatak 10. Iz klase TNiz izvedena je klasa TVector. U ovoj klasi je definisan javni metod PomeriUlevo kojimseelementinizaciklikipomerajuzajednomestoulevo.Uglavnomprogramu uraditisledee: Uitatibrojelemenataielementeniza,azatimispisatiteelemente. Sortiratielementeniza,azatimispisatisortiraneelemente. Uitatibrojelemenatavektoraielemente. Pomeriticiklikielementevektorazajednomestoulevoiispisatitakodobijeneelemente. Zazadatiindeksnekogelementavektoraispisatinjegovuvrednost. Napisatitestprogram. Zadatak 11. Definisati klasu TKocka sa lanovima: X ,Y, Z i a, koji predstavljaju redom x, y i z koordinatupoloajakockeiduinuivicekockesvitipainteger.Napisati: KonstruktorsaetiriargumentaFormiraj(x,y,z,ivica:integer). FunkcijuPovrsina. FunkcijuZapremina. Funkciju PomeriZa(x,y,z:integer) koja pomera kocku (odgovarajue koordinate za vrednostnavedenihargumenata). FunkcijuDijagonalakojavraaduinudijagonalekocke. U glavnom programu uitati kocku, ispisati njenu povrinu, zapreminu i dijagonalu, translirati je za vektor(1,1,1)iispisativrednostnovodobijenihkoordinata. Zadatak12.Napisatiklasu VBrojzapamenjeimanipulacijuprirodnimbrojevimasavelikimbrojem cifara.Klasaimaprivatnelanove: brojcifarancif nizcifre kojipamticifreovogbrojauobrnutomredosledu Napisatimetode: Konstruktor sa dva parametra Napravi(brojcifara:integer, nizcifara:niz). Pritomubrojuzadatomnizomnizcifaracifrenisuuobrnutomredosledu. ProceduraUcitajMaliBroj(mb:integer)kojabrojmbpretvarauvelikibroj. FunkcijuUveajZa1zadodavanjebroja1velikombroju. ProceduruIspiszaispisivanjevelikogbroja. Napisatitestprogram. Zadatak13.DefinisatiklasuTStudentkojaimasledeelanove NizstringovaNazivIspitaduinenajvie50. NizOcenatipainteger,duinenajvie50. PromenljivaBrIspitatipainteger. Nizovi NazivIspitai Ocenapamteredomnaziveispitakojejestudentpoloiokaoiocenekojeje studentdobioiztihpredmetadokpromenljiva BrIspitapamtiukupanbrojpoloenihispita.Klasa sadrisledeemetode FukcijaProsek:doublekojaraunaprosenuocenustudenta.

Procedura DodajIspit(naziv:string; ocena:integer) kojom se dodaje nov ispit na krajuniza.Ukolikovepostojiunizuispitsaovimnazivom,upisatinovuocenuukolikojevea odstare.Ukolikojedostignutmaksimalnibrojispita50,ignorisatinoviispit. Funkcija Poloio(naziv:string):integer koja vraa ocenu koju je student dobio na ispitu,ukolikogajepoloio.Usuprotnomvraa1. Procedura PonitiIspit(naziv:string) kojom se ispit ponitava i izbacuje iz spiska poloenihispita.Ukolikostudentnijepoloioispit,proceduraneradinita. KonstruktorNapravikojiinicijalizujevrednostipromenljivih. Napisatitestprogram. Zadatak14.IgraMastermindsesastojiutomedakompjutersluajnogenerienizodNcelihbrojevau intervalu [1, k ] .Igrazatimpogaakombinacijukojujekompjuterzamislio,akompjuterposlesvakog pogaanjadajeizvetajkolikojeelemenatapogoeno,kaoikolikojeznakovanasvommestu.Kreirati klasuTMastermindkojasadrisledeelanove Brojktipainteger( k 100 ). Duinanizakojisegenerientipainteger( 4 n 9 ). Nizakojipredstavljanizznakovakojeigrapogadja. Klasasadrisledeemetode: Proceduragenerisikojageneriesluajninizznakova. Funkcijaprobaijijeparametarnizznakova.Rezultatovefunkcijejedvocifrenbrojijajeprva cifrabrojpogodjenihznakovakojisunapravommestuadrugabrojpogodjenihznakovakoji nisunapravommestu.Npr.akojekombinacija(1,1,2,3)aigraproba(1,2,3,1)ondajerezultat 13(jedanznakjepogodjennamestui3vanmesta). Napisatitestprogram. Napomena.Funkcijarandom(n)generiepseudosluajniceobrojbrojuintervalu [0, n) . Zadatak15.Posmatrajmosledeuigru.Imamotablu n n ijejesvakopoljeobojenocrnoilibelo.U jednompotezuigramoedazamenibojunekompolju (i, j ) kaoinjemususednimpoljima (i 1, j ) , (i, j 1) , (i 1, j ) i (i, j 1) .Ciljjedacelatablabudeisteboje.NapisatiklasuTIgra kojaomoguava igranjeoveigre. Klasatrebadasadrisledeapoljaimetode: Promenljivan( n 100 )tipaintegerkojapredstavljadimenzijutable. Matricaadimenzija 100 100 tipaintegerkojapredstavljatablu.Akojepolje (i, j ) obojeno crno,ondaje a (i, j ) 1 ,usuprotnomje a (i, j ) 0 . PromenljivaKrajIgretipabooleankojajejednakaTrueakosusvapoljaisteboje. Procedura Promeni(i,j:integer) kojaizvravajedanpotezuigri.Ukolikojepolje (i, j ) vantable ilijeigrazavrena,ovaproceduraneradi nita. Akosuposle izvrenogpotezasva poljatablejednobojna,promenljivaKrajIgrepostajeTrue. KonstruktorNapravi(n:integer)kojinasluajannainbojipoljatable. Napisatitestprogram. Napomena.Funkcijarandom(n)generiepseudosluajniceobrojbrojuintervalu [0, n) .

Zadatak16.DefinisatiklasuTMinesweeperkojaimasledeelanove PromenljivaNtipaintegerkojapredstavljadimenzijutable. Matricaadimenzija 100 100 tipaintegerkojapredstavljatablu.Akojeminanapolju (i, j ) ondaje a (i, j ) 1 ,usuprotnomje a (i, j ) 0 . Klasasadrisledeemetode Funkcija PostaviMinu(i,j:integer):boolean koja postavlja minu na tablu. Funkcija proveravadalisukoordinateiijkorektnozadate(tj.dalipolje (i, j ) pripadatabli).Akojesu, postavljaminuivraatrue,usuprotnomvraafalse. Funkcija BrMinaOkolo(i,j:integer):integer koja vraa broj mina na poljima koja su susednapolju (i, j ) .Ukolikopolje (i, j ) nepripadatabli,funkcijavraa0. FunkcijaBrMina:integerkojavraaukupanbrojminanatabli. FunkcijaBrMinaVrsta(i:integer)kojavraabrojminau i tojvrstitable. FunkcijaBrMinaVrsta(j:integer)kojavraabrojminau j tojkolonitable. ProceduraBrisiTablukojauklanjasvemineiztable. Konstruktor Napravi(N:integer) koji inicijalizuje vrednost promenljivih N i a (sve elementematriceapostavljanavrednost0). Napisatitestprogram. Zadatak17.DefinisatiklasuTSortiranNizkojaimasledeelanove Promenljivan( n 10000 )kojapredstavljabrojelemenataniza, Nizelukomesepamteelementiniza, Promenljivasortirantipabooleankojapamtidalijenizsortiran. Klasasadrisledeemetode Konstruktor Napravi koja inicijalizuje vrednosti promenljivih N i el (promenljivu N i sve elementenizaelpostavljanavrednost0). Proceduru DodajNaKraj(x:integer) koja dodaje vrednost x na kraj niza (ujedno aurira vrednostpromenljivesortiran). Proceduru Umetni(x:integer) koja umee vrednost x u niz ako je niz sortiran, u suprotnomdodajevrednostxnakrajniza. ProceduruSortirajkojasortiraniz.

You might also like