Pular para o conteúdo

Matrizes

Este programa faz 3 operações com matrizes: soma, subtração e multiplicação.

O código está bem explicado.
Leonardo leonardo_cdan
Hits: 5.527 Categoria: Pascal/Kylix Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Este programa faz 3 operações com matrizes: soma, subtração e multiplicação.

O código está bem explicado.
Download matriz.PAS Enviar nova versão

Esconder código-fonte

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.

calcular o percentual de pessoas que sao maiores de idade

Calculadora completa com porcentagem(Lazarus)

mais um modelo de programa com vetor

média dos numeros informados em posiçoes pares em um vetor

calculo da somatoria da diagonal principal

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.