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