Cursos / Automação Industrial / Lógica de Programação / Aula

arrow_back Aula 04 - Representação de Algoritmos e Estruturas de Decisão Aninhadas

Um novo exemplo!

O algoritmo a seguir poderá ser utilizado para verificar se o aluno de um curso superior da UFRN está aprovado por média ou necessitará fazer uma prova de reposição. Para que esse aluno seja aprovado por média, ele deve possuir média igual ou maior que 7, contudo, se esse aluno possuir média igual ou superior a 5 e não tiver nenhuma nota abaixo de 3, ele também estará aprovado.

Se o aluno tiver média igual ou superior a 5, mas qualquer uma das 3 notas que ele obteve durante suas aulas for menor que 3, ele deverá fazer a prova de reposição. Agora, se a média for menor do que 5 e maior ou igual a 3, então ele fará a prova de recuperação. Em último caso, se a média for menor que 3, o aluno não poderá fazer a recuperação e estará reprovado por média.

x
1
escreva "Digite a primeira nota:"
2
var n1 := leia_numero
3
escreva "Digite a segunda nota:"
4
var n2 := leia_numero
5
escreva "Digite a terceira nota:"
6
var n3 := leia_numero
7
8
var media := (n1+n2+n3)/3
9
10
se media >= 7 então
11
    escreva "Aluno aprovado por média."
12
senão
13
    se media >= 5 então
14
        se n1 >= 3 então
15
            se n2 >= 3 então
16
                se n3 >= 3 então
17
                    escreva "Aluno aprovado."
18
                senão
19
                    escreva "Aluno deverá fazer a reposição."
20
                fim
21
            senão
22
                escreva "Aluno deverá fazer a reposição."
23
            fim
24
        senão
25
            escreva "Aluno deverá fazer a reposição."
26
        fim
27
    senão
28
        se media >= 3 então
29
            escreva "Aluno em recuperação."
30
        senão
31
            escreva "Aluno reprovado por média."    
32
        fim
33
    fim
34
fim
35

Você reparou que no algoritmo apresentado há diversos aninhamentos do se...então...senão? Como dito, esses aninhamentos podem ser tanto no bloco da condição verdadeira como no bloco da condição falsa. Nesse mesmo algoritmo, foi possível inserir mais de um nível de aninhamento através do uso de vários se...então...senão, um dentro do outro.

Agora, modifiquei esse algoritmo utilizando o operador lógico '|e|' que você conheceu na aula anterior. Neste exemplo, é analisada a situação do aluno nos mesmos requisitos que o algoritmo apresentado anteriormente. Observe o código seguinte com atenção e perceba que foi diminuída a quantidade de estruturas se...então...senão, de modo a ser obtido um algoritmo mais fácil de ler e entender.

27
1
escreva "Digite a primeira nota:"
2
var n1 := leia_numero
3
escreva "Digite a segunda nota:"
4
var n2 := leia_numero
5
escreva "Digite a terceira nota:"
6
var n3 := leia_numero
7
8
var media := (n1+n2+n3)/3
9
10
se media >= 7 então
11
    escreva "Aluno aprovado por média."
12
senão
13
    se media >= 5 então
14
        se n1 >= 3 |e| n2 >= 3 |e| n3 >= 3 então
15
            escreva "Aluno aprovado."
16
        senão
17
            escreva "Aluno deverá fazer a reposição."
18
        fim
19
    senão
20
        se media >= 3 então
21
            escreva "Aluno em recuperação."
22
        senão
23
            escreva "Aluno reprovado por média."    
24
        fim
25
    fim
26
fim
27

E aí? Conseguiu perceber que utilizando o operador lógico '|e|' foi possível reescrever o algoritmo com três estruturas de decisão se...então...senão a menos? Apesar disso, os algoritmos de cálculo e de verificação da situação do aluno são equivalentes e, para os mesmos valores de notas n1, n2 e n3, ambos irão gerar as mesmas respostas.

Conheça uma outra forma de escrever algoritmos com a estrutura se...senãose aninhada.

23
1
escreva "Digite a primeira nota:"
2
var n1 := leia_numero
3
escreva "Digite a segunda nota:"
4
var n2 := leia_numero
5
escreva "Digite a terceira nota:"
6
var n3 := leia_numero
7
8
var media := (n1+n2+n3)/3
9
10
se media >= 7 então
11
    escreva "Aluno aprovado por média."
12
senãose media >= 5 então
13
    se n1 >= 3 |e| n2 >= 3 |e| n3 >= 3 então
14
        escreva "Aluno aprovado."
15
    senão
16
        escreva "Aluno deverá fazer a reposição."
17
    fim
18
senãose media >= 3 então
19
    escreva "Aluno em recuperação."
20
senão
21
    escreva "Aluno reprovado por média."
22
fim
23

Nesse exemplo, foi apresentada uma forma diferente de se encadear a estrutura de decisão se...então...senão. Repare que no primeiro comando se, caso a variável media seja menor que 7, é realizado um novo teste com o comando senãose (uma junção dos comandos senão + se). Nessa nova verificação, o teste compara se o valor armazenado em media é maior ou igual a 5.


É possível construir algoritmos diferentes para resolver um mesmo problema e obter o mesmo resultado, dessa forma, não há somente uma solução correta. Em muitos casos, há infinitas soluções.

Versão 5.3 - Todos os Direitos reservados