Forum » Programiranje » [C++] Pomoč pri dvodimenzionalnem polju - pravokotni spirali
[C++] Pomoč pri dvodimenzionalnem polju - pravokotni spirali
wat56 ::
Ze kar nekaj casa se ukvarjam z programom, ki bi omogočal da vstavim nekaj števil v dvodimenzionalno polje v obliki pravokotne spirale:
17 16 15 14 13
....05 04 03 12
... 06 01 02 11
....07 08 09 10
Recimo ce je matrika 4x4 je zacetna pozicija kamor zelim vstaviti [2][1] na to mesto vstavim 01, na naslednje mesto [2][2] vstavim 02, na nasednje mesto [1][2] vstavim stevilo 03 in tako naprej...
Naredil sem ze ogromno funkcij, vendar pa nobena ne odgovarja temu problemu. Catch pri tem programu je da se polje gradi od znotraj navzven, zato je po mojem mnenju potreban taka funkcija ki sprejme zacetno vrednost polja(ki je odvisna od 'stevila' stevil (torej koliko jih zelimo vstavit, tako velika matrika naj se generira)), potem pa gradi naprej.
Pri tem programu sem naletel se na sledec problem: kako narediti funkcijo, ki vraca taksna cela stevila 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 , taksno more biti zaporedje, torej ko jo klicem privc mora vrnit 1 , naslednjic spet 1, naslednjic 2 , potem spet 2 in tako naprej.
tu pa je primer funkcije, ki spreminja indeks polja, vendar ne deluje :)
void vnasanje(int polje[i][j],int korak,int smer)
{
if (smer==1);
for (int i=0; i manjse korak; i++) // hotel sem uporabit znak za manjse, samo javi neko napako
int polje[][j+1]; //glede foruma..
else
if (smer==2);
for (int i=0; i manjse korak; i++)
polje[i-1][];
else
if (smer==3);
for (int i=0; i manjse korak; i++)
polje[][j-1];
else
if (smer==4);
for (int i=0; i manjse korak; i++)
polje[i+1][];
}
Najlepsa hvala za pomoc.
[Edit: postandardiziral sem naslov - Gundolf]
17 16 15 14 13
....05 04 03 12
... 06 01 02 11
....07 08 09 10
Recimo ce je matrika 4x4 je zacetna pozicija kamor zelim vstaviti [2][1] na to mesto vstavim 01, na naslednje mesto [2][2] vstavim 02, na nasednje mesto [1][2] vstavim stevilo 03 in tako naprej...
Naredil sem ze ogromno funkcij, vendar pa nobena ne odgovarja temu problemu. Catch pri tem programu je da se polje gradi od znotraj navzven, zato je po mojem mnenju potreban taka funkcija ki sprejme zacetno vrednost polja(ki je odvisna od 'stevila' stevil (torej koliko jih zelimo vstavit, tako velika matrika naj se generira)), potem pa gradi naprej.
Pri tem programu sem naletel se na sledec problem: kako narediti funkcijo, ki vraca taksna cela stevila 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 , taksno more biti zaporedje, torej ko jo klicem privc mora vrnit 1 , naslednjic spet 1, naslednjic 2 , potem spet 2 in tako naprej.
tu pa je primer funkcije, ki spreminja indeks polja, vendar ne deluje :)
void vnasanje(int polje[i][j],int korak,int smer)
{
if (smer==1);
for (int i=0; i manjse korak; i++) // hotel sem uporabit znak za manjse, samo javi neko napako
int polje[][j+1]; //glede foruma..
else
if (smer==2);
for (int i=0; i manjse korak; i++)
polje[i-1][];
else
if (smer==3);
for (int i=0; i manjse korak; i++)
polje[][j-1];
else
if (smer==4);
for (int i=0; i manjse korak; i++)
polje[i+1][];
}
Najlepsa hvala za pomoc.
[Edit: postandardiziral sem naslov - Gundolf]
- spremenil: Gundolf ()
snow ::
int vrni() { static int a=-1; a++; a%=8; return 1+a/2; }
[edit: pobrisal, kar se je nanašalo na ime teme - Gundolf]
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Zgodovina sprememb…
- spremenil: Gundolf ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | križci krožci c # (strani: 1 2 )Oddelek: Programiranje | 11801 (10460) | Yacked2 |
» | [C#] Domača naloga za faksOddelek: Programiranje | 2081 (1705) | Spura |
» | [C#] Input string was not in a correct format.Oddelek: Programiranje | 1077 (1014) | Cvenemir |
» | Programski jezik C- pomočOddelek: Programiranje | 1688 (1606) | alexa-lol |
» | [c++] bubblesortOddelek: Programiranje | 3138 (3138) | strictom |