Lógica de Programação – Desvio Condicional Aninhado (SE…ENTÃO…SENÃO…SE) – 12

Desvio Condicional Aninhado (SE…ENTÃO…SENÃO…SE)

Existem situações em um algoritmo nas quais é necessário verificar condições de teste sucessivas, onde uma ação será executada caso um conjunto anterior de ações seja satisfeito. Podemos usar para resolver esse tipo de problemas uma estrutura denominada Desvio Condicional Aninhado, que nada mais é do que o encadeamento de estruturas de decisão compostas em um algoritmo. Também chamamos a esse tipo de estrutura de Desvio Condicional Encadeado, por este motivo.

Sintaxe:

se (condição 1) então
instruções caso condição 1 retorne verdadeiro
senão
   se (condição 2) então
instruções caso condição 2 retorne verdadeiro
   senão
instruções caso condição 2 retorne falso
   fimse
fimse

 

O fluxograma a seguir ilustra o processo de operação do condicional encadeado:

Desvio condicional encadeado em lógica de programação

 

Exemplo: Vamos continuar a incrementar o algoritmo criado na lição sobre condicional composto. Desta vez, o programa deve solicitar duas notas de uma aluno, e calcular a média dessas notas. Caso a média calculada seja maior ou igual a 7, o programa deve emitir a mensagem “Aprovado”; se a média for menor do que 5, a mensagem a ser exibida é “Reprovado”. Porém, se a média do aluno ficar entre 5 e 7, deve ser exibida a mensagem “Recuperação”. Em todos os casos deve ser ecoada na tela a média calculada.

Veja abaixo um fluxograma representando nosso algoritmo:

Exemplo de condicional encadeado em lógica de programação (algoritmo)

E logo a seguir, o algoritmo implementado em português estruturado (no VisualG), usando o condicional aninhado:

Var
N1, N2 : inteiro
MEDIA : real

inicio
    escreval ("Entre com a primeira nota:")
    leia (N1)
    escreval ("Entre com a segunda nota:")
    leia (N2)

    MEDIA <- (N1 + N2) / 2
    se (media >= 7) entao
      escreval ("Aprovado")
    senao
         se (media >= 5) entao
            escreval ("Recuperação")
         senao
           escreval ("Reprovado")
         fimse
    fimse
    escreva ("Sua média é ", MEDIA)
fimalgoritmo
 
Note que o encadeamento pode ser feito em múltiplos níveis, bastando para isso acrescentar mais blocos se .. senão à estrutura. Isso pode tornar o código um tanto quanto complexo, e há outras estruturas em lógica que podem simplificar esse tipo de operação, como o comando Caso.
 
Assista a seguir a um vídeo de nosso canal do YouTube mostrando como usar o desvio condicional encadeado:

 

Anterior: Desvio Condicional Composto – SE .. ENTÃO .. SENÃO

Próximo: Estrutura de Repetição ENQUANTO

 

Sobre Fábio dos Reis (1221 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

8 Comentários em Lógica de Programação – Desvio Condicional Aninhado (SE…ENTÃO…SENÃO…SE) – 12

  1. Código:

    algoritmo “Condicional Aninhado”
    // Função : Estudo de Estrutura Condicional Aninhada
    // Autor : Fábio dos Reis
    // Data : 04/04/2013
    var
    N1, N2, MEDIA : real
    inicio

    escreval (“Digite a primeira nota: “)
    leia (N1)
    escreval (“Digite a segunda nota: “)
    leia (N2)
    MEDIA <- (N1 + N2) / 2 se (MEDIA >= 7) entao
    escreval (“Aprovado”)
    senao
    se (MEDIA >= 5) entao
    escreval (“Recuperação”)
    senao
    escreva (“Reprovado”)
    fimse
    fimse
    fimalgoritmo

  2. Calculadora:

    algoritmo “semnome”
    var
    valor1, valor2, resultado: Real
    operacao: caractere
    inicio
    Escreva (“Digite o primeiro valor: “)
    Leia (valor1)
    Escreva (“Digite a operação: “)
    Leia (operacao)
    Escreva (“Digite o segundo valor: “)
    Leia (valor2)

    Se (operacao = “+”) entao
    resultado <- valor1 + valor2
    Senao
    Se (operacao = "-") entao
    resultado <- valor1 – valor2
    Senao
    Se (operacao = "*") entao
    resultado <- valor1 * valor2
    Senao
    Se (operacao = "/") entao
    resultado <- valor1 / valor2
    Senao
    FimSe
    FimSe
    FimSe
    Fimse

    Escreva ("O resultado é: ", resultado)
    fimalgoritmo

  3. marcio machado // 02/02/2018 em 21:00 // Responder

    ótimo texto

  4. Bruno Dominguez // 15/06/2019 em 2:20 // Responder

    Muito obrigado! Descobri que cada “se” colocado depois de um “senao” precisa do seu próprio “fimse”. Me salvou!

  5. Boa Tarde
    Possui um exemplo se-então e se-então-senão e incluindo a estrutura condicional E ;OU

  6. Na boa Fábio, comecei a vê seus vídeos no dia 20 e não consigo mais parar de assistir, você ensina muito bem cara, da até vontade de querer sempre estudar vendo seus vídeos. Fica com Deus irmão

  7. Algoritmo em Python considerando frequência do aluno:

    “Média + frequencia”
    a = int(input(“Digite nota da 1° avaliação: “))
    b = int(input(“Digite nota da 2° avaliação: “))
    c = int(input(“Digite nota da 3° avaliação: “))
    d = int(input(“Digite nota da 4° avaliação: “))
    frequencia = float(input(“Digite a frequência do aluno: “))
    if (frequencia >= 75):
    media = (a + b + c + d)/4
    if(media > 6):
    print(“Média”, media)
    print(“Aluno aprovado”)
    elif(media >= 6):
    print(“Média”, media)
    print(“Aluno pode fazer prova de recuperação”)
    else:
    print(“Média”, media)
    print(“Aluno reprovado”)
    else:
    print(“Aluno reprovado direto”)

Escreva um comentário

Seu e-mail não será divulgado


*