Jump to content

Soma de duas matrizes


Go to solution Solved by GpL,

Recommended Posts

Posted
program bra;


type

t_linha=1..10;
t_coluna=1..10;
t_matriz=array[t_linha,t_coluna] of real;

var

nl:t_linha;
nc:t_coluna;
matriza,matrizb,matrizsoma:t_matriz;

procedure dimensao( var nl: t_linha; var nc:t_coluna);

begin
  repeat
    write('insira numero de linhas ');
    readln(nl);
  until (nl >0) and (nl <= 10);

  repeat
    write('insira numero de colunas ');
    readln(nc);
   until (nc >0) and (nc <= 10);

end;


procedure ler (var matriz:t_matriz; nl:t_linha; nc:t_coluna);
var
linha:t_linha;
coluna:t_coluna;


begin

   for linha:= 1 to NL do
     begin
        write('Linha', linha:2, '?');
        for coluna:=1 to NC do
          read (matriz[linha,coluna]);
         readln;
     end;
end;



procedure escrita(matriz:t_matriz; nl:t_linha; nc:t_coluna);
var
linha:t_linha;
coluna:t_coluna;

begin
  for linha:=1 to nl do
    begin
      for coluna:=1 to nc do
        write(matriz[linha,coluna]:8:2);
        writeln
     end
end;


procedure soma (mata,matb :t_matriz; var mats:t_matriz; nl:t_linha; nc:t_coluna);
var
linha:t_linha;
coluna:t_coluna;

begin
for linha:=1 to nl do
   for coluna:=1 to nc do
     mats[linha,coluna]:=mata[linha,coluna]+matb[linha,coluna];
end;





begin

dimensao (nl,nc);

writeln('ler matriz a');
ler(matriza,nl,nc);
escrita(matriza,nl,nc);
writeln('ler matriz b');
ler(matrizb,nl,nc);
escrita(matrizb,nl,nc);
soma(matriza,matrizb,matrizsoma,nl,nc);
writeln('escrita da matriz soma a+b');
escrita(matrizsoma,nl,nc);



end.

Boas pessoal. O programa le as duas matrizes, mas nao imprime a soma delas no ecra :|

Alguem sabe k sera? algum erro?

Obrigado

  • Solution
Posted
program bra;


type

t_linha=1..10;
t_coluna=1..10;
t_matriz=array[t_linha,t_coluna] of real;

var

nl:t_linha;
nc:t_coluna;
matriza,matrizb,matrizsoma:t_matriz;

procedure dimensao( var nl: t_linha; var nc:t_coluna);

begin
  repeat
    write('insira numero de linhas ');
    readln(nl);
  until (nl >0) and (nl <= 10);

  repeat
    write('insira numero de colunas ');
    readln(nc);
   until (nc >0) and (nc <= 10);

end;


procedure ler (var matriz:t_matriz; nl:t_linha; nc:t_coluna);
var
linha:t_linha;
coluna:t_coluna;


begin

   for linha:= 1 to NL do
     begin
        write('Linha', linha:2, '?');
        for coluna:=1 to NC do
          read (matriz[linha,coluna]);
         readln;
     end;
end;



procedure escrita(matriz:t_matriz; nl:t_linha; nc:t_coluna);
var
linha:t_linha;
coluna:t_coluna;

begin
  for linha:=1 to nl do
    begin
      for coluna:=1 to nc do
        write(matriz[linha,coluna]:8:2);
        writeln
     end
end;


procedure soma (mata,matb :t_matriz; var mats:t_matriz; nl:t_linha; nc:t_coluna);
var
linha:t_linha;
coluna:t_coluna;

begin
for linha:=1 to nl do
   for coluna:=1 to nc do
     mats[linha,coluna]:=mata[linha,coluna]+matb[linha,coluna];
   writeln(mats[linha,coluna]:8:2);
end;





begin

dimensao (nl,nc);

writeln('ler matriz a');
ler(matriza,nl,nc);
escrita(matriza,nl,nc);
writeln('ler matriz b');
ler(matrizb,nl,nc);
escrita(matrizb,nl,nc);
soma(matriza,matrizb,matrizsoma,nl,nc);
writeln('escrita da matriz soma a+b');
escrita(matrizsoma,nl,nc);



end.

tenta assim.. falta aí um clrscr no principio do programa.. e um readln no fim para não sair do programa.. o que te faltava era escrever o procedimento da soma..

agora ja soma..

executa o programa uma vez, insere os dados todos.. quando inserires a ultima linha o programa vai acabar,não vais ver a soma mas ele escreve-a, podes confirmar isso ao correr o programa outra vez logo de seguida e como não tem clrscr vai te aparecer lá os dados que inseriste da ultima vez e vai te aparecer a soma tambem..

hasta..

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.