Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Transformar Conteudo de variavel / PASCAL

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Duvida Transformar Conteudo de variavel / PASCAL

    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.


    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.
    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!!

  • Font Size
    #2
    Só mudei a variavel mqtmedia para integer!
    Mais era pra funciona o IntToStr(), pelo menos no object pascal ele funciona de boa

    compila ai e vê se roda

    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 : integer;
    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];
    end;
    end;
    Writeln('Quantidade de numeros maiores ou iguais a media: ', qtmedia);
    writeln('Numeros maiores e iguais a media: ',mqtmedia);
    
    
    readkey;
    
    
    end.


    "Só Deus pode me julgar" 2Pac Eterno.


    Comment


    • Font Size
      #3
      Olha ai o exemplo:

      program idade;
      uses crt,SysUtils;
      var
      idade : integer;
      str : string;

      begin

      writeln('Digite sua idade');
      read(idade);
      str := IntToStr(idade);
      writeln(str);


      end.

      é so declarar SysUtils na uses


      "Só Deus pode me julgar" 2Pac Eterno.


      Comment


      • Font Size
        #4
        Brlooping, deu certo cara. Eu estava esquecendo de declarar a Sysutils, eu até declarei em um teste, mas eu errei numa coisa lá, agora ficou beleza aqui mano, valeu aí parceiro.

        Comment

        X
        Working...
        X