Professional Documents
Culture Documents
OOPLab Vezba 2
OOPLab Vezba 2
OOPLab Vezba 2
Operatorske funkcije
Zadatak 1.
Kreirati klasu Complex za modelovanje kompleksnih brojeva. Od privatnih lanova treba
da ima po jednu double promenljivu za realni i imaginarni deo, a od javnih operatore za
unos, tampanje, sabiranje i oduzimanje, kao i sve neophodne konstruktore i funkcije za
pristup privatnim lanovima.
Klasu Set, kreiranu u prvoj vebi, prepraviti tako da umesto niza elemenata tipa int
sadri niz elemenata tipa Complex, i dodati:
operatorski funkciju - koja odreuje razliku 2 skupa
operatorsku funkciju + koja odreuje uniju 2 skupa
operatorsku funkciju * koja podreuje presek 2 skupa i
operatorsku funkciju = koja dodeljuje jedan skup drugom.
Takoe, funkciju za uitavanje elemenata skupa sa standardnog ulaza zameniti
prijateljskom operatorskom funkcijom >> za uitavanje elemenata iz tekstualnog toka
podataka, a funkciju za prikaz elemenata skupa na standardni izlaz, prijateljskom
operatorskom funkcijom << za upis elemenata skupa u tekstualni tok podataka.
U funkciji main kreirati dva objekta klase Set sa po 5 i 8 elemenata, respektivno, uitati
njihove elemente sa standardnog ulaza i na standardni izlaz prikazati njihovu uniju,
presek i razliku.
Zadatak 2.
Kreirati klasu Ispit koja od privatnih lanova treba da ima jednu promenljivu u kojoj e
da pamti ime ispita (char*) i jednu u kojoj e da pamti ocenu (int). Od javnih lanova
klasa treba da sadri operatore za poreenje (npr < ili >), unos i tampanje, kao i sve
neophodne konstruktore i funkcije za pristup privatnim lanovima.
U klasi Student, kreiranoj u prvoj vebi, zameniti vektor ocena vektorom objekata klase
Ispit i dodati:
konstruktor bez argumenata koji broj ispita postavlja na 30,
operatorski funkciju > koja poredi dva studenta prema prosenoj oceni,
operatorsku funkciju = koja jedan objekat klase Student dodeljuje drugom.
Takoe, funkciju za uitavanje podataka o studentu sa standardnog ulaza zameniti
prijateljskom operatorskom funkcijom >> za uitavanje podataka o studentu iz
tekstualnog toka podataka, a funkciju za prikaz podataka o studentu na standardni izlaz,
prijateljskom operatorskom funkcijom << za upis podataka o studentu u tekstualni tok
podataka.
U funkciji main kreirati vektor objekata klase Student (sa po 30 ispita), uitati njihove
podatke sa standardnog ulaza, urediti niz u nerastuem redosledu prema prosenoj
oceni i ureeni niz prikazati na standardni izlaz.
Zadatak 3. U klasu Poligon, kreiranu u prvoj vebi, dodati:
Zadatak 7.
Kreirati klasu Complex za modelovanje kompleksnih brojeva. Od privatnih lanova treba
da ima po jednu double promenljivu za realni i imaginarni deo, a od javnih operatore za
unos, tampanje, sabiranje i oduzimanje, kao i sve neophodne konstruktore i funkcije za
pristup privatnim lanovima.
Klasu TriangleMatrix, kreiranu u prvoj vebi, prepraviti da radi sa objektima tipa
Complex i u nju dodati:
operatorsku funkciju + koja sabira dve trougaone matrice iste dimenzije,
operatorsku funkciju + koja svim elementima matrice dodaje zadati ceo broj,
operatorsku funkciju * za mnoenje sa trougaonom matricom iste dimenzije,
operatorsku funkciju = za dodelu jednog objekta klase Buffer drugom.
Takoe, implementirati i sledee prijateljske operatorske funkcije
operatorsku funkciju * koja mnoi ceo broj i trougaonu matricu tako to
pomnoi svaki element matrice zadatim brojem,
operatorsku funkciju >> za uitavanje sadraja matrice iz zadatog tekstualnog
toka,
U funkciji main kreirati 2 objekta klase Vektor, uitati njihove sadraje sa standardnog
ulaza i na standardni izlaz prikazati njihov skalarni proizvod. Zatim, prvi vektor rotirati za
k mesta udesno i prikazati ga na standardni izlaz, a elemente drugog vektora uveati za
k i prikazati ga na standardni izlaz.
Zadatak 10. U klasu Minesweeper, kreiranu u prvoj vebi, dodati:
postfiksnu operatorsku funkciju ++ koja sve mine u minskom polju pomera za
jedno mesto udesno (one iz poslednje kolone prenosi u prvu),
postfiksnu operatorsku funkciju ++ koja sve mine u minskom polju pomera za
jedno mesto nadole (one iz poslednje vrste prenosi u prvu),
postfiksnu operatorsku funkciju -- koja sve mine u minskom polju pomera za
jedno mesto ulevo (one iz prve kolone prenosi u poslednju),
postfiksnu operatorsku funkciju -- koja sve mine u minskom polju pomera za
jedno mesto nagore (one iz prve vrste prenosi u poslednju),
Takoe, implementirati i sledee prijateljske operatorske funkcije
operatorsku funkciju >> za uitavanje sadraja minskog polja iz zadatog
tekstualnog toka,
operatorsku funkciju << za upis sadraja minskog polja u tekstualni tok
podataka.
U funkciji main kreirati objekat klase Minesweeper i translirati mine u sva etiri smera.
Nakon svakog transliranja novi sadraj minskog polja prikazati na standardni izlaz.
Zadatak 11.
Kreirati klasu Tacka za modelovanje trodimenzionalnih taaka. Od privatnih lanova
treba da ima po jednu double promenljivu za svaku od 3 dimenzije, a od javnih
operatore za unos, tampanje, sabiranje i oduzimanje, kao i sve neophodne
konstruktore i funkcije za pristup privatnim lanovima.
U klasi Matrica, kreiranoj u prvoj vebi, zameniti niz double brojeva nizom elemenata
tipa Tacka i dodati:
prefiksnu operatorsku funkciju ++ koja poveava vrednost svakog polja za 1 i
zatim vraa sumu svih polja (++ nad objektima klase Tacka treba da uvecava
svaku od koordinata za 1)
postfiksnu operatorsku funkciju ++ koja vraa sumu svih polja i zatim poveava
vrednost svakog polja za 1 (++ nad objektima klase Tacka treba da uvecava
svaku od koordinata za 1)
operatorsku funkciju = za dodelu jednog objekta klase Matrica drugom.
Operatorsku funkciju []
prijateljsku operatorsku funkciju >> za uitavanje sadraja matrice iz zadatog
tekstualnog toka,
prijateljsku operatorsku funkciju << za upis sadraja matrice u tekstualni tok
podataka.
U funkciji main kreirati objekat klase Matrica, uitati vrednosti elija matrice sa
standardnog ulaza. Zatim sumirati vrednosti 1 i 3. kolone, kao i 2 i 3. reda, demonstrirati
upotrebu svih navedenih operatora, a potom odtampati matricu.
Zadatak 12.
Kreirati klasu Tacka za modelovanje trodimenzionalnih taaka. Od privatnih lanova
treba da ima po jednu double promenljivu za svaku od 3 dimenzije, a od javnih
operatore za unos, tampanje, sabiranje i oduzimanje, kao i sve neophodne
konstruktore i funkcije za pristup privatnim lanovima.
U klasi Vektor, kreiranoj u prvoj vebi, zameniti niz double brojeva nizom elemenata tipa
Tacka i dodati:
operatorsku funkciju + koja sabira 2 niza iste duine,
operatorsku funkciju + koja svim koordinatama svih lanova niza dodaje zadati
ceo broj,
operatorsku funkciju = za dodelu jednog objekta klase Vektor drugom.
prijateljsku operatorsku funkciju * koja mnoi ceo broj i niz tako to pomnoi
svaku korrdinatu svakog elementa niza zadatim brojem,
prijateljsku operatorsku funkciju >> za uitavanje sadraja vektora iz zadatog
tekstualnog toka,
prijateljsku operatorsku funkciju << za upis sadraja vektora u tekstualni tok
podataka.
U funkciji main kreirati 2 objekta klase Vektor i na standardni izlaz prikazati njihov zbir,
proizvod, rezultat sabiranja prvog niza sa brojem 8 i rezultat mnoenja broja 6 i drugog
niza. Rezultat svake operacije najpre dodeliti novom objektu i sadraj tog objekta
prikazati.
Zadatak 13. Klasi Fabrika, kreiranoj u prethodnoj vebi, dodati sledee operatorske
funkcije:
operatorsku funkciju + za dodeljivanje radnika fabrici
operatorsku funkciju - za otputanje radnika sa navedenim jmbg-om
prijateljsku operatorsku funkciju << za upis sadraja niza u tekstualni tok
Klasi Radnik dodati sledee operatorske funkcije:
prijateljsku operatorsku funkciju >> za uitavanje podataka
prijateljsku operatorsku funkciju << za tampanje informacija o radniku
U funkciji main kreirati 3 objekta klase Radnik. Zatim napraviti objekat klase Fabrika i
demonstrirati upotrebu svih navedenih operatora.
Zadatak 14. Klasi Amfiteatar, kreiranoj u prethodnoj vebi, dodati sledee operatorske
funkcije:
operatorsku funkciju + za dodeljivanje slobodnog mesta studentu. Studente treba
rasporeivati popunjavanjem svakog drugog mesta poevi od zadnjeg reda
zadnje kolone. Ukoliko se na taj nain ne nae slobodno mesto (svako drugo
mesto je popunjeno), dodeliti prvo slobodno mesto poevi od zadnjeg reda
zadnje kolone.
operatorsku funkciju - za oslobaanje mesta sa zadatim koordinatama
prijateljsku operatorsku funkciju << za ispis naziva amfiteatra, prosenu ocenu
svih prisutnih studenata kao i indeks studenta sa najveom prosenom ocenom
Klasi Student dodati sledee operatorske funkcije: