Créditos FEC-Unicam

Estrutura de Dados

Vimos anteriormente como um identificador referencia um tipo, como inteiro, real, char, boolean e string. A linguagem Pascal também dispõe meios para que um mesmo identificador referencie vários dados, do mesmo tipo ou de tipos diferentes.
Isso é conhecido em Pascal como variável estruturada. Há dois tipos dessas variáveis:

Variáveis Compostas Homogêneas
Variáveis Compostas Heterogêneas
Variáveis Compostas Homogêneas

São variáveis conhecidas em Pascal como arrays (vetores), e correspondem a um conjunto de dados de um mesmo tipo. Essas variáveis podem ser unidimensionais ou multidimensionais, ou seja, dependem da quantidade de índices necessários para individualização de cada elemento do conjunto.

Variáveis Compostas Homogêneas Unidimensionais

São variáveis compostas que necessitam de somente um índice para individualizar um elemento do conjunto. A criação desse tipo de variável é feita com a seguinte declaração:

lista-de-identificadores : ARRAY[k] OF t;

lista-de-identificadores são nomes associados às variáveis que se deseja declarar.
k é da forma k1..k2, em que l1 é o índice inferior do intervalo de variação do índice e l2 é o limite superior. t é o tipo dos componentes da variável.

Para se declarar uma variável nota do tipo real com 10 elementos basta escrever nota : array[1..10] of real; Os índices para a variável nota estão no intervalo 1,2,3,...,10. Para acessar um elemento i dessa variável basta referenciá-lo como nota[i]. Por exemplo, nota[1], nota[10], que referenciam respectivamente o valor do primeiro e o valor do décimo elemento da variável nota.
Utilizando-se, por exemplo um variável i do tipo inteiro, tem-se a possibilidade de acesso a qualquer um dos elementos. Seja nota[i] uma referência em um programa. Antes da variável nota ser consultada, a variável i seria substituída pelo seu conteúdo no dado instante. Se i=2, então o elemento da acessado seria nota[2]. Os elementos da variável nota podem ser referenciados por expressões como por exemplo nota[i+1] e nota[i+j+1].

Exemplo 4.1:

nota

80 70 75 100 85 92 68 80 90 75
1 2 3 4 5 6 7 8 9 10

nota[1] = 80
nota[2] = 70
      .
      .
      .
nota[10] = 75

program array_uni;

{ Lê dez notas e calcular a médida}


var

nota : array[1..10] of real;
soma, media : real;
i : integer;
begin

soma := 0;
writeln('Digite os valores das 10 notas:');
for i:= 1 to 10 do
read(nota[i]);
for i:= 1 to 10 do
soma := soma + nota[i];
media := soma/10;
writeln('Média das notas: ',media:2:2);
end.
Saída:

Digite os valores das 10 notas:
80 70 75 100 85 92 68 80 90 75
Média das notas: 81.50