Aula 14: Variáveis Compostas Homogêneas Multidimensionais

São variáveis compostas que necessitam de mais de um índice para individualização de seus elementos.
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 os nome que serão associados às variáveis multidimensionais.
k é da forma l11..l12,l21..l22, ... ,ln1..ln2, que são limites do intervalo de variação de cada um dos n índices da variável.
t é o tipo a que pertencem os componentes do conjunto.


Por exemplo, para criar uma variável notas2, contendo as notas de alunos em cada disciplina, onde as linhas representam os alunos e as colunas representam as disciplinas, faz-se o seguinte

notas2 : array[1..10,1..5] of real;

Isso indica que temos 10 alunos e 5 disciplinas, ou o contrário, conforme a convenção que se adotar para linha e para coluna. Para acessar a nota do aluno 3 na disciplina 5 basta referenciá-lo por
nota2[3,5] ou nota[3][5]. Outros exemplos de acesso aos elementos neste tipo de variável são:
notas2[3,4], notas2[5,5], notas2[i,j]
ou
notas2[3][4], notas2[5][5], notas2[i][j]

Exemplo 4.2:

program matrizes;
{Calcular a média das notas de cada aluno e as médias das notas em cada disciplina}

var

    notas2 : array[1..10,1..5] of real;
    media_aluno : array[1..10] of real;
    media_disc : array[1..5] of real;
    i, j : integer;
    soma, media : real;
begin

{ preenche a matriz notas2, linha a linha (aluno) }
    for i:= 1 to 10 do
      for j:= 1 to 5 do
        read(notas2[i,j]);
{ calculando as médias das notas dos alunos}
    for i:= 1 to 10 do
      begin
        soma := 0;
        for j:= 1 to 5 do
          soma := soma + notas2[i,j];
        media := soma/5;
        media_aluno[i] := media;
      end;

{ calculando as médias das notas em cada disciplina }

    for j:= 1 to 5 do
      begin
        soma := 0;
        for i:= 1 to 10 do
          soma := soma + notas2[i,j];
        media := soma/10;
        media_disc[j] := media;
      end;
{ Imprimindo os resultados }
    writeln('Média das notas dos alunos:');
    for i:= 1 to 10 do
      writeln('Aluno[', i:2, '] = ', media_aluno[i]:3:2);
    writeln('Média das notas em cada disciplina:');
    for j:= 1 to 5 do
      writeln('Disciplina[', j:2, '] = ', media_disc[j]:3:2);
end.

Aula Anterior | Índice | Próxima Aula