Ver. 1.0 Beta, Nie masz kompilatora? Teraz możesz pisać skrypty ONLINE! Wersja podstawowa -nie zawiera wszystkich poleceń Pascala. Służy do nauki podstaw

Tablice


W bibliotece znajdują się szafki z kartotekami skatalogowanych książek. W każdej szafce są takie kartoteki. Tych szafek jest dość dużo. Są poustawiane obok siebie. Każda szuflada ma swój numer, czy literę. Są w nich tylko kartoteki. Jeśli biblioteka jest duża, regałów z kartotekami może być wiele.


Tablice są podobne do szuflad bibliotecznych. Tablica składa się z wielu 'schowków', poustawianych obok siebie w pamięci. W tablicy znajdują się tylko zmienne i to zmienne jednego typu. Każdy element tablicy ma swój indeks. Tablice mogą być wielowymiarowe, nie tylko w poziomie, ale i w pionie a nawet wgłąb.


Do czego służą? Przechowują grupy danych. Mogą zawierać listę liczb. Mogą zawierać kartoteki pracowników -ich nazwiska, imiona, bądź całe rekordy z danymi.


Aby je zadeklarować używa się w sekcji var wyrażenia: Array[{min}..{max}] of {...}


var tablica : Array[0..30] of Integer;

   tablica_imion : Array[1..10] of string;

   tab2 : Array[0..30, 1..3] of Integer; {tablica dwuwymiarowa}


A jak się odwoływać w programie do tablic?


Tablica[1] := 1; {zwykłe podstawienie}

for i:= 0 to 30 do {w pętli...}
  tablica[i] := 0; {wyzerowanie całej tablicy}

tab2[i][1] := x; {dwuwymiarowa}
tab2[i, 1] := x; {drugi sposób}

{*****************************************}
{wczytanie i wyświetlenie 10 imion w pętli}

for i:= 1 to 10 do {w pętli...}
begin
  Write('Podaj ', i, ' imię: ');
  ReadLn(tablica_imion[i]);
end;

WriteLn('Wpisane imiona:');

for i:= 1 to 10 do {w pętli...}
begin
  Write(tablica_imion[i]);
end;

Łatwo zauważyć, że do tablicy można się odwoływać za pomocą indeksu. I właściwie o to chodzi w używaniu tablic. Pozwalają znacznie zaoszczędzić czasochłonne wklepywanie kodu.


Przypuśćmy, że w tablicy liczb Integer, o nazwie tablica chcesz znaleźć wartość największą. Jak to zrobić? Trzeba przejść przez całą tablicę i sprawdzić, czy kolejny element jest większy nich dotychczas największy. Uwaga, na początku elementem dotychczas największym musi być ten, który jest pierwszym elementem tablicy, nie 0. Dlaczego? Ponieważ gdy tablica będzie zawierała jedynie liczby ujemne, program uważałby, że największą dotychczasową wartością jest 0, a tak nie będzie.


var tablica : Array[0..30] of Integer;
   i, max : Integer;

begin
{tutaj można wypełnić tablicę jakimiś wartościami, np. losowymi}
Randomize; {Inicjowanie losowania}

for i:= 0 to 30 do {w pętli...}
  tablica[i] := Random(100) - Random(100); {losowanie w zakresie -99..+99}

max := tablica[0];
for i:= 1 to 30 do {w pętli...}
begin
  {Jeśli największy dotychczas element jest mniejszy niż badany...}
  if max < tablica[i] then
    max := tablica[i];{zmień dotychczas największy}
end;

 {tu możesz wyświetlić max}
WriteLn('Max: ', max);
end.
Strona korzysta z plików cookie w celu świadczenia usług Google (reklamy, statytyki) oraz Facebook. Jeśli chcesz zablokować pliki cookies wyłacz je w swojej przeglądarce. Potrzebujesz pomocy? kliknij