You are on page 1of 2

ELEKTROTEHNIKI FAKULTET

BANJA LUKA


PROGRAMSKI JEZICI I - 2. kolokvijum (14.12.2010) A



Definisati klasu Par koja omoguava manipulaciju jednim
parom rijei. Svaki par rijei ine dva stringa sa
proizvoljnim ("neogranienim") brojem znakova.
Klasa Par treba da ima:
a) podrazumijevani konstruktor koji kreira prazan
par rijei;
b) konstruktor koji prima dva stringa i inicijalizuje
par rijei;
c) odgovarajui konstruktor kopije;
d) odgovarajui destruktor.
Za klasu Par treba preklopiti sljedee operatore:
a) operator>> - sa odgovarajueg ulaza uitava
jedan par rijei. Omoguiti kaskadno pozivanje.
b) operator<< - na zadanom izlazu ispisuje par
rijei u obliku: (prvarijec drugarijec).
Omoguiti kaskadno pozivanje.
c) operator= - jednom objektu klase Par dodjeljuje
drugi objekat iste klase, pri emu onemoguava
samododjeljivanje (tj. onemoguava dodjelu x=x).
d) operator< - vraa rezultat poreenja dva para
rijei na osnovu poreenja prve rijei u oba para,
tj. ako je prva rije u prvom paru "manja" od prve
rijei (po abecedi) u drugom paru vraa istinu,
inae vraa la.
e) operator[] - kao rezultat vraa odgovarajuu rije
na osnovu zadate pozicije u paru (ako je argument
jednak 1, funkcija vraa prvu rije, a ako je
argument jednak dva, funkcija vraa drugu rije iz
para).
Napomene:
1. Razdvojiti interfejs od implementacije, tj. funkcije
lanice definisati izvan definicije klase.
2. Dozvoljeno je korienje zaglavlja <cstring>,
odnosno funkcija strlen i strcpy.

Napisati program u kojem treba:
a) formirati prazan srpsko-engleski rjenik, a zatim sa
standardnog ulaza uitati n (n>0) odgovarajuih
parova rijei (prva rije na srpskom, a druga njen
prevod na engleskom) i napuniti rjenik.
b) na standardnom izlazu ispisati rjenik.
c) sa standardnog ulaza uitati neku rije na srpskom
jeziku, pa u rjeniku pronai njen prevod na
engleski jezik i ispisati prevod na standardnom
izlazu, kao to je ilustrovano u primjeru.
d) sa standardnog ulaza uitati neku rije na
engleskom jeziku, pa u rjeniku pronai njen
prevod na srpski jezik i ispisati prevod na
standardnom izlazu, kao to je ilustrovano u
primjeru.


Definisati klasu Rjecnik koja omoguava manipulaciju
rjenikom. Osim neogranienog niza kojeg ine parovi
rijei, rjenik ima i broja koji sadri trenutni broj rijei
(trenutni broj parova) u rjeniku.
Klasa Rjenik treba da ima:
a) konstruktor koji kreira prazan rjenik,
b) odgovarajui destruktor,
c) prijateljsku funkciju getBrojRijeci() koja vraa
trenutni broj parova rijei u rjeniku.
Za klasu Rjecnik treba preklopiti sljedee operatore:
a) operator<< - na zadatom izlazu ispisuje sve
parove rijei koje se trenutno nalaze u rjeniku po
abecednom redu, kao to je ilustrovano u
primjeru, pri emu treba omoguiti kaskadno
pozivanje.
b) operator+= - omoguava da se u rjenik doda
novi par rijei (rjecnik += noviParRijeci).
c) operator() - vraa prevod odgovarajue rijei,
odnosno prazan string ako data rije ne postoji u
rjeniku.
Napomena:
1. Razdvojiti interfejs od implementacije, tj. funkcije
lanice definisati izvan definicije klase.





Primjer izvravanja programa






















Raspodjela bodova po zadacima

Zadatak 1 2 3
Bodovi 50% 35% 15% 100%
n=3
1. par: program program
2. par: programski programming
3. par: jezik language

Sadrzaj srpsko-engleskog rjecnika:
slovo J
---------------------------------
(jezik language)
=================================
slovo P
---------------------------------
(program program)
(programski programming)
=================================

Unesite rijec na srpskom: jezik
Njen prevod: language

Unesite rijec na engleskom: ball
Ne postoji ta rijec u rjecniku.
ELEKTROTEHNIKI FAKULTET
BANJA LUKA


PROGRAMSKI JEZICI I - 2. kolokvijum (14.12.2010) B



Definisati klasu Dvojka koja omoguava manipulaciju
jednim ureenim parom. Prvi element para je cjelobrojni
podatak, a drugi element para je string sa proizvoljnim
("neogranienim") brojem znakova.
Klasa Dvojka treba da ima:
a) podrazumijevani konstruktor koji kreira praznu
dvojku, iji je cjelobrojni podatak jednak nuli, a
string prazan;
b) konstruktor koji prima jedan cijeli broj i jedan
string pa inicijalizuje dvojku;
c) odgovarajui konstruktor kopije;
d) odgovarajui destruktor.
Za klasu Dvojka treba preklopiti sljedee operatore:
a) operator>> - sa odgovarajueg ulaza uitava
jednu dvojku u obliku: broj string. Omoguiti
kaskadno pozivanje.
b) operator<< - na zadatom izlazu ispisuje dvojku u
obliku: (broj,string). Omoguiti kaskadno
pozivanje.
c) operator= - jednom objektu klase Dvojka
dodjeljuje drugi objekat iste klase, pri emu
onemoguava samododjeljivanje (tj. onemoguava
dodjelu x=x).
d) operator== - vraa rezultat poreenja dvije
dvojke. Za dvije dvojke moemo da kaemo da su
jednake ako su im odgovarajue cjelobrojne
komponente jednake. Ako su dvojke jednake vraa
istinu, inae vraa la.
e) operator() - kao rezultat vraa string sadran u
datom ureenom paru.
Napomene:
1. Razdvojiti interfejs od implementacije, tj. funkcije
lanice definisati izvan definicije klase.
2. Dozvoljeno je korienje zaglavlja <cstring>,
odnosno funkcija strlen i strcpy.

Napisati program u kojem treba:
a) formirati praznu mapu, a zatim sa standardnog
ulaza uitati n (n>0) dvojki i napuniti mapu.
b) na standardnom izlazu ispisati mapu.
c) sa standardnog ulaza uitavati cijele brojeve i
ispisivati odgovarajue stringove iz mape, sve dok
u mapi postoji dvojka ija je cjelobrojna
komponenta jednaka uitanom cijelom broju, kao
to je ilustrovano u primjeru.


Definisati klasu Mapa koja omoguava manipulaciju
jednostavnom kodnom mapom. Svaka mapa sadri
neogranien niz dvojki. Osim toga, mapa ima jo jedan
podatak lan koji sadri trenutni broj dvojki u mapi.
Klasa Mapa treba da ima:
a) konstruktor koji kreira praznu mapu,
b) odgovarajui destruktor,
c) prijateljsku funkciju getKapacitet() koja vraa
trenutni broj dvojki u mapi.
Za klasu Mapa treba preklopiti sljedee operatore:
a) operator<< - na zadatom izlazu ispisuje sve
dvojke koje se trenutno nalaze u mapi, pri emu
treba omoguiti kaskadno pozivanje.
b) operator+= - omoguava da se u mapu doda
nova dvojka (mapa += novaDvojka). Ako u mapi
ve postoji ista dvojka (tj. dvojka sa istom
cjelobrojnom komponentom), ne treba dodati novu
dvojku, ve postojeu zamijeniti novom.
c) operator() - vraa string iz odgovarajue dvojke
u mapi, ija je cjelobrojna komponenta jednaka
argumentu funkcije, odnosno prazan string ako u
mapi ne postoji dvojka sa tim cjelobrojnim kodom.
Napomena:
1. Razdvojiti interfejs od implementacije, tj. funkcije
lanice definisati izvan definicije klase.


Primjer izvravanja programa






















Raspodjela bodova po zadacima

Zadatak 1 2 3
Bodovi 50% 35% 15% 100%

n=4
1. dvojka: 2 dva
2. dvojka: 12 dva
3. dvojka: 13 trinaest
4. dvojka: 12 dvanaest

Sadrzaj mape:
(2,dva)
(12,dvanaest)
(13,trinaest)

Unesite broj: 13
Odgovarajuci string: trinaest

Unesite broj: 2
Odgovarajuci string: dva

Unesite broj: 100
Ne postoji odgovarajuci string u mapi!
KRAJ!

You might also like