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]);