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.