Spiralno obilaženje matrice - UPIS
Completion requirements
Zadatak :
Kreirati matricu A od brojeva upisanih po spirali, počev od gornjeg-levog, pa do centralnog elementa.
Drugim rečima, ono što treba da se dobije je sledeća matrica:
Ovaj problem se razbija na popunjavanje prsten-po-prsten. Kao što vidimo, krenućemo od spoljnih ivica i popunjavaćemo zasebno sva četiri smera. ---- AnalizaPrimer matrice, date su kooordinate jer sadržaj nije bitan, koordinate počinju od 0 jer je tako u nizovima u skoro svim programskim jezicima.Kod:
| (0,0) (0,1) (0,2) (0,3) (0,4) | | | | (1,0) (1,1) (1,2) (1,3) (1,4) | | | | (2,0) (2,1) (2,2) (2,3) (2,4) | | | | (3,0) (3,1) (3,2) (3,3) (3,4) | | | | (4,0) (4,1) (4,2) (4,3) (4,4) | (0,0)->(0,1)->(0,2)->(0,3)->(0,4)-> (1,4)->(2,4)->(3,4)->(4,4)-> (4,3)->(4,2)->(4,1)->(4,0)-> (3,0)->(2,0)->(1,0)-> (1,1)->(1,2)->(1,3)-> (2,3)->(3,3)-> (3,2)->(3,1)-> (2,1)-> (2,2) U opštem slučaju, ako je širina matrice m, a visina n, obilazi se ovako prvi krug od (0,0) do (0,m-1) od (1,m-1) do (n-1,m-1) od (n-1,m-2) do (n-1,0) od (n-2,0) do (1,0) drugi krug od (1,1) do (1,m-2) od (2,m-2) do (n-2,m-2) od (n-2,m-3) do (n-2,1) od (n-3,1) do (2,1) i tako dalje --------------------------------------------------------------------------------------------- Način na koji smo to uradili na času: Funkcija za upisivanje elemenata matrice spiralno, gde se u funkciji koristi matrica od maksimum 20 kolona, ima m redova i n kolona: ![]() C fajl u kojem je primenjena ova funkcija za kreiranje matrice: Fajl1.c --------------------------------------------------------------------------------------------- Korektniji način izvedbe, je dat u nastavku (kako bi bilo ispravnije raditi, mada je ista ideja za rešavanje problema): ![]() ![]() C fajl u kojem se to izvodi: Fajl2.c --------------------------------------------------------------------------------------------- Zadatak 2:Kreirati kvadratnu matricu u koju se elementi upisuju spiralno, od 1 pa naviše, u smeru kazaljke na satu. (REŠENJE-na složeniji način) |
Last modified: Tuesday, 26 February 2019, 10:57 PM


