Tabela (računalništvo)

Iz Wikipedije, proste enciklopedije
Jump to navigation Jump to search
Slikovni prikaz enorazsežne tabele
Večrazsežna tabela

Tabela (tudi polje ali vektor, angleško array) je sestavljena podatkovna struktura. Značilnost tabele je, da vsebuje več elementov istega tipa (v tolmačenih jezikih (PHP, JS) lahko tudi različnega), ki se jih lahko dosega s pomočjo indeksa, ki se ga lahko predstavlja kot zaporedno številko določenega elementa.

Enorazsežno tabelo se lahko predstavlja kot skupek podatkov, ki si sledijo v nekakšni verigi ali nizu. Vsak podatek ima svoje »ime« oziroma indeks. Večrazsežno tabelo se najlažje predstavlja v obliki tabele, npr. pri dvorazsežnem polju je določeno število stolpcev in določeno število vrstic. Količina razsežnosti ni omejena, lahko jih je poljubno veliko. To seveda velja, če je dovolj pomnilnika v računalniku.

Do podatkov se dostopa tako, da se določi posamezne indekse za razsežnosti, ki jih ima polje npr. 1,2,5 za trirazsežno polje.

Zgledi definicij in uporab polj v različnih programskih jezikih:

  int p[10];        /*  enorazsežna tabela z desetimi celimi števili */
  float p[10][10];  /* dvorazsežna tabela s stotimi realnimi števili */

V C-ju se indeksi po navadi začnejo šteti z 0.

 p1 : array [1...10] of integer;       { enorazsežna tabela }
 p2 : array [1...10, 1...10] of real;  { dvorazsežna tabela }

Uporaba tabel[uredi | uredi kodo]

Največkrat se uporabi tabelo takrat, kadar je treba shraniti večjo količino podatkov v spremenljivke. Namesto, da se deklarira vsaka spremenljivka posebej, se raje vzame tabelo. Celotno deklaracijo se opravi zelo hitro (po navadi ena vrstica kode), dostop do posameznih podatkov je pa tudi preprost.

 ''/* zgled polnjenja tabele v programskem jeziku C */''
 int i, polje[10];
 for (i=0; i<10; i++)
   polje[i] = 5;

Kadar obstajajo večrazsežne tabele, se uporabi gnezdene zanke.

/* zgled polnjenja 2-d polja v programskem jeziku C */
 int i,j, polje[10][10];
 for(i=0; i<10; i++)
 {
  for (j=0; j<10; j++)
     polje[i][j] = 5; 
 }
/* zgled polnjenja 2-d polja v programskem jeziku paskal */
 var
  i,j: integer;
  polje: array[1...10,1...10] of integer;
 begin
  for i:=0 to 10 do
   for j:=0 to 10 do
    polje[i,j]:=5;
/* zgled polnjenja 2-d polja v programskem jeziku PHP */ 
 $polje=array_fill(0,10, array_fill(0,10,5));