Pascal - tablice
Język programowania Pascal zapewnia strukturę danych zwaną tablicą, która może przechowywać sekwencyjną kolekcję elementów tego samego typu o stałym rozmiarze. Tablica jest używana do przechowywania zbioru danych, ale często bardziej przydatne jest myślenie o tablicy jako o zbiorze zmiennych tego samego typu.
Zamiast deklarować pojedyncze zmienne, takie jak liczba1, liczba2, ... i liczba100, deklarujesz jedną zmienną tablicową, taką jak liczby, i używasz liczb [1], liczb [2] i ..., liczb [100] do reprezentowania indywidualne zmienne. Dostęp do określonego elementu w tablicy uzyskuje się za pomocą indeksu.
Wszystkie tablice składają się z ciągłych lokalizacji pamięci. Najniższy adres odpowiada pierwszemu elementowi, a najwyższy adres ostatniemu elementowi.
Zwróć uwagę, że jeśli chcesz mieć tablicę w stylu C zaczynającą się od indeksu 0, wystarczy, że zaczniesz indeks od 0 zamiast 1.
Deklarowanie tablic
Aby zadeklarować tablicę w Pascalu, programista może albo zadeklarować typ, a następnie utworzyć zmienne tej tablicy lub bezpośrednio zadeklarować zmienną tablicową.
Ogólna postać deklaracji typu jednowymiarowej tablicy to -
type
array-identifier = array[index-type] of element-type;
Gdzie,
array-identifier - wskazuje nazwę typu tablicy.
index-type- określa indeks tablicy; może to być dowolny skalarny typ danych oprócz rzeczywistych
element-type - określa typy wartości, które będą przechowywane
Na przykład,
type
vector = array [ 1..25] of real;
var
velocity: vector;
Teraz prędkość jest zmienną tablicą typu wektorowego, która wystarcza do przechowywania do 25 liczb rzeczywistych.
Aby rozpocząć tablicę od indeksu 0, deklaracja byłaby -
type
vector = array [ 0..24] of real;
var
velocity: vector;
Typy indeksów tablicy
W Pascalu indeks tablicy może być dowolnego typu skalarnego, takiego jak liczba całkowita, wartość logiczna, wyliczenie lub podzakres, z wyjątkiem liczby rzeczywistej. Indeksy tablicy również mogą mieć wartości ujemne.
Na przykład,
type
temperature = array [-10 .. 50] of real;
var
day_temp, night_temp: temperature;
Weźmy inny przykład, w którym indeks jest typu znakowego -
type
ch_array = array[char] of 1..26;
var
alphabet: ch_array;
Indeks dolny może być wyliczeniowy -
type
color = ( red, black, blue, silver, beige);
car_color = array of [color] of boolean;
var
car_body: car_color;
Inicjowanie tablic
W Pascalu tablice są inicjowane poprzez przypisanie, albo przez określenie konkretnego indeksu dolnego, albo za pomocą pętli for-do.
Na przykład -
type
ch_array = array[char] of 1..26;
var
alphabet: ch_array;
c: char;
begin
...
for c:= 'A' to 'Z' do
alphabet[c] := ord[m];
(* the ord() function returns the ordinal values *)
Dostęp do elementów tablicy
Dostęp do elementu uzyskuje się poprzez indeksowanie nazwy tablicy. Odbywa się to poprzez umieszczenie indeksu elementu w nawiasach kwadratowych po nazwie tablicy. Na przykład -
a: integer;
a: = alphabet['A'];
Powyższa instrukcja weźmie pierwszy element z tablicy o nazwie alphabet i przypisze wartość zmiennej a.
Poniżej znajduje się przykład, który będzie wykorzystywał wszystkie wyżej wymienione trzy koncepcje, a mianowicie. deklaracja, przypisanie i dostęp do tablic -
program exArrays;
var
n: array [1..10] of integer; (* n is an array of 10 integers *)
i, j: integer;
begin
(* initialize elements of array n to 0 *)
for i := 1 to 10 do
n[ i ] := i + 100; (* set element at location i to i + 100 *)
(* output each array element's value *)
for j:= 1 to 10 do
writeln('Element[', j, '] = ', n[j] );
end.
Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109
Element[10] = 110
Tablice Pascal w szczegółach
Tablice są ważne dla Pascala i powinny wymagać dużo więcej szczegółów. Istnieje kilka ważnych pojęć związanych z tablicą, które powinny być jasne dla programisty Pascala:
Sr.No | Koncepcja i opis |
---|---|
1 | Tablice wielowymiarowe Pascal obsługuje tablice wielowymiarowe. Najprostszą formą tablicy wielowymiarowej jest tablica dwuwymiarowa. |
2 | Tablica dynamiczna W tego typu tablicach długość początkowa wynosi zero. Rzeczywistą długość tablicy należy ustawić w standardzieSetLength funkcjonować. |
3 | Tablica upakowana Tablice te są pakowane bitowo, tj. Każdy znak lub wartość prawdy jest przechowywany w kolejnych bajtach zamiast używać jednej jednostki pamięci, zwykle słowa (4 bajty lub więcej). |
4 | Przekazywanie tablic do podprogramów Można przekazać do podprogramu wskaźnik do tablicy, podając nazwę tablicy bez indeksu. |