Matrizes
Publicado por Leonardo 19/07/2007
[ Hits: 5.325 ]
Este programa faz 3 operações com matrizes: soma, subtração e multiplicação.
O código está bem explicado.
Programa que soma, subtrai e multiplica matrizes}
program menu_matrizes;
uses crt; {Biblioteca padrao}
var {Declaracao de variaveis}
a,b,c: array [1..50,1..50] of integer; {Declaracao de matrizes}
n,m,o,i,j,k,l,op: integer; {op variavel de opcao do usuario e as outras sao variaveis dependende da matrizes}
begin
clrscr; {Comando que limpa a tela}
repeat {Inicio da estrutura de repeticao}
writeln; {Comando que pula linha}
writeln ('Menu de operacoes'); {Orientacao ao usuario}
writeln ('1 - Soma de duas matrizes'); {Orientacao ao usuario}
writeln ('2 - Subtracao de duas matrizes'); {Orientacao ao usuario}
writeln ('3 - Multiplicacao de duas matrizes'); {Orientacao ao usuario}
writeln ('0 - Encerra o programa'); {Orientacao ao usuario}
writeln; {Comando que pula uma linha}
writeln ('Digite a sua operacao'); {Orientacao ao usuario}
readln (op); {Le a opcao do usuario}
writeln; {Comando que pula uma linha}
case op of {Estrutura de selecao}
1: Begin
writeln ('A quantidade de linhas deve ser igual nas duas matrizes assim como as colunas'); {Orientacao ao usuario}
writeln ('Digite o numero de linhas das matrizes'); {Orientacao ao usuario}
readln (n); {Le o numero de linhas das matrizes}
writeln ('Digite o numero de colunas das matrizes'); {Orientacao ao usuario}
readln (m); {Le o numero de colunas das matrizes}
writeln; {Comando que pula uma linha}
while (n>50) or (m>50) do {Comando de repeticao com teste do inicio, para valores maiores do que o definido}
begin
writeln ('Tanto o numero de colunas como de linhas devem ser menor ou igual a 50'); {Orientacao ao usuario}
writeln ('Digite o numero de linhas das matrizes'); {Orientacao ao usuario}
readln (n); {Le o numero de linhas das matrizes}
writeln ('Digite o numero de colunas das matrizes'); {Orientacao ao usuario}
readln (m); {Le o numero de colunas das matrizes}
writeln; {Comando que pula uma linha}
end;
writeln ('Forneca os elementos da Matriz A'); {Orientacao ao usuario}
for i:= 1 to n do {linhas}
for j:=1 to m do {colunas}
begin
writeln ('A [ ',i, ' , ', j,' ].'); {Orientacao ao usuario}
readln (a[i,j]); {Le os valores da matriz A}
writeln; {Comando que pula linha}
end;
writeln ('Forneca os elementos da Matriz B'); {Orientacao ao usuario}
for i:= 1 to n do {linhas}
for j:=1 to m do {colunas}
begin
writeln ('B [ ',i, ' , ',j, ' ].'); {Orientacao ao usuario}
readln (b[i,j]); {Le os valores da matriz B}
writeln; {Comando que pula linha}
end;
for i:= 1 to n do {linhas}
for j:= 1 to m do {colunas}
c[i,j]:= a[i,j] + b[i,j]; {Faz a soma}
writeln ('Os elementos da matriz A sao: '); {Orientacao ao usuario}
for i:= 1 to n do {linhas}
begin
for j:= 1 to m do {colunas}
write (A[i,j], ' '); {imprime os valores da matriz A}
writeln; {Comando que pula linha}
end;
writeln; {Orientacao ao usuario}
writeln ('Os elementos da Matriz B sao: '); {Orientacao ao usuario}
for i:= 1 to n do {linhas}
begin
for j:= 1 to m do {colunas}
write (B[i,j], ' '); {Imprime os valores da matriz B}
writeln; {Comando que pula linha}
end;
writeln; {Orientacao ao usuario}
writeln ('Os elementos da Matriz C sao: '); {Orientacao ao usuario}
for i:= 1 to n do {linhas}
begin
for j:= 1 to m do {colunas}
write (c[i,j], ' '); {imprime os valores da matriz C, que eh a soma}
writeln; {Comando que pula linha}
end;
end;
2: Begin
writeln ('A quantidade de linhas deve ser igual nas duas matrizes assim como as colunas'); {Orientacao ao usuario}
writeln ('Digite o numero de linhas das matrizes'); {Orientacao ao usuario}
readln (n); {Le o numero de linhas das matrizes}
writeln ('Digite o numero de colunas das matrizes'); {Orientacao ao usuario}
readln (m); {Le o numero das colunas}
writeln; {Orientacao ao usuario}
while (n>50) or (m>50) do {Comando de repeticao com teste do inicio, para valores maiores do que o definido}
begin
writeln ('Tanto o numero de colunas como de linhas devem ser menor ou igual a 50'); {Orientacao ao usuario}
writeln ('Digite o numero de linhas das matrizes'); {Orientacao ao usuario}
readln (n); {Le o numero de linhas da matrizes}
writeln ('Digite o numero de colunas das matrizes'); {Orientacao ao usuario}
readln (m); {Le o numero de colunas das matrizes}
writeln; {Comando que pula linha}
end;
writeln ('Forneca os elementos da Matriz A'); {Orientacao ao usuario}
for i:= 1 to n do {linhas}
for j:=1 to m do {colunas}
begin
writeln ('A [ ',i, ' , ', j,' ].'); {Orientacao ao usuario}
readln (a[i,j]); {Le os valores da matriz A}
writeln; {Comando que pula linha}
end;
writeln ('Forneca os elementos da Matriz B'); {Orientacao ao usuario}
for i:= 1 to n do {linha}
for j:=1 to m do {colunas}
begin
writeln ('B [ ',i, ' , ',j, ' ].'); {Orientacao ao usuario}
readln (b[i,j]); {Le os valores da matriz B}
writeln; {Comando que pula linha}
end;
for i:= 1 to n do {linhas}
for j:= 1 to m do {colunas}
c[i,j]:= a[i,j] - b[i,j]; {Faz a subtracao}
writeln ('Os elementos da matriz A sao: '); {Orientacao ao usuario}
for i:= 1 to n do {linhas}
begin
for j:= 1 to m do {colunas}
write (A[i,j], ' '); {Imprime os valores da matriz A}
writeln; {Comando que pula linha}
end;
writeln; {Comando que pula linha}
writeln ('Os elementos da Matriz B sao: '); {Orientacao ao usuario}
for i:= 1 to n do {linhas}
begin
for j:= 1 to m do {colunas}
write (B[i,j], ' '); {Imprime os valores da matriz B}
writeln; {Comando que pula linha}
end;
writeln; {Comando que pula linha}
writeln ('Os elementos da Matriz C sao: '); {Orientacao ao usuario}
for i:= 1 to n do {linhas}
begin
for j:= 1 to m do {colunas}
write (c[i,j], ' '); {Imprime os valores da matriz C, que eh a subtracao}
writeln; {Comando que pula linha}
end;
end;
3: begin
writeln ('Para multiplicacao de matrizes o numero de colunas da primeira deve ser igual as linhas da segunda');
{Orientacao ao usuario}
Repeat {inicio da estrutura de repeticao com teste no final, para verificar o numero digitado}
writeln ('Escreva o numero de linhas da Matriz A'); {Orientacao ao usuario}
readln (n); {Le o numero de linhas da matriz A}
writeln ('Escreva o numero de colunas da Matriz A que eh igual as linhas da Matriz B'); {Orientacao ao usuario}
readln (m); {Le o numero de colunas de A e o numero de linhas de B}
writeln ('Escreva o numero de colunas da Matriz B'); {Orientacao ao usuario}
readln (o); {Le o numero de colunas da matriz B}
writeln; {Comando que pula uma linha}
If (n>50) or (m>50) or (o>50) then {Verificacao das ordens das matrizes se esta no limite}
writeln ('O numero de linhas e de colunas de ambas matrizes devem ser menor ou igual a 50'); {Orientacao ao usuario}
until (n<51) and (m<51) and (o<51); {fim da estrutura de repeticao analisando as condicoes, das ordens}
writeln ('Forneca os elementos da Matriz A'); {Orientacao ao usuario}
for i:= 1 to n do {linhas}
for j:=1 to m do {colunas}
begin
writeln ('A [ ',i, ' , ', j,' ].'); {Orientacao ao usuario}
readln (a[i,j]); {Le os valores da matriz A}
writeln; {Comando que pula linha}
end;
writeln ('Forneca os elementos da Matriz B'); {Orientacao ao usuario}
for j:= 1 to m do {linhas}
for l:=1 to o do {colunas}
begin
writeln ('B [ ',j, ' , ',l, ' ].'); {Orientacao ao usuario}
readln (b[j,l]); {le os valores da matriz B}
writeln;
end;
{inicio da multiplicacao das matrizes}
for i:=1 to n do {linhas}
begin
for l:=1 to o do {colunas}
begin
c[i,l]:=0; {Define o valor inicial dos elementos da matriz}
for j:=1 to m do {Comando que roda os elementos da linhas de A e coluna de B}
c[i,l]:= c[i,l] + (a [i,j] * b[j,l]);{Faz o produto de cada elemento de uma linha pelo elemento correspondente}
{de um coluna e soma os produtos}
end;
end;
writeln ('Os elementos da matriz A sao: '); {Orientacao ao usuario}
for i:= 1 to n do {linhas}
begin
for j:= 1 to m do {colunas}
write (A[i,j], ' '); {Imprime os valores da Matriz A}
writeln; {Comando que pula linha}
end;
writeln; {Comando que pula linha}
writeln ('Os elementos da Matriz B sao: '); {Orientacao ao usuario}
for j:= 1 to m do {linhas}
begin
for l:= 1 to o do {colunas}
write (B[j,l], ' '); {Imprime os valores da Matriz B}
writeln; {Comando que pula linha}
end;
writeln; {Comando que pula linha}
writeln ('Os elementos da Matriz C sao: '); {Orientacao ao usuario}
for i:= 1 to n do {linhas}
begin
for l:= 1 to o do {colunas}
write (c[i,l], ' '); {Imprime os valores da Matriz C, que eh a Multiplicacao}
writeln; {Comando que pula linha}
end;
end;
end;
until (op=0); {encerra a estrutura de repeticao e finaliza o programa}
end.
vendas de uma empresa em matriz
soma da diagonal principal de uma matriz
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Mint Xfce não mantém a conexão no wi-fi (2)
Problemas com Driver NVIDIA (5)
Warcraft II Remastered no Linux? (8)









