Documente Academic
Documente Profesional
Documente Cultură
MATRIZES
Uma matriz um array de duas dimenses. Uma matriz til por exemplo para armazenar
tabelas, fazer clculos matemticos, fazer desenhos, resolver problemas, etc.
Imagina que queremos guardar no computador uma lista de alunos com suas respetivas
notas em todas as disciplinas lecionadas durante o ano. Por exemplo a tabela seguinte
mostra uma lista de 10 alunos e as notas em 8 disciplinas.
Joo
Pedro
Gabriela
Roberto
Paulo
Gisela
Vera
Jorge
Paulo
Flvio
d1
14
d2
14
d3
16
d4
18
d5
10
d6
12
d7
12
d8
18
mdia
14.25
Pretende-se fazer um programa para armazenar esta tabela e depois poder calcular por
exemplo a mdia de todas as notas de todos os alunos.
Em Pascal, uma matriz definida de forma muito semelhante a um vetor:
Var notas : array [1..10,1..8] of integer;
APIB-12
Begin
For j:=1 to D do
Begin
{ler as notas dos alunos em cada disciplina}
Write('ALUNO:',i,' :::: NOTA[',j,']=');
Readln (notas[i][j]);
End;
End;
{Processamento de Dados}
For i:=1 to N do
Begin
Soma:=0; {inicializa a soma das notas do aluno i}
For j:=1 to D do
Begin
{adiciona a soma, as notas da disciplina j}
Soma:=Soma + notas[i][j];
End;
Media[i]:=Soma/D;
End;
{Saida de Resultados}
For i:=1 to N do
Begin
Writeln('NOTA MEDIA DO ALUNO ',i,' : ',Media[i]);
End;
End.
FM2014
APIB-12
Vamos agora modificar o programa anterior para tambm armazenar os nomes dos alunos
num vetor de strings.
Notas[i,j]
Nomes[i]
1
2
3
4
5
Z
Jota
Rui
Kaka
Xana
1
2
3
4
5
10
12
15
14
13
17
O programa dever ler os nomes dos alunos para um vetor de strings e as notas para uma
matriz de inteiros.
Program Turma;
Var notas: array [1..10,1..8] of integer;
Media: array [1..8] of real;
aluno: array [1..10] of string;
Soma: real;
i,j,N,M: integer;
Begin
Write('NUMERO DE ALUNOS: ');
Readln(N);
Write('NUMERO DE DISCIPLINAS: ');
Readln(M);
For i:=1 to N do
Begin
Write('NOME DO ALUNO ',i,' : ');
Readln(aluno[i]);
For j:=1 to M do
Begin
Write('DISCIPLINA: ',j,' :: NOTA[',j,']=');
Readln (notas[i][j]);
End;
End;
For i:=1 to N do
Begin
Soma:=0;
For j:=1 to M do
Begin
Soma:=Soma + notas[i][j];
End;
Media[i]:=Soma/M;
End;
For i:=1 to N do
Begin
Writeln('MEDIA DO ALUNO ',aluno[i],' : ',Media[i]);
End;
End.
FM2014
APIB-12
Um exemplo de execuo do cdigo anterior:
Exerccios propostos
1- O misterioso algarismo do bilhete de identidade. J reparou que o seu B.I./C.C. tem
um dgito suplementar depois do seu nmero. Para que serve? Trata-se apenas de um
check digit (dgito de controlo) que atesta a veracidade do nmero do BI. Como o
calcular?
O algoritmo simples. Basta multiplicar cada algarismo que compe o nmero do BI pelo valor
da sua posio, sabendo que o algarismo de controlo ocupa a casa 1, e o algarismo que est sua
esquerda ocupa a casa 2, e assim sucessivamente.
No segundo exemplo ao lado, o
nmero 9651593-7, (7 o
algarismo de controlo) se
aplicarmos o algoritmo de
controlo, ficar assim:
9x8+6x7+5x6+1x5+5x
4 + 9 x 3 + 3 x 2 = 72 + 42 + 30
+ 5 + 20 + 27 + 6 = 202
202 11 = 18,364 (NO D
RESTO ZERO), mas se lhe
adicionarmos 7, j d!
202 + 7 = 209
209 11 = 19 e resto zero!!!
FM2014
APIB-12
Fazer um programa que reconhea se uma cadeia de caracteres palndrome. Usar a
funo Length(s) para saber o tamanho da cadeia s.
3- Fazer um programa que dadas duas matrizes A e B, determina a soma de A e B.
A soma de duas matrizes obtida pela soma dos elementos correspondentes de cada
matriz e o resultado colocado numa outra matriz.
Exemplo de soma de duas matrizes A e B de tamanho 3x3:
A
| 1 4 2 |
| 0 5 1 |
| 2 2 8 |
| 1 2 3 |
| 1 0 1 |
| 2 3 2 |
| 2 6 5 |
| 1 5 2 |
| 4 5 10|
FM2014