jonaspaulo Posted January 12, 2006 at 07:09 PM Report #11566 Posted January 12, 2006 at 07:09 PM 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 GpL Posted January 12, 2006 at 08:08 PM Solution Report #11578 Posted January 12, 2006 at 08:08 PM 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..
jonaspaulo Posted January 12, 2006 at 08:35 PM Author Report #11586 Posted January 12, 2006 at 08:35 PM many thanks workin =)
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now