Matrizes
Publicado por Leonardo 19/07/2007
[ Hits: 5.085 ]
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.
Números primos (usando arrays)
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta