1
Algoritmos - Paulo Roberto Bernardo
- Estrutura de Decisão (Desvio Condicional Encadeado –
se...então...senão...se) – Comandos se aninhados
Na maioria dos algoritmos que devem ser desenvolvidos e que
necessitam utilizar estruturas de decisão, não encontramos apenas duas
opções a serem seguidas (como o que foi apresentado até o momento).
Normalmente, encontraremos várias opções
realizadas, de acordo com várias condições diferentes.
diferentes
a
serem
Para simplificar a compreensão, é possível imaginar uma tabela de
opções, onde são apresentadas as condições a serem testadas e o que deve
ser realizado para cada uma das opções.
MEDIA maior ou igual a 7
MEDIA maior que 2 e menor que 7
MEDIA menor ou igual a 2
“Aprovado”
“Exame”
“Reprovado”
Por exemplo, uma determinada escola apresenta os seguintes critérios
para a aprovação do aluno: Se a média final for maior ou igual a 7, o aluno
estará aprovado. Se a média final for maior do que 2 e menor do que 7, o
aluno estará de exame. Se a média for menor ou igual a 2, o aluno estará
reprovado.
Observe que no exemplo temos três opções de status para o aluno
(Aprovado, Exame ou Reprovado), mas que serão necessários o teste de
somente duas condições, porque a terceira será encontrada com a exclusão
das outras duas.
Como será necessário realizar dois testes de condições, ou seja, dois
comandos se em conjunto, teremos comandos se, dentro de outros comandos
se (daí o nome de comandos aninhados).
Não existe limite para a quantidade de comandos se aninhados.
É preciso lembrar que a quantidade de comandos se necessários para
resolver um problema de múltiplas opções é uma a menos que a quantidade
de opções (por exemplo, um problema com 3 opções, necessita de 2 comandos
se).
2
Algoritmos - Paulo Roberto Bernardo
Programa exemplo
Var
Real N1, N2, N3, N4, MEDIA
início
escreva(“Informe a 1ª nota:”)
leia (N1)
escreva(“Informe a 2ª nota:”)
leia (N2)
escreva(“Informe a 3ª nota:”)
leia (N3)
escreva(“Informe a 4ª nota:”)
leia (N4)
MEDIA <- (N1+N2+N3+N4) /4
se (MEDIA >= 7) então
escreva (“Aprovado”, MEDIA)
senão
se (MEDIA > 2) então
escreva (“Exame”, MEDIA)
senão
escreva (“Reprovado”, MEDIA)
fim_se
fim_se
fim
#include <iostream>
using namespace std;
main()
{
float N1, N2, N3, N4, MEDIA;
cout << "Informe a nota 1: ";
cin >> N1;
cout << "Informe a nota 2: ";
cin >> N2;
cout << "Informe a nota 3: ";
cin >> N3;
cout << "Informe a nota 4: ";
cin >> N4;
MEDIA = (N1+N2+N3+N4)/4;
if(MEDIA >= 7)
{
cout << "Aprovado! " << MEDIA << "\n";
}
else
{
if(MEDIA > 2)
{
cout << "Exame! " << MEDIA << "\n";
}
else
{
cout << "Reprovado! " << MEDIA << "\n";
}
}
system("Pause");
}
3
Algoritmos - Paulo Roberto Bernardo
- Fluxograma
A
Início
Real N1, N2, N3, N4,
MEDIA
N4
“Informe a 1ª
nota: ”
MED<-(N1+N2+N3+N4)/4
N
N1
“Informe a 2ª
nota: ”
N
“Reprovado”
MEDIA > 2
MEDIA >= 7
S
“Aprovado”
“Exame”
N2
Fim
“Informe a 3ª
nota: ”
N3
“Informe a 4ª
nota: ”
A
S
Download

1 MEDIA maior ou igual a 7 “Aprovado” MEDIA maior que 2 e menor