Olá pessoal.
Estou estudando lógica de programação e pascal,
e em um dos meus exercicios, fiquei preso em uma parte. Já tentei tirar minhas duvidas usando o google, e até mesmo alguns colegas aqui do forum, porém, não obtive êxito.
O problema que venho apresentar a vocês aqui, está relacionado a transformação do conteúdo de variaveis. Em uma das etapas do programa, quero que ele compare os elementos da matriz, e em seguida veja se são maior ou igual a média pra exibi-los, até aí tudo bem.
O problema é que eu queria armazenar os valores da matriz, que é do tipo inteiro, em uma variavel do tipo string, em seguida ir concatenando os valores para serem exibidos na tela, mas não sei como fazer, ja tentei usar InTToStr, val, mas creio que eu esteja errando na sintaxe. Enfim, deixarei com vocês o código.
Eu usei vários laços de repetição de proposito, pois gosto de fixar essas coisas.
sei que o código poderia ter ficado bem menor.
Aguarando!!
Estou estudando lógica de programação e pascal,
e em um dos meus exercicios, fiquei preso em uma parte. Já tentei tirar minhas duvidas usando o google, e até mesmo alguns colegas aqui do forum, porém, não obtive êxito.
O problema que venho apresentar a vocês aqui, está relacionado a transformação do conteúdo de variaveis. Em uma das etapas do programa, quero que ele compare os elementos da matriz, e em seguida veja se são maior ou igual a média pra exibi-los, até aí tudo bem.
O problema é que eu queria armazenar os valores da matriz, que é do tipo inteiro, em uma variavel do tipo string, em seguida ir concatenando os valores para serem exibidos na tela, mas não sei como fazer, ja tentei usar InTToStr, val, mas creio que eu esteja errando na sintaxe. Enfim, deixarei com vocês o código.
program supermatriz;
uses crt;
var
mat4 : array[1..4,1..4] of integer;
l, c, maior, menor, soma,QTmedia : integer;
Linha :array[1..4] of integer;
media: real;
mqtmedia : string;
begin
mqtmedia:='';
qtmedia:=0;
maior:=0;
menor:=9999;
soma:=0;
for l:=1 to 4 do
for c:= 1 to 4 do
begin
writeln('Digite o valor para Mat4[',l,']','[',c,']',': ');
read(mat4[l,c]);
soma:=soma+mat4[l,c];
if mat4[l,c]>maior then
maior:=mat4[l,c];
if mat4[l,c]<menor then
menor:=mat4[l,c];
end;
media:=soma/16;
writeln('soma dos elementos da matriz: ',soma);
writeln('a Media da soma dos elementos da matriz ‚: ',media);
writeln('O maior valor ‚: ',maior);
writeln('O menor valor ‚: ',menor);
writeLn('numeros na diagonal primaria');
for l:= 1 to 4 do
for c:= 1 to 4 do
if l = c then
write (mat4[l,c],'');
WriteLn('Numeros na diagonal Secundaria');
for l:=1 to 4 do
for c:=1 to 4 do
if c = (5-l) then
write(mat4[l,c],'');
writeln('');
WriteLn('Numeros na coluna 3');
for l:=1 to 4 do
for c:=1 to 4 do
if l = 3 then
write(mat4[l,c],'');
writeln;
for l:=1 to 4 do
for c:=1 to 4 do
begin
if mat4[l,c]>= media then
begin
qtmedia:=qtmedia+1;
mqtmedia:=mqtmedia+mat4[l,c]; // creio que seja aqui o problema.
end; // pois os tipos de dados nÆo correspondem, como fazer?
end;
Writeln('Quantidade de numeros maiores ou iguais a media: ', qtmedia);
writeln('Numeros maiores e iguais a media: ',mqtmedia);
readkey;
end.
uses crt;
var
mat4 : array[1..4,1..4] of integer;
l, c, maior, menor, soma,QTmedia : integer;
Linha :array[1..4] of integer;
media: real;
mqtmedia : string;
begin
mqtmedia:='';
qtmedia:=0;
maior:=0;
menor:=9999;
soma:=0;
for l:=1 to 4 do
for c:= 1 to 4 do
begin
writeln('Digite o valor para Mat4[',l,']','[',c,']',': ');
read(mat4[l,c]);
soma:=soma+mat4[l,c];
if mat4[l,c]>maior then
maior:=mat4[l,c];
if mat4[l,c]<menor then
menor:=mat4[l,c];
end;
media:=soma/16;
writeln('soma dos elementos da matriz: ',soma);
writeln('a Media da soma dos elementos da matriz ‚: ',media);
writeln('O maior valor ‚: ',maior);
writeln('O menor valor ‚: ',menor);
writeLn('numeros na diagonal primaria');
for l:= 1 to 4 do
for c:= 1 to 4 do
if l = c then
write (mat4[l,c],'');
WriteLn('Numeros na diagonal Secundaria');
for l:=1 to 4 do
for c:=1 to 4 do
if c = (5-l) then
write(mat4[l,c],'');
writeln('');
WriteLn('Numeros na coluna 3');
for l:=1 to 4 do
for c:=1 to 4 do
if l = 3 then
write(mat4[l,c],'');
writeln;
for l:=1 to 4 do
for c:=1 to 4 do
begin
if mat4[l,c]>= media then
begin
qtmedia:=qtmedia+1;
mqtmedia:=mqtmedia+mat4[l,c]; // creio que seja aqui o problema.
end; // pois os tipos de dados nÆo correspondem, como fazer?
end;
Writeln('Quantidade de numeros maiores ou iguais a media: ', qtmedia);
writeln('Numeros maiores e iguais a media: ',mqtmedia);
readkey;
end.
sei que o código poderia ter ficado bem menor.
Aguarando!!
Comment