Lista de Exercicios
15. Escreva um programa para multiplicar duas matrizes.
- program P15;
- uses crt;
- type
- matriz = array [1..40,1..40] of real;
- var a, b, c : matriz;
- m, n, p : byte;
- procedure ler_dimensoes;
- begin
- clrscr;
- highvideo;
- gotoxy(20,2);
- write ('PROGRAMA FEITO POR KARINE E MARIA DA GLORIA ');
- gotoxy(29,4);
- write('MULTIPLICA DUAS MATRIZES');
- lowvideo;
- repeat
- gotoxy(5,6);
- write('Entre com o número de linhas da primeira matriz: ');
- readln(m);
- gotoxy(5,7);
- write('Entre com o número de colunas da primeira matriz:
');
- readln(n);
- gotoxy(5,8);
- write('O número de linhas da segunda matriz ‚: ',n);
- gotoxy(5,9);
- write('Entre com o número de colunas da segunda matriz: ');
- readln(p);
- until (m < 40) and (n < 40) and (p < 40);
- end;
- procedure ler_prim_matriz;
- var
- begin
- clrscr;
- gotoxy(5,1)
- ;write('Entre com a primeira matriz ( ',m,' x ',n,' )');
- for i:=1 to m do
- for j:=1 to n do
- begin
- gotoxy (2+(j-1)*5,2+(i-1)*2);
- read (a[i,j]);
- end;
- end;
- procedure ler_seg_matriz;
- var
- begin
- clrscr;
- gotoxy(5,1);
- write('Entre com a segunda matriz ( ',n,' x ',p,' )');
- for i:=1 to n do
- for j:=1 to p do
- begin
- gotoxy (2+(j-1)*5,2+(i-1)*2);
- read (b[i,j]);
- end;
- end;
- procedure calc_prod_matriz;
- var
- i, j, k : byte;
- begin
- for i:=1 to m do
- for j:=1 to p do
- begin
- c[i,j] := 0;
- for k:=1 to n do
- c[i,j] := c[i,j] + a[i,k] * b[k,j];
- end;
- end;
- procedure imp_matriz_prod;
- var
- begin
- clrscr;
- gotoxy(5,1);
- write('A matriz produto ( ',m,' x ',p,' ) ‚:');
- for i:=1 to m do
- for j:=1 to p do
- begin
- gotoxy (2+(j-1)*7,2+(i-1)*2);
- write (c[i,j]:4:2);
- end;
- end;
- {programa principal}
- begin
- ler_dimensoes;
- ler_prim_matriz;
- ler_seg_matriz;
- calc_prod_matriz;
- imp_matriz_prod;
- repeat until keypressed;
- end.
Para retornar a tela principal clique aqui.