Matrizes

Publicado por Leonardo 19/07/2007

[ Hits: 4.977 ]

Download matriz.PAS




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

O código está bem explicado.

  



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.

Scripts recomendados

Maior e menor

Programa lê nome (básico) - Pascal para iniciantes

soma de números pares

Primo_for

Calculadora Empresarial Lazarus


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts