Tablice
Co to takiego te tablice? Wyobraź sobie komponent StringGrid (wiersze i kolumny), w którym wpisane są różne liczby. W każdej chwili możesz odczytać zawartość danej komórki (np. [5,5]). Tablica to coś podobnego, jest to zmienna zawierająca zdefiniowaną ilość zmiennych liczbowych, tekstowych itp. Najczęściej używanymi są tablice jedno- i dwuwymiarowe. Tablica jednowymiarowa to nic innego jak ciąg zmiennych (np: 1,2,3,4,5,6..n), natomiast tablica dwuwymiarowa wyglądem przypomina wspomniany już komponent StringGrid lub okno M$ Excel. Przejdziemy do przykładu, który powinien wam wszystko uporządkować:

var
tab: array[1...10] of integer;
x: integer;
begin
for x:=1 to 10 do begin
tab[x]:=x;
end;
Label1.Caption:=IntToStr(tab[4]);
end;

Czas na tłumaczenie :) deklarujemy zmienną tab, która jest tablicą mogącą przechowywać 10 liczb całkowitych. Oczywiście możemy zadeklarować tablicę mogącą przechowywać mniej lub więcej danych. Następnie wypełniamy każdy element tablicy liczbami. Na koniec wyświetlamy na komponencie Label1 wartość czwartej komórki naszej tabeli. Teraz przykład tablicy dwuwymiarowej:

var
tab: array[1...10, 1...10] of Integer;
x,y: Integer;
begin
for x:=1 to 10 do begin
for y:=1 to 10 do begin
tab[y,x]:=x;
end;
end;
Label1.Caption:=IntToStr(tab[5,5]);
end;

Deklarujemy zmienną tab, podobnie jak w poprzednim przykładzie. Zapewne zauważyłeś że zawartość kwadratowego nawiasu trochę się różni od tego w tablicy jednowymiarowej. Jak sama nazwa mówi mamy dwa wymiary czyli oś x (w poziomie) i y (w pionie). Inaczej też odwołujemy się do zawartości danej komórki takiej tablicy, musimy podać pozycję komórki y i x.
Zapewne zadajesz sobie teraz pytanie po co komu tablice? Wbrew pozorom są one bardzo przydatne. Często wykorzystuje się je w grach komputerowych do opisywania świata gry. Np. ich zawartość stanowią liczby 1 i 0, gdzie 0 to wolna droga (gracz może iść) a 1 to przeszkoda (gracz nie ma przejścia).
Jak zapewne zauważyłeś(aś) (pozdro dla uczącej się Ani :)) zawsze deklarujemy rozmiar tabeli (kwadratowe nawiasy). Począwszy od Delphi 4 istnieje takie coś, jak tablica dynamiczna. Podając zmienną tablicy nie musimy podawać jej rozmiarów, robimy to dopiero w dalszej części programu korzystając z funkcji SetLength, np.:

var tab: array of integer;
begin
SetLength(tab, 10);
end;

Deklarujemy tablice, a następnie przypisujemy jej wielkość 11 elementów (komórki liczymy od 0). To wszystko, jeżeli nadal uważacie że jest to niepotrzebny wynalazek to ściągnijcie sobie z DA źródła moich gierek (Wyciek, Gąsienica itp.), które oparte są właśnie na tablicach.



Autorem tekstu jest: Piniol
Materiał dodany przez użytkownika: alphan