Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Ajuda exercicio Pascal

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

  • Font Size
    #1

    Duvida Ajuda exercicio Pascal

    Estou aprendendo lógica e estou utilizando o Pascal

    fiz o seguinte exercício:
    Informar 20 números, imprimir o maior e o menor....
    mas não estou conseguindo checar se ele é o maior ou o menor...
    Podem me ajudar?

    Program Pzim ;
    var
    n,cont, maior, menor: integer;
    Begin
    cont := 0;
    maior := 0;
    menor := 0;
    While cont < 20 do
    begin
    cont:= cont + 1;
    writeln( 'Informe um número' ) ;
    read(n) ;
    end;
    If cont = 1 then
    begin
    if n > maior then
    maior := n;
    if n < menor then
    menor := n;
    end;
    Writeln ('O maior número é ',maior, ' o menor número é ', menor);

    End.
    Similar Threads

  • Font Size
    #2
    Postado Originalmente por ellis Ver Post
    Estou aprendendo lógica e estou utilizando o Pascal

    fiz o seguinte exercício:
    Informar 20 números, imprimir o maior e o menor....
    mas não estou conseguindo checar se ele é o maior ou o menor...
    Podem me ajudar?

    Program Pzim ;
    var
    n,cont, maior, menor: integer;
    Begin
    cont := 0;
    maior := 0;
    menor := 0;
    While cont < 20 do
    begin
    cont:= cont + 1;
    writeln( 'Informe um número' ) ;
    read(n) ;
    end;
    If cont = 1 then
    begin
    if n > maior then
    maior := n;
    if n < menor then
    menor := n;
    end;
    Writeln ('O maior número é ',maior, ' o menor número é ', menor);

    End.
    Boa tarde,
    pelo que eu entendi você deve fazer o seguinte dar um valor para o maior como -1 e o menor com 10000, quando for fazer a logica deve sempre gravar no final do contador, vamos supor:

    SE maior <= n faça
    maior = n;
    fim.


    mais ou menos isso. você deve gravar sempre depois de digitar o numero o valor maior dentro da variável, acho que não consegui explicar muito bem, rs, qualquer coisa me manda private que eu tento te ajudar.

    sigpic

    Comment


    • Font Size
      #3
      Deixa eu ver se entendi!

      Seria isso?

      Program Pzim ;
      var
      n,cont, maior, menor: integer;
      Begin
      cont := 0;
      maior := 1000000;
      menor := 1;
      While cont < 5 do
      begin
      cont:= cont + 1;
      writeln( 'Informe um número' ) ;
      read(n) ;
      end;
      If cont = 1 then
      begin
      if n > maior then
      maior := n;
      if n < menor then
      menor := n;
      end;
      Writeln ('O maior número é ',maior, ' o menor número é ', menor);

      End.

      mesmo assim ele não seta os valores corretos...
      O resultado aparece O maior número é 100000 o menor número é 1

      Comment


      • Font Size
        #4
        Postado Originalmente por Happy Ver Post
        Boa tarde,
        pelo que eu entendi você deve fazer o seguinte dar um valor para o maior como -1 e o menor com 10000, quando for fazer a logica deve sempre gravar no final do contador, vamos supor:

        SE maior <= n faça
        maior = n;
        fim.


        mais ou menos isso. você deve gravar sempre depois de digitar o numero o valor maior dentro da variável, acho que não consegui explicar muito bem, rs, qualquer coisa me manda private que eu tento te ajudar.


        Seria isso?

        Program Pzim ;
        var
        n,cont, maior, menor: integer;
        Begin
        cont := 0;
        maior := 1;
        menor := 10000;
        While cont < 20 do
        begin
        cont:= cont + 1;
        writeln( 'Informe um número' ) ;
        read(n) ;
        end;
        If cont > 1 then
        begin
        if n > maior then
        maior := n;
        if n < menor then
        menor := n;
        end;
        Writeln ('O maior número é ',maior, ' o menor número é ', menor);

        End.


        mesmo assim não da certo...ele trás o último número como maior e menor...

        Comment


        • Font Size
          #5
          Postado Originalmente por ellis Ver Post
          Seria isso?

          Program Pzim ;
          var
          n,cont, maior, menor: integer;
          Begin
          cont := 0;
          maior := 1;
          menor := 10000;
          While cont < 20 do
          begin
          cont:= cont + 1;
          writeln( 'Informe um número' ) ;
          read(n) ;
          end;
          If cont > 1 then
          begin
          if n > maior then
          maior := n;
          if n < menor then
          menor := n;
          end;
          Writeln ('O maior número é ',maior, ' o menor número é ', menor);

          End.


          mesmo assim não da certo...ele trás o último número como maior e menor...
          Pronto ^^
          Código:
          program Project2;
          
          
          Var
            posicao          : array[1..20] of integer;
            NumeroMenor, NumeroMaior, contador : integer;
          
          Begin
          
          
            For contador := 1 To 20 do
            begin
              write('Informe o ',contador:2,' Numero: ');
              readln (posicao[contador]);
            end;
              NumeroMenor:= posicao[1];
          
            For contador := 2 to 20 do
            begin
              if NumeroMenor > posicao[contador] then
                NumeroMenor:= posicao[contador];
            end;
          
            For contador := 2 to 20 do
            begin
              if NumeroMaior < posicao[contador] then
                NumeroMaior:= posicao[contador];
            end;
          
            writeln('O Menor Numero e : ', NumeroMenor);
            writeln('O Maior Numero e : ', NumeroMaior);
            ReadLn;
          
          end.
          Dúvida resolvida ?
          Last edited by ForeverIstalone; 17-02-2014, 17:39. Motivo: Por Caixa de code

          Comment


          • Font Size
            #6
            Postado Originalmente por ellis Ver Post
            Seria isso?

            Program Pzim ;
            var
            n,cont, maior, menor: integer;
            Begin
            cont := 0;
            maior := 1;
            menor := 10000;
            While cont < 20 do
            begin
            cont:= cont + 1;
            writeln( 'Informe um número' ) ;
            read(n) ;
            end;
            If cont > 1 then
            begin
            if n > maior then
            maior := n;
            if n < menor then
            menor := n;
            end;
            Writeln ('O maior número é ',maior, ' o menor número é ', menor);

            End.


            mesmo assim não da certo...ele trás o último número como maior e menor...
            O cara ta aprendendo parece e nego quer meter logo um vetor no jovem, rs.

            Amigo, você deve colocar o teste do IF dentro do seu contador, porque funciona desta maneira: seu contador vai rodar, vai pedir o numero a ser digitado pelo usuário, vai testar se o numero é maior que a sua variável que no caso vale 1 (a maior) se for vai salvar dentro dela o respectivo valor digitado, vai realizar os outros testes e vai começar novamente o while, vai realizar o mesmo teste, vai receber o valor, testar se é maior caso seja vai salvar dentro da variável substituindo o valor que já estava caso não seja nem vai entrar no teste do IF e vai rodar o contar novamente até chegar as 20 vezes, no final vai imprimir o maior numero, entendeu? caso não posta aqui que tento te auxiliar se achar melhor que faça pra você ao invés de aprender me fala que eu faço.

            sigpic

            Comment


            • Font Size
              #7
              duvidas

              Postado Originalmente por ForeverIstalone Ver Post
              Pronto ^^
              Código:
              program Project2;
              
              
              Var
                posicao          : array[1..20] of integer;
                NumeroMenor, NumeroMaior, contador : integer;
              
              Begin
              
              
                For contador := 1 To 20 do
                begin
                  write('Informe o ',contador:2,' Numero: ');
                  readln (posicao[contador]);
                end;
                  NumeroMenor:= posicao[1];
              
                For contador := 2 to 20 do
                begin
                  if NumeroMenor > posicao[contador] then
                    NumeroMenor:= posicao[contador];
                end;
              
                For contador := 2 to 20 do
                begin
                  if NumeroMaior < posicao[contador] then
                    NumeroMaior:= posicao[contador];
                end;
              
                writeln('O Menor Numero e : ', NumeroMenor);
                writeln('O Maior Numero e : ', NumeroMaior);
                ReadLn;
              
              end.
              Dúvida resolvida ?

              Desculpe, mas preciso usar o while.....

              Comment


              • Font Size
                #8
                Mais atenção por favor

                Postado Originalmente por ellis Ver Post
                Desculpe, mas preciso usar o while.....
                Provavelmente por se tratar de um exercício (talvez de seu curso) hajam pré requisitos quanto ao que deve ou não ser usado.

                Ter de usar "WHILE" pelo que percebi é um deles. A dica que dou é quando postar tópicos desse tipo já diga no logo de início os requisitos e não mencionar após já terem dado várias soluções e dicas como aconteceu aqui.

                Há mais alguma restrição quando ao que pode ou não ser usado em seu exercício @ellis?

                Comment


                • Font Size
                  #9
                  Se tiver mais algum pré requisito avise.

                  Explicação.
                  Se tu partir do zero como menor numero só vari ser alterado a variável se for um numero negativo.
                  Então utilizei um numero como 99999 na variável do menor numero.

                  Código:
                  program Project2;
                  
                  var
                  n,cont, maior, menor: integer;
                  
                  begin
                   cont := 0;
                   maior := 0;
                   menor := 99999;
                  While cont < 20 do begin
                   cont:= cont + 1;
                   Writeln( 'Informe um número' ) ;
                   read(n) ;
                   if n > maior then begin
                     maior := n ;
                   end;
                   if n < Menor then  begin
                     menor := n;
                   end;
                  end;
                  
                  Writeln ('O maior número é ',maior, ' o menor número é ', menor);
                  
                  end.

                  Comment


                  • Font Size
                    #10
                    duvida

                    Agora sim!!
                    Posso melhorar mais alguma coisa?


                    Program Pzim ;
                    var
                    n,cont, maior, menor: integer;
                    Begin
                    cont := 0;
                    maior := 1;
                    menor := 10000;
                    While cont < 20 do
                    begin
                    cont:= cont + 1;
                    writeln( 'Informe um número' ) ;
                    read(n) ;
                    if n > maior then
                    maior := n;
                    if n < menor then
                    menor := n;
                    end;

                    Writeln ('O maior número é ',maior, ' o menor número é ', menor);

                    End.

                    Comment


                    • Font Size
                      #11
                      Postado Originalmente por ellis Ver Post
                      Agora sim!!
                      Posso melhorar mais alguma coisa?


                      Program Pzim ;
                      var
                      n,cont, maior, menor: integer;
                      Begin
                      cont := 0;
                      maior := 1;
                      menor := 10000;
                      While cont < 20 do
                      begin
                      cont:= cont + 1;
                      writeln( 'Informe um número' ) ;
                      read(n) ;
                      if n > maior then
                      maior := n;
                      if n < menor then
                      menor := n;
                      end;

                      Writeln ('O maior número é ',maior, ' o menor número é ', menor);

                      End.
                      Acho que não.
                      Vou explicar um poco mais claramente o menor numero possível nisto ai vai ser 10000 pois você colocou este valor ali no menor numero recomendo deixar o Maior numero possível.
                      Dúvida Resolvida agora?
                      Last edited by ForeverIstalone; 18-02-2014, 12:25. Motivo: Erro na explicação.

                      Comment


                      • Font Size
                        #12
                        Não sei pascal nem mesmo tenho o compilador pra testar mais esse valor fixo de 10000 pode dar problema se a pessoa so digitar números acima de 10000.

                        Fiz aqui em C um programa que concerta isso (funcionou aqui) vou tentar converter pra pascal:

                        Program Pzim ;
                        var
                        n,cont, maior, menor: integer;
                        Begin
                        cont := 0;
                        While cont < 20 do
                        begin
                        writeln( 'Informe um número' ) ;
                        read(n) ;
                        if cont = 0 then
                        begin
                        maior := num;
                        menor := num;
                        end
                        if n > maior then
                        maior := n;
                        if n < menor then
                        menor := n;
                        cont:= cont + 1;
                        end;

                        Writeln ('O maior número é ',maior, ' o menor número é ', menor);


                        Pode ser que tenha algum erro de sintaxe porque não sei pascal
                        Mais a ideia e pegar o primeiro numero digitado e colocar seu valor como o menor e maior numero, assim os próximos numeros seriam comparados com esse valor.
                        Assim evitando o bug que eu falei acima.

                        Comment


                        • Font Size
                          #13
                          Postado Originalmente por ForeverIstalone Ver Post
                          Acho que não.
                          Vou explicar um poco mais claramente o menor numero possível nisto ai vai ser 10000 pois você colocou este valor ali no menor numero recomendo deixar o Maior numero possível.
                          Dúvida Resolvida agora?
                          Agora consegui entender a lógica do exercício.
                          Muito obrigada vc me ajudo muito

                          Comment


                          • Font Size
                            #14
                            Olha ellis, pelo que vejo se não a necessidade desta gambiarra.
                            Acredito que assim resolva tudo.

                            Program Pzim ;
                            var
                            n,cont, maior, menor: integer;
                            Begin
                            cont := 0;
                            maior := 0;
                            menor := 0;
                            writeln( 'Informe um número' ) ;
                            read(n) ;
                            maior:= n;
                            menor:= n;
                            While cont < 19 do
                            begin
                            cont:= cont + 1;
                            writeln( 'Informe um número' ) ;
                            read(n) ;
                            if n > maior then
                            maior := n;
                            if n < menor then
                            menor := n;
                            end;

                            Espero ter ajudado.

                            Writeln ('O maior número é ',maior, ' o menor número é ', menor);

                            End.

                            Comment

                            X
                            Working...
                            X