OO1PP1 –
DZ3 Rok
za izradu: 12.12.2008.
PRAKTIKUM IZ PROGRAMIRANJA 1
- domaći zadatak broj 3 -
Sastaviti na programskom jeziku Pascal glavni program koji rešava šahovski problem. Šahovska tabla je predstavljena dvema matricama dimenzija 8x8, od kojih prva matrica predstavlja raspored figura na tabli, dok druga matrica predstavlja boju figure na odgovarajućem mestu u prvoj matrici. Potrebno je definisati dva nabrojiva tipa – tip vrste figure (kralj, kraljica, top, skakač, lovac, pešak, nema figure) kojima će biti popunjena prva matrica i tip boje (bela, crna, nema figure) kojima će biti popunjena druga matrica. Boje su pridružene figurama u prvoj matrici. Glavni program na sledeći način radi sa šahovskom tablom:
· poziva potprogram koji učitava sve potrebne podatke (podaci sadrže trenutni raspored figura na tabli);
· poziva odgovarajući potprogram koji izvrši zahtevanu obradu nad ulaznim podacima;
· ponavlja poslednji korak sve dok korisnik za figuru za koju se vrši obrada ne unese neodgovarajuću vrednost (na unetom polju nema figure za koju se vrši obrada).
Zavisno od rednog broja problema, sastaviti program na programskom jeziku Pascal, za jednu od figura, koji za zadatu poziciju figure ispisuje sva polja kojima data figura može da pristupi u sledećem potezu (uključujući i polja na kojima su figure suprotne boje), kao i pozicije svih figura suprotne boje koje data figura može da pojede u sledećem potezu. Ni u jednom koraku programa ne treba razmatrati posledice bilo kog mogućeg poteza (da li figura dolazi u opasnost da bude pojedena ako odigra neki potez i slično). Svaka od figura ima mogućnost kretanja koja odgovara pravilima šahovske igre. U zavisnosti od rednog broja problema, figura za koju treba vršiti potrebnu obradu je:
0.
kralj
(ne treba ostvarivati kretanje kralja po pravilu rokade);
1. kraljica;
2.
top
(ne treba ostvarivati kretanje topa po pravilu rokade);
3. lovac;
4.
skakač;
5.
pešak
(ne treba ostvarivati kretanje pešaka po pravilu en passant).
Pri zadavanju rasporeda figura, korisnik prvo sa glavnog ulaza unosi trenutne pozicije belih figura na tabli, tako što zadaje poziciju svake figure, a posle toga čini isto i za crne figure (nije obavezno unositi pozicije za sve 32 figure, dovoljno je pokriti one koje su na tabli). Pretpostaviti se beli pešaci kreću u smeru ka vrsti 8, a crni ka vrsti 1. Osmisliti i napisati na papiru makar tri primera ulaznih podataka sa kojima će program biti testiran, kao i očekivani izlaz za odabrane primere. Potprogrami ne smeju pristupati promenljivama glavnog programa direktno, već samo putem svojih argumenata i/ili povratne vrednosti.
Napomene:
1. Odbrana trećeg domaćeg zadatka je u petak, 12.12.2008. godine. Tačni termini za sve studente su objavljeni u okviru sistema WebLab.
2. Formula za redni broj problema i koji treba rešavati je sledeća (R – redni broj indeksa, G – poslednje dve cifre godine upisa):
i
= (R + G) mod 6
3.
Kao
rešenje domaćeg zadatka potrebno je na odbrani pokazati sledeće datoteke:
· dz3.PAS, koja sadrži izvorni tekst glavnog programa na programskom jeziku Pascal;
04.12.2008. godine sa predmeta