Citat:
kajla:
Ima li neko ideju kako da napišem sledeći program u Pascalu:
Data je kvadratna matrica (2n+1)x(2n+1) napisati program za štampanje matrice spiralno od centralnog člana.
poz.
Koristi rekurziju koja ce da izgleda otprilike ovako:
imaces jos jednu globalnu matricu (2n+1)x(2n+1) tipa boolean i sve clanove postavis na false. posle pozoves rekurziju koja ce imati u zaglavlju
(i,j:integer; smer:integer);
Na pocetku procedure postavis u globalnoj matrici vrednost clana na true.
Smer ti je jedna od cetiri cifre (1, 2, 3 ili 4). Na pocetku je smer 1 i oznacava desno. 2 je dole, 3 je levo i 4 je desno. sad ako mozes da ides od smera 1 pozoves rekurziju od sledeceg clana pa posle istampas trenutni clan. Ako ne moze smer 1 onda ides 2 pa 3 pa 4.
Znaci ako ti je matrica 5x5 a trenutno pozvana procedura od npr. (2,4,1), videces da ne mozes vise desno pa ces morati dole i pozoves ponovo tu istu proceduru a na kraju odstampas taj clan.
Mozes da se kreces u nekom smeru samo ako je taj sledeci clan u onoj drugoj globalnoj matrici false.