Você está na página 1de 6

Preparação para o teste 2

- Estruturas de Repeticao: Comandos For, while do, Repeat until;

- Vectores e Matrizes;

- Funções e Procedimentos;

Vetores e Matrizes são estruturas de dados muito simples que podem nos ajudar muito quando temos
muitas variáveis do mesmo tipo em um algoritmo. Imagine o seguinte problema:

- Você precisa criar um algoritmo que lê os nomes e as 4 notas de 5 alunos, calcular a média de cada aluno
e informar quais foram aprovados e quais foram reprovados.

Conseguiu imaginar quantas variáveis você vai precisar? Muitas, não é? Vamos fazer uma conta rápida: 5
variáveis para armazenar os nomes dos alunos, (4 * 5 =) 20 variáveis para armazenar as 4 notas de cada
aluno e por fim, 5 variáveis para armazenar as médias de cada aluno. 30 variáveis no total, sem contar a
quantidade de linhas de código que você vai precisar para ler todos os dados do usuário, calcular as médias
e apresentar os resultados. Mas usando Vectores e Matrizes (também conhecidos como ARRAYS), não
precisamos criar 30 variáveis, podemos simplificar isso.

Vector (array uni-dimensional) é uma variável que armazena várias variáveis do mesmo tipo. No
problema apresentado anteriormente, nós podemos utilizar um vector de 5 posições para armazenar os
nomes dos 5 alunos.

Matriz (array multi-dimensional) é um vector de vectores. No nosso problema, imagine uma matriz
para armazenar as 4 notas de cada um dos 5 alunos. Ou seja, um vector de 5 posições, e em cada
posição do vector, há outro vector com 4 posições. Isso é uma matriz.

Cada item do vector (ou matriz) é acessado por um número chamado de índice.

Program MediaDe5Alunos;

var

nomes: array [1..5] of string;

notas: array [1..5,1..4] of real;

medias: array [1..5] of real;

i,j: integer;

Begin
{Leitura dos nomes e as notas de cada aluno para compor a matriz notas}

For i:=1 to 5 do

begin

write('Digite o nome do aluno(a) número ', i,' de 5: ');

read(nomes[i]);

end;

For i:=1 to 5 do

Begin

for j:=1 to 4 do

begin

write('Digite a nota ',j, ' do aluno(a) ',nomes[i], ':');

read(notas[i, j]);

{CÁLCULO DAS MÉDIAS}

medias[i]:= (notas[i, 1] + notas[i, 2] + notas[i, 3] + notas[i, 4]) / 4;

end;

end;

{APRESENTAÇÃO DOS RESULTADOS}

For i:= 1 to 5 do

begin

if medias[i] >= 10 then

writeln('O aluno(a) ', nomes[i], ' foi aprovado com as notas ', notas[i, 1], ', ', notas[i, 2], ', ',
notas[i, 3], ', ', notas[i, 4], ' e média: ', medias[i])

else

writeln('O aluno(a) ', nomes[i], ' foi reprovado com as notas (', notas[i, 1], ', ', notas[i, 2], ', ',
notas[i, 3], ', ', notas[i, 4], ' e média: ', medias[i]);

end;

end.
Repare que os arrays (vectores ou matrizes) aliados a estructura de repetição FOR são um óptimo
recurso para algoritmos que precisam de muitas variáveis do mesmo tipo.

{Mesmo exercício com o uso de Funções e Procedimentos}

Program Pzim ;

var

nomes: array [1..5] of string;

notas: array [1..5,1..4] of real;

medias: array [1..5] of real;

i,j: integer;

nome: string;

nota: integer;

{PROCEDIMENTO QUE ARMAZENA NOMES NO ARRAY}

Procedure leitura_dos_nomes(nome: string; i: integer);

begin

nomes[i]:= nome;

end;

{PROCEDIMENTO QUE ARMAZENA NOTAS NO ARRAY}

Procedure leitura_das_notas(nota: real; i, j: integer);

begin

notas[i, j]:= nota;

end;

{FUNCAO PAERA O CáLCULO DAS MEDIAS}

Function calculo_da_media(n1,n2,n3,n4: real): real;


begin

medias[i]:= (n1 + n2 + n3 + n4) / 4;

calculo_da_media:= medias[i];

end;

{PROGRAMA PRINCIPAL}

Begin

{LEITURA DOS NOMES}

For i:= 1 to 5 do

begin

write('Digite o nome do aluno(a) número ', i,' de 5: ');

read(nome);

leitura_dos_nomes(nome, i); {CHAMADA DO PROCEDIMENTO}

end;

{LEITURA DAS NOTAS}

For i:= 1 to 5 do

begin

For j:= 1 to 4 do

begin

write('Digite a nota ', j, ' do aluno(a) ',nomes[i], ': ');

read(nota);

leitura_das_notas(nota, i, j); {CHAMADA DO PROCEDIMENTO}

end

end;

{MANDAR AS NOTAS DOS ALUNOS PARA FUNCAO DO CáLCULO DAS MEDIAS}

for i:= 1 to 5 do

begin

calculo_da_media(notas[i, 1], notas[i, 2], notas[i, 3], notas[i, 4]) {CHAMADA DA FUNCAO}
end;

{APRESENTAÇÃO DOS RESULTADOS}

For i:= 1 to 5 do

begin

if medias[i] >= 10 then

writeln('O aluno(a) ', nomes[i], ' foi aprovado com as notas ', notas[i, 1], ', ',
notas[i, 2], ', ', notas[i, 3], ', ', notas[i, 4], ' e média: ', medias[i])

else

writeln('O aluno(a) ', nomes[i], ' foi reprovado com as notas (', notas[i, 1], ', ', notas[i, 2], ', ',
notas[i, 3], ', ', notas[i, 4], ' e média: ', medias[i])

end;

End.

Nota: Para aprender programação (e qualquer outra coisa) o mais importante é a força de vontade!

Program Exemplo2;

uses crt;

var

vector: array [1..10] of real;

indice: integer;

begin

{inserindo o vector o vetor}

for indice: =1 to 10 do

begin

write(' Escreva um número real: ');

readln(vector[indice]);

end;

writeln(‘__________________________________________________’);
{imprimindo o vector}

for indice: =1 to 10 do

begin

writeln(' | indice = ' , indice , ' | vector [ indice ] = ', vector[indice]:2:2 , ' | ');

end;

readkey();

end.

CONCLUSÃO

Como você pode perceber nesse artigo, Vetores e Matrizes são, na verdade, a mesma coisa: array. A
diferença é que o vector é um array de apenas 1 dimensão e a matriz é um array de 2 (ou mais) dimensões.

Você também pode gostar