Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako napraviti program u c++ koji ce za uneseni "n" ispisati matricu oblika...

[es] :: C++ programiranje :: Kako napraviti program u c++ koji ce za uneseni "n" ispisati matricu oblika...

[ Pregleda: 1444 | Odgovora: 6 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

A90
Bihac

Član broj: 52884
Poruke: 12
*.as54.bi.bih.net.ba.



Profil

icon Kako napraviti program u c++ koji ce za uneseni "n" ispisati matricu oblika...24.03.2005. u 19:15

Pozdrav svima,naime interesuje me da li bi neko od pregrst strucnjaka na ovom forumu znao kako napraviti program u C++,koji ce za ucitani "n" ispisivati matricu oblika:
n=5

1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

Molim vas to mi je za maturski rad a zaista nemam nikakvu ideju kako da to uradim,pa ako to neko zna,a siguram sam da ima puno takvih molim vas da mi pomognete..
Unaprijed hvala!!
24.03.2005. u 19:15 

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 2818
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: Kako napraviti program u c++ koji ce za uneseni "n" ispisati matricu oblika...24.03.2005. u 19:46
To sto tebi treba zove se spoljasnja spirala. Nisi naveo za koju
platformu Windows/Linux/Dos i okruzenje Microsoft/Borland ti
treba resenje.

Ako je u pitanju DOS, resenje vec imas u knjizi Ranka Lazica,
Programski Jezik C kroz primere (davno to bese) ...


FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
24.03.2005. u 19:46 

pesicvladica
Vladica Pesic

Član broj: 50612
Poruke: 3
*.vdial.verat.net.



Profil

icon Re: Kako napraviti program u c++ koji ce za uneseni "n" ispisati matricu oblika...24.03.2005. u 20:40
Dodices resenje sutra izmedju 3 i 5.
24.03.2005. u 20:40 

Goran Rakić
Beograd

Član broj: 999
Poruke: 2383
*.nat-pool.bgd.sbb.co.yu.

Jabber: grakic@jabber.org
Sajt: blog.goranrakic.com


Profil

icon Re: Kako napraviti program u c++ koji ce za uneseni "n" ispisati matricu oblika...25.03.2005. u 08:22
ja koliko vidim ovo nije ono sto je trazeno.
http://sr.openoffice.org — slobodan kancelarijski paket, zamena za MS Office, na srpskom i engleskom, legalno bez troškova licenciranja
25.03.2005. u 08:22 

dragansm
Dragan Smiljanic

Član broj: 38170
Poruke: 177
*.nat-pool.bgd.sbb.co.yu.



Profil

icon Re: Kako napraviti program u c++ koji ce za uneseni "n" ispisati matricu oblika...25.03.2005. u 09:50
brutal force resenje (nisam kompajlirao, nadam se da radi):

Code:

typedef enum { N, S, W, E } DIR;
DIR dir = W;
const int N = 5;
static int m[N][N]; // static inicijalizuje matricu na 0-matricu

int x = 0; y = 0;
for ( int i = 0; i < N*N; ++i)
{
    m[x][y] = i+1;
    
    bool bFindDir = FALSE;
    while( bFindDir )
    {
        switch(dir)
        {
        case N:
            if ( y == 0 || m[x][y-1] == 0 ) 
            {
                dir = W;
            }
            else
            {
                --y;
                bFindDir = TRUE;
            }
            break;
        case S:
            if ( y == N - 1 || m[x][y+1] == 0 ) 
            {
                dir = E;
            }
            else
            {
                ++y;
                bFindDir = TRUE;
            }
            break;
        case W:
            if ( x == N - 1 || m[x+1][y] == 0 ) 
            {
                dir = S;
            }
            else
            {
                ++x;
                bFindDir = TRUE;
            }
            break;
        case E:
            if ( x == 0 || m[x-1][y] == 0 ) 
            {
                dir = N;
            }
            else
            {
                --x;
                bFindDir = TRUE;
            }
            break;
        }
    }
}
25.03.2005. u 09:50 

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 60
*.nat-pool.bgd.sbb.co.yu.



Profil

icon Re: Kako napraviti program u c++ koji ce za uneseni "n" ispisati matricu oblika...25.03.2005. u 10:48
To je maturski rad? Meni vise lici na domaci zadatak...

Ovde je caka kako pretvoriti jedan pravac u drugi. Ako pretpostavimo da je korodinatna nula u gornjem levom uglu, imamo ovu transformaciju:


Code:
x0 y0   x1 y1
1  0    0  1
0  1   -1  0
-1 0    0 -1
0 -1    1  0


Brojevi oznacavaju sledeci korak: (1,0) je desno, (0,1) dole, (-1,0) levo, (0,-1) gore. Pravac se menja na kraju matrice ili kad naidjemo na vec popunjeni element matrice. Popunjavamo elemente matrice pocevsi od koordinate 0,0 i pocetnog pravca "desno". x i y su ovde zapravo delta-x i delta-y.

E, sad, ako malo pazljivije osmotrite gornju tabelu primeticete da y postaje x, a x dobija negativnu vrednost y, tako da promena pravca izgleda ovako:

temp = x;
x = -y;
y = temp;

Pretpostavljam da je sad lako napisati kod...

[Ovu poruku je menjao Mihajlo Cvetanović dana 25.03.2005. u 18:21 GMT+1]
25.03.2005. u 10:48 

Toyo

Član broj: 45193
Poruke: 227
*.kovnet.co.yu.



Profil

icon Re: Kako napraviti program u c++ koji ce za uneseni "n" ispisati matricu oblika...25.03.2005. u 13:55
Ne znam kako ces objasniti profesoru da kod ima samo 4 glavne linije.
Nisam imao C kompajler da testiram, pa sam to uradio u Delphiju i radi dobro.

Sve u svemu to je samo malo zongliranja sa indeksima.
Ako ti treba nesto razjasnisti (komentari linija) javi na PP.

Code:

var
  m:array[1..100,1..100] of integer;
  i, pok, bpok, br:integer;
begin
  N :=6;
  br := n;
  bpok:=n;
  pok :=1;
  while bpok > 0 do
    begin
      for i := 1 to bpok  do
        begin
            m[n-br+1,n-br+i] := pok + i-1;
            m[br,n-br+i] := pok +(bpok*3)- i - 2;
            m[n-br+i,br] := pok + bpok+i-2 ;
            if i> 1 then
              m[n-br+i,n-br+1] := pok +(bpok*4)- i - 3;
        end;
      inc(pok,(bpok-1)*4);
      dec(bpok,2);
      dec(br);
    end;

end;

25.03.2005. u 13:55 

[es] :: C++ programiranje :: Kako napraviti program u c++ koji ce za uneseni "n" ispisati matricu oblika...

[ Pregleda: 1444 | Odgovora: 6 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.