Professional Documents
Culture Documents
Definirajte klasu Robot koja predstavlja zamiljenog robota koji moe da se kree kroz
koordinatni sistem sa cjelobrojnim koordinatama i koji moe da gleda u jednom od etiri pravca
definirana u pobrojanom tipu Pravci. Klasa treba da ima sljedei interfejs:
void Postavi(int x, int y, Pravci p);
void PomjeriSe(int korak);
void OkreniSeNalijevo();
void OkreniSeNadesno();
int DajPozicijuX() const;
int DajPozicijuY() const;
Pravci DajOrjentaciju() const;
void Ispisi() const;
Metoda Postavi postavlja robot na zadanu poziciju, i usmjerava ga u zadani pravac. Metoda
PomjeriSe pomjera robota zadani broj koraka u pravcu u kojem robot trenutno gleda. Metode
OkreniSeNalijevo i OkreniSeNadesno obru robota za 90o na lijevo odnosno na desno.
Metode DajPozicijuX, DajPozicijuY i DajOrjentaciju treba da vrate tekuu poziciju
odnosno orjentaciju robota. Metoda Ispisi treba da ispie podatke o poziciji i orjentaciji robota
na nain kao u sljedeem primjeru:
Robot se nalazi na poziciji (3,5) i gleda na istok.
Napisanu klasu upotrijebite u programu u kojem e korisnik moi da bira neku od dozvoljenih
operacija sa robotom, a nakon svake izvrene operacije program treba da prikae tekuu poziciju i
orjentaciju (kratke metode dozvoljeno je implementirati odmah unutar deklaracije klase).
2#. Definirajte klasu Robot koja predstavlja zamiljenog robota koji moe da se kree kroz
koordinatni sistem sa realnim koordinatama i koji moe da gleda u proizvoljnom pravcu. Klasa
treba da ima sljedei interfejs:
void Postavi(double x, double y, double ugao);
void IdiNaprijed(double pomak);
void IdiNazad(double pomak);
void OkreniSeNaijevo(double ugao);
void OkreniSeNadesno(double ugao);
double DajPozicijuX() const;
double DajPozicijuY() const;
double DajOrjentaciju() const;
void Ispisi() const;
Metoda Postavi postavlja robot na zadanu poziciju, i usmjerava ga da gleda pod zadanim uglom
u odnosu na pozitivni smjer x ose. Pri tome se ugao zadaje u stepenima (to vrijedi i za sve ostale
1
metode u kojima se spominju uglovi). Metoda IdiNaprijed pomjera robota za zadani iznos
duine u smjeru u kojem robot trenutno gleda, dok metoda IdiNazad pomjera robota za zadani
iznos duine u smjeru suprotnom od smjera u kojem robot trenutno gleda. Metode
OkreniSeNalijevo i OkreniSeNadesno obru robota za zadani iznos ugla (u stepenima)
nalijevo odnosno nadesno (tj. u smjeru suprotnom od kazaljke na satu, odnosno u smjeru kazaljke
na satu). Metode DajPozicijuX, DajPozicijuY i DajOrjentaciju treba da vrate
tekuu poziciju odnosno ugao pod kojim gleda robot. Metoda Ispisi treba da ispie podatke o
poziciji i orjentaciji robota na nain kao u sljedeem primjeru:
Robot se nalazi na poziciji (3.42,5.173) i gleda pod uglom 42.5 stepeni u odnosu na x osu.
Napisanu klasu upotrijebite u programu u kojem e korisnik moi da bira neku od dozvoljenih
operacija sa robotom, a nakon svake izvrene operacije program treba da prikae tekuu poziciju i
orjentaciju (kratke metode dozvoljeno je implementirati odmah unutar deklaracije klase).
3.
Definirajte i implementirajte klasu Tacka koja predstavlja taku u ravni. Klasa bi trebala
sadravati sljedei interfejs:
void Postavi(double x, double y);
void PostaviPolarno(double ro, double theta);
double DajX() const;
double DajY() const;
double DajRo() const;
double DajTheta() const;
void Transliraj(double delta_x, double delta_y);
void Rotiraj(double alpha);
void Rotiraj(double alpha, const Tacka ¢ar);
friend double Rastojanje(const Tacka &t1, const Tacka &t2);
5.
Razmotrite kakve bi se izmjene mogle uiniti da klase razvijene u prethodna dva zadatka opisuju
taku u prostoru umjesto taaka u ravni. Recimo, mogle bi se podrati cilindrine i sferne
koordinate (najvei problem bi predstavljala rotacija, s obzirom da se taka u prostoru ne moe
rotirati oko druge take, nego samo oko pravca).
2