Tablice jednowymiarowe
Do tej pory w poprzednich wpisach, operowaliśmy na zwyczajnych zmiennych które przechowywały jakieś dane. Zazwyczaj były to dane liczbowe, ciągi znaków lub wartości typu true oraz false. Ale co zrobić kiedy mamy napisać program operujący na tysiącu liczb? Przecież nie zadeklarujemy dla każdej z nich osobnej zmiennej… I właśnie w takim przypadku wykorzystuje się tablice.
Praktycznie każdy język programowania wysoko pozimowego pozwala wykorzystywać tablice, tak zwane struktury złożone z jednakowych elementów tego samego typu. Najprostszą jednowymiarową tablice w matematyce określa się mianemwektora. Można ją sobie wyobrazić w ten sposób:
| x1 | x2 | x3 | … | xN |
Tak samo są przechowywane dane w tak zwanych tablicach jednowymiarowych. W języku Pascal deklaruje się je w następujący sposób:
VAR tablica : array[1..10] of integer;
Oraz kod ogólny:
VAR dowolna_nazwa_tablicy : array[1..10] {liczba elementów czyli od 1 do 10} of integer; {typ danych np. integer, byte, single itd.}Zadeklarowana powyżej tablica będzie wizualnie wyglądała tak:
| x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | x10 |
Oczywiście nie będzie zawierała ona żadnych danych.
Do odczytu i zapisu danych w tablicach używa się pętli iteracyjnej for-to-do. Prześledźmy na przykładzie jak to się odbywa:
program tabliceJednowymiarowe;
uses CRT;
var
tablica : array[1..10] of integer;
i:byte;
begin
clrscr;
for i:=1 to 10 do tablica[i] := i; {do tablicy o indeksie równemu wartości zmiennej i przypisujemy liczbę, która jest obecnie zapisana w zmiennej iteracyjnej}
for i:=1 to 10 do writeln(tablica[i]); {wyświetlamy wartość indeksu tablicy oznaczonego danym numerem np. tablica[1] - przy pierwszym wykonaniu pętli, tablica[2], tablica[3] itd.}
repeat until keypressed;
end.Zapis danych:
for i:=1 to 10 do tablica[i] := i;
Odczyt danych:
for i:=1 to 10 do writeln(tablica[i]);