16.1.2012 dvije godine postojanja naših stranica

Višedimenzionalno polje

Neka npr. treba imenovati varijable u koje će biti pohranjen poštanski broj mjesta u Hrvatskoj i županija u kojoj se mjesto nalazi. To se može napraviti tako da se za svaku kombinaciju smisli posebno ime, npr. M1Z1, M2Z1, M1Z2, M2Z2 itd. S takvim varijablama je vrlo nespretno rukovati. Umjesto toga mnogo je bolje rabiti višedimenzionalno polje.

Članovi dvodimenzionalnog polja mogu se izdvojiti (dohvatiti) pomoću dva indeksa. Zamislimo li polje podataka kao tablicu onda prvi indeks određuje redak, a drugi stupac.

Prvi član polja ima indeks [0][0] a posljednji indeks [(broj redaka-1)][(broj stupaca-1)].
 

Za X[2][3] indeksi su:

X[0][0]

X[0][1]

X[0][2]

X[1][0]

X[1][1]

X[1][2]

 
 

Deklaracija
 

Deklaracija dvodimenzionalnog polja:

int X[2][3]

X je dvodimenzionalno polje koje se može prikazati kao tablica s dva retka i tri stupca u kojima su pohranjeni podaci po tipu cijeli brojevi.


Pridruživanje vrijednosti

Pridruživanje vrijednosti članovima polja

int X[2][3]={ {..., ..., ...},

              {..., ..., ...} };

Vrijednosti članova pojedinih redaka omeđuju se parom otvorena-zatvorena vitičasta zagrada

int X[2][3]={ {1, 2, 3},

              {4, 5, 6} };

 

Članovima polja mogu se pridružiti vrijednosti i prilikom deklaracije.

 

 

 

 

Zadatak:

Treba unijeti članove dvodimenzionalnog polja pa ih ispisati u obliku tablice.

int X[2][3]= { {1,2,3},

                    {4,5,6}};

 

Ispis je oblika:

1   2   3

4   5   6

 

 

  • Potrebno je koristiti ugniježđenu petlju for.

 

Rješenje:

 

#include <iostream>

using namespace std;

int main ()

{

            int i,j;

            int X[2][3]= { {1,2,3},

                           {4,5,6}};

            for(i=0;i<2;i++)

            { 

                        for(j=0;j<3;j++)

                        {

                                   cout<<X[i][j]<<" "; 

                        }

                        cout<<endl;

            }

            return 0;

}

 

Rezultat:

1   2   3

4   5   6

 

  • Ako se primjer dopuni, uz vrijednost pojedinog člana niza bit će zapisani i njegovi indeksi.

 

 

#include <iostream>

using namespace std;

int main ()

{

            int i,j;

            int X[2][3]= { {1,2,3},

                           {4,5,6}};

            for(i=0;i<2;i++)

            { 

                        for(j=0;j<3;j++)

                        {

                                  cout<<"X["<<i<<"]["<<j<<"]= "<<X[i][j]<<"  ";

                        }

                        cout<<endl;

            }

            return 0;

}

 

Rezultat:

X[0][0]=1   X[0][1]=2   X[0][2]=3

X[1][0]=4   X[1][1]=5   X[1][2]=6

 

 

  • Ako se kod pridruživanja vrijednosti izostave vitičaste zagrade koje označavaju pojedine retke polja, članovi se popunjavaju po redu (red po red).
  • Ako pojedinim članovima nije pridružena vrijednost, pridružuje im se 0.