Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano

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.

×
×
  • Dodaj nową pozycję...