Algoritmos – Arrays Dimensionais e Bidimensionais – Parte 5

ARRAYS DIMENSIONAIS

Arrays Dimensionais também conhecidas como Variáveis Compostas Homogêneas, são variáveis que em seu conteúdo, pode conter vários valores dimensionais, ou seja quando declaramos este tipo de variável temos uma estrutura em forma de vetor linha.

 

Declaração

Tipo

IDENTIFICADOR = vetor [LI .. LF] de <tipo>;

variáveis

Variável : IDENTIFICADOR;

Onde: LI – representa o limite inicial do vetor; LF – representa o limite final do vetor; <tipo> – qualquer um dos tipos primitivos, ou ainda um outro tipo que pode ser construído, o qual veremos adiante.

Exemplo :

 Program Vetor;

Uses crt;

Var

cont = array[1..8] of integer;

ix = integer

Begin

For ix := 1 to 8 do begin

Cont[ix] := ix;

End;

End.

Neste exemplo a variável “cont” recebera a seguinte estrutura.

1
2
3
4
5
6
7
8

As arrays dimensionais são utilizadas quando necessitamos de um número determinado de variáveis, porém este número de variáveis muda à medida que o programa é executado. Um exemplo são as variáveis tipo string, elas são internamente arrays dimensionais; pois uma string como foi visto na parte 2 deste curso, ela pode ter até no máximo 255 caracteres e cada um deste caracteres ocupa uma posição na memória e o conjunto destas posições formam o nome.

Exemplo

 Program VetorString;

Uses crt;

Var

Nome = string;

Begin

Writeln (‘Digite o nome:’);

Readln (nome);

End.

 

Supondo que o nome digitado foi Maria seguira a seguinte estrutura.

M
A
R
I
A

Portanto a variável Nome seguira.

Nome[1] = “M”;

Nome[2] = “A”;

Nome[3] = “R”;

Nome[4] = “I”;

Nome[5] = “A”;

 

Este tipo de variável (Array dimensional), pode nos parecer sem utilidade, mas sem este tipo de dados o computador por exemplo, não conseguiria ordenar um conjunto de palavras em ordem alfabética, já que neste caso ele ordena letra a letra até que o conjunto fique ordenado. Esta função para nós hoje é muito simples, mas podemos usar esta estrutura para outras inúmeras finalidades, basta que nós saibamos empregá-las da melhor forma possível.

Veremos agora sobre outro tipo de variável a Array Bidimensional.

 

ARRAYS BIDIMENSIONAIS

São variáveis compostas que necessitam de mais de um índice para individualização de seus elementos. Além de guardarmos os valores em linha também, podemos ainda referenciá-los por coluna, como aqueles jogos de batalha naval, onde você tem que combinar o identificador da coluna e da linha para obter o campo (variável) desejada.

1
2
3
4
5
A
B
C
D
X
E
F

Quando precisamos identificar o item “X” referenciamos a posição 4D.

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

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

 

Exemplo;

 Program matrizes;

Uses crt;

{ 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 begin

for j:= 1 to 5 do begin

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 begin

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 begin

soma := soma + notas2[i,j];

media := soma/10;

media_disc[j] := media;

end;

end;

end;

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 begin

writeln(‘Disciplina[‘, j:2, ‘] = ‘, media_disc[j]:3:2);

end;

end;

end.

Fonte: http://www.juliobattisti.com.br/tutoriais/acaciocosta/logicaalgoritmos005.asp

Deixe um comentário