none
Duvida - Correção de Exercício RRS feed

  • Pergunta

  • Boa Tarde Pessoa,

    O professor corrigiu o português estruturado de um exercício, que fiquei em dúvida em relação a colocar um SE (IF), dentro de outro seguido, sendo que não tinha o SENÃO (Else) antes de ele acrescentar outro, queria saber se isso é possível ou pode ter havido um erro na hora de ele corrigir na lousa.

    Vejam a baixo a correção dele do seguinte exércicio, no português estruturado:

    Faça um algoritimo que leia 3 numeros e leia o menor deles:

    Algoritimo Tres_Num
    
    Var
         a,b,c, menor
    
    Inicio
    
    se (a < b)
        se (a < c)
          menor <- a
         senão
             menor <- c
              fimse
         senao
               se (b < c)
                  menor <- b
               senao
                     menor <- c
                fimse
                   fimse
               Escreva ("O Menor número é:" menor)
              fimalgoritimo

    sexta-feira, 19 de abril de 2013 16:08

Respostas

  • Rihck é Possivel sim o modo que seu professor fez está correto. E que quando passamos para código puro os 2 Se do começo dele seria simplificado pelo operador && e os senão se será os elseif .

    Em código pode ficar assim :

        int a,b,c,menor;
    
                Console.WriteLine("Digite o valor de a : ");
                a = int.Parse(Console.ReadLine());
                Console.WriteLine("Digite o valor de b : ");
                b = int.Parse(Console.ReadLine());
                Console.WriteLine("Digite o valor de c : ");
                c =  int.Parse(Console.ReadLine());
    
                if (a < b && a < c)
                {
                   
                        menor = a;
                    
                }
                else if (b < c)
                {
    
                    menor = b;
                }
                else
                {
                    menor = c;
                }
    
                Console.WriteLine(menor);
                Console.ReadLine();

    Como também pode ser assim :

      int a,b,c,menor;
    
                Console.WriteLine("Digite o valor de a : ");
                a = int.Parse(Console.ReadLine());
                Console.WriteLine("Digite o valor de b : ");
                b = int.Parse(Console.ReadLine());
                Console.WriteLine("Digite o valor de c : ");
                c =  int.Parse(Console.ReadLine());
    
                if (a < b)
                {
                    if (a < c)
                    {
                        menor = a;
                    }
                    else
                    {
                        menor = c;
                    }
                }
                else
                {
                    if (b < c)
                    {
                        menor = b;
                    }
                    else
                    {
                        menor = c;
                    }
    
                }
    
                Console.WriteLine(menor);
                Console.ReadLine();

    Ambos funcionam igual , vai da forma que você achar mais amigavel , porém a mais performática é a primeira que lhe passei e também mais fácil.

    Espero ter ajudado


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    • Marcado como Resposta Rihck sexta-feira, 19 de abril de 2013 17:41
    sexta-feira, 19 de abril de 2013 17:17

Todas as Respostas

  • Esse forum é para C# e nao "portugol".  Evite postar esse tipo de questao aqui...

    Caso voce nao tenha certeza de onde postar, use o forum:

    http://social.msdn.microsoft.com/Forums/pt-br/queforum/threads

    Um dos moderadores vai repatriar sua questao para o forum apropriado.

    Em C# isso ficaria assim:

    int a,b,c,menor;
    //Leitura a,b,c
    if (a<b)
    {
        if (a<c)
        {
          menor=a;
        }
        else
        {
          menor=c;
        }
    }
    else
    {
        if (b<c)
        {
          menor=b;
        }
        else
        {
          menor=c;
        }
    }

    Voce pode aninhar IFs

    IF (condiçao1)

       IF (condiçao2)

          IF (condiçao3)


    Sem necessariamente ter um ELSE... apesar que isso é feio.

    Uma forma mais elegante de fazer isso é

    menor=c;
    if (a<b && a<c) 
    {
      menor=a;
    }
    else if (b<c) 
    {
      menor=b;
    }


    att



    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée




    sexta-feira, 19 de abril de 2013 17:16
    Moderador
  • Rihck é Possivel sim o modo que seu professor fez está correto. E que quando passamos para código puro os 2 Se do começo dele seria simplificado pelo operador && e os senão se será os elseif .

    Em código pode ficar assim :

        int a,b,c,menor;
    
                Console.WriteLine("Digite o valor de a : ");
                a = int.Parse(Console.ReadLine());
                Console.WriteLine("Digite o valor de b : ");
                b = int.Parse(Console.ReadLine());
                Console.WriteLine("Digite o valor de c : ");
                c =  int.Parse(Console.ReadLine());
    
                if (a < b && a < c)
                {
                   
                        menor = a;
                    
                }
                else if (b < c)
                {
    
                    menor = b;
                }
                else
                {
                    menor = c;
                }
    
                Console.WriteLine(menor);
                Console.ReadLine();

    Como também pode ser assim :

      int a,b,c,menor;
    
                Console.WriteLine("Digite o valor de a : ");
                a = int.Parse(Console.ReadLine());
                Console.WriteLine("Digite o valor de b : ");
                b = int.Parse(Console.ReadLine());
                Console.WriteLine("Digite o valor de c : ");
                c =  int.Parse(Console.ReadLine());
    
                if (a < b)
                {
                    if (a < c)
                    {
                        menor = a;
                    }
                    else
                    {
                        menor = c;
                    }
                }
                else
                {
                    if (b < c)
                    {
                        menor = b;
                    }
                    else
                    {
                        menor = c;
                    }
    
                }
    
                Console.WriteLine(menor);
                Console.ReadLine();

    Ambos funcionam igual , vai da forma que você achar mais amigavel , porém a mais performática é a primeira que lhe passei e também mais fácil.

    Espero ter ajudado


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    • Marcado como Resposta Rihck sexta-feira, 19 de abril de 2013 17:41
    sexta-feira, 19 de abril de 2013 17:17
  • Boa Tarde, esta correto o exercício do seu professor

    int a,b,c,menor;

            a = 50;
            b = 30;
            c = 80;

                if(a<b)
                {
                    if(a<c)
                    {
                        menor =a;
                    }
                    else
                    {
                        menor=c;
                    }
                }
                else
                {
                    if(b<c)
                    {
                        menor =b;
                    }
                    else
                    {
                        menor=c;
                    }
                }

                MessageBox.Show(menor.ToString());

    Se a Resposta foi útil por favor, qualifique, Obrigado.

    sexta-feira, 19 de abril de 2013 17:26