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 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: Decisão Condicional Encadeada - Aninhamento - Lògica 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:
 
Sobre Fábio dos Reis (1175 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Astronomia, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

2 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

Escreva um comentário

Seu e-mail não será divulgado


*