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