OO2/Lab 2 2022

Izvor: SI Wiki
< ОО2
Datum izmene: 22. jul 2022. u 19:31; autor: KockaAdmiralac (razgovor | doprinosi) (Kategorizacija)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu

Druga laboratorijska vežba održana je u dva dana - prvi u utorak, 26.4. (2 termina), a drugi u subotu, 30.4. (1 termin). Nije bilo razdvajanja odseka po terminima. Predviđeno vreme za izradu druge laboratorijske vežbe je bilo 120 minuta.

V1

Zadatak se pojavio drugog dana. Postavka domaćeg zadatka može se pronaći na stranici predmeta.

Sastaviti na jeziku Java sledeći paket klasa:

  • Bandit se stvara sa zadatim timom kom pripada (A, B) i sadrži celobrojnu količinu zlatnika (pri stvaranju 50). Tim i količina zlatnika mogu da se dohvate. Moguće je promeniti količinu zlatnika za zadatu količinu. Tekstualni opis bandita se sastoji iz oznake tima i količine zlatnika (npr. А50).
  • Vagon sadrži proizvoljan broj bandita. Pri stvaranju, vagon je prazan. Moguće je dodati bandita u vagon. Moguće je ispitati da li se u vagonu nalazi zadati bandit. Moguće je ukloniti zadatog bandita iz vagona. Moguće je dohvatiti broj bandita u vagonu. Moguće je dohvatiti bandita sa zadate pozicije u vagonu. Tekstualni opis vagona sadrži opise svih bandita odvojene zarezima, unutar para uglastih zagrada.
  • Kompozicija vagona sadrži proizvoljan broj vagona. Pri stvaranju, kompozicija je prazna. Moguće je dodati zadati vagon na kraj kompozicije. Moguće je dohvatiti vagon u kom se nalazi zadati bandit. Greška (GNepostojeciVagon) je ukoliko vagon ne postoji. Moguće je dohvatiti susedni vagon zadatog vagona u zadatom smeru (ISPRED, IZA). Greška (GNepostojeciVagon) je ukoliko vagon ne postoji. Tekstualni opis kompozicije sadrži opise svih vagona odvojene donjim crtama.
  • Akcija se stvara sa zadatom kompozicijom i može da se izvrši nad zadatim banditom.
  • Pomeranje je akcija koja se stvara sa zadatim smerom. Pomeranjem, bandit se uklanja iz vagona u kom se trenutno nalazi i dodaje u susedni vagon kompozicije u smeru pomeranja. Ukoliko se bandit ne nalazi ni u jednom vagonu kompozicije ili susedni vagon ne postoji, operacija je bez efekta. Tekstualni opis pomeranja je oblika Pomeranje: smer.
  • Krađa je akcija koja se stvara sa količinom zlatnika. Može se izvršiti tako što se svim banditima koji su u istom vagonu ali u različitom timu od zadatog bandita smanjuje količina zlatnika za zadatu količinu, a banditu za kog se izvršava povećava količina zlatnika za ukupnu ukradenu količinu. Ukoliko ne postoji vagon u kome se nalazi bandit, akcija je bez efekta. Može da se sastavi tekstualni opis krađe u obliku: Krađa: količina_zlatnika.
  • Špil sadrži zadat broj akcija. Stvara se prazan a zatim je moguće dodati akciju na vrh špila. Greška je ukoliko je špil pun (GSpilPun). Moguće je ukloniti akciju sa vrha špila. Greška je ukoliko je špil prazan (GSpilPrazan). Tekstualni opis špila sadrži sve tekstualne opise akcija u zasebnim redovima od vrha špila ka dnu.
  • Simulacija sadrži kombinaciju, špil i proizvoljan broj bandita. Stvara se sa kapacitetom špila, brojem vagona i nizom bandita. Pri stvaranju kreira se kompozicija, špil i zadati broj vagona, zatim se banditi dodaju ciklično u vagone, a vagoni se zatim dodaju u kompoziciju. Moguće je dohvatiti kompoziciju. Moguće je kreirati akciju pomeranja sa zadatim smerom i kreirati akciju krađe sa zadatim brojem zlatnika. Kreirane akcije se dodaju u špil. Moguće je izvršiti jedan korak simulacije tako što se nad zadatim banditom izvrši akcija sa vrha špila i ukloni iz njega. Moguće je izvršiti simulaciju tako sto se izvršava korak po korak simulacije redom za bandite iz niza (prvi korak za prvog bandita, drugi za drugog, i tako ciklično) dok ima akcija u špilu. Moguće je dohvatiti ukupan broj zlatnika bandita iz zadatog tima.

Priložena je klasa sa glavnom funkcijom koja ispituje osnovne funkcionalnosti paketa klasa uz ispisivanje rezultata na standardnom izlazu (konzoli).

V2

Zadatak se pojavio prvog dana u oba temrina. Postavka domaćeg zadatka bez modifikacija može se pronaći na stranici predmeta.

Sastaviti na jeziku Java sledeći paket klasa:

  • Veličina se stvara sa zadatom oznakom (S, M, L), koja može da se dohvati. Može da se proveri da li je veličina manja od zadate veličine. Može da se sastavi tekstualni opis u obliku oznaka.
  • Model sadrži automatski generisan jedinstven celobrojni identifikator. Stvara se sa zadatom veličinom odeće i brojem obuće. Svi podaci mogu da se dohvate. Može da se sastavi tekstualni opis u obliku Model ид (величина_одећа, број_обуће).
  • Moguće je proveriti da li nosiva stvar odgovara zadatom modelu.
  • Odeća je nosiva stvar koja se stvara sa zadatim nazivom i veličinom, koji mogu da se dohvate. Odeća odgovara zadatom modelu ukoliko je veličina odeće veća ili jednaka veličini odeće koju nosi model. Tekstualni opis odeće je oblika odeća naziv veličina.
  • Obuća je nosiva stvar koja sadrži broj s kojim se stvara i koji može da se dohvati. Nosiva je ukoliko je broj obuće modela jednak broju. Može da se sastavi tekstualni opis u obliku obuća broj.
  • Kombinacija se sastoji od zadatog broja nosivih stvari. Stvara se prazna, nakon čega se nosive stvari mogu pojedinačno dodavati na kraj kombinacije. Greška je ukoliko se pokuša dodavanje u popunjenu kombinaciju (GDodavanje). Greška je ukoliko se pokuša dodavanje više od jednog para obuće (GDodavanje).Moguće je dohvatiti trenutni broj stvari u kombinaciji. Moguće je dohvatiti maksimalan broj stvari koje je moguće dodati u kombinaciju. Moguće je dohvatiti nosivu stvar sa zadate pozicije. Greška je ukoliko je zadata pozicija van opsega ili na zadatoj poziciji ne postoji nosiva stvar (GIndeks). Kombinaciji odgovara model ukoliko odgovara svakoj stvari u kombinaciji. Tekstualni opis kombinacije sadrži opise svih nosivih stvari razdvojene zarezima, unutar para uglastih zagrada.
  • Garderoba sadrži red modela i red kombinacija. Stvara se prazna, dok se modeli i kombinacije naknadno pojedinačno dodaju. Može se uzeti kombinacija sa početka reda, pri čemu se ona uklanja iz reda. Može se uzeti model koji odgovara zadatoj kombinaciji, pri čemu se svaki model koji ne odgovara stavlja na kraj reda. Greška je ukoliko nijedan model ne odgovara kombinaciji (GUparivanje).Tekstualni opis je u formatu: Modeli:, gde se zatim ispisuju modeli odvojeni zarezima, a zatim u novom redu Kolekcije:, pa zatim sve kolekcije odvojene zarezom.
  • Modna pista sadrži garderobu sa kojom se i stvara. Može se započeti modna revija, tako što se za svaki kombinaciju traži odgovarajući model. Metoda treba da vrati tekstualni opis u formatu Model-Kombinacija za svaki par. Neuparene kombinacije treba zanemariti. U neregularnim situacijama operacija je bez efekta. Nakon kraja, modeli treba da se vrate na kraj reda.

Priložena je klasa sa glavnom funkcijom koja ispituje osnovne funkcionalnosti paketa klasa uz ispisivanje rezultata na standardnom izlazu (konzoli).

V3

Postavka domaćeg zadatka može se pronaći na stranici predmeta.