Estruturas de Decisão
Nas estruturas de decisão, o fluxo de instruções a ser seguido é escolhido em função do resultado da avaliação de uma ou mais condições. Uma condição é uma expressão lógica.
Há dois tipos de estruturas de decisão, a saber:
Estruturas de Decisão do Tipo Se (simples, composta, encadeada)
Neste tipo de estrutura, uma única expressão lógica é avaliada. Se o resultado for verdadeiro (V), então um certo conjunto de instruções será executado, mas se o resultado da avaliação for falso (F), uma instrução diferente será executada.
Uma construção do tipo Se em fluxogramas pode ser vista como uma bifurcação, em que há dois caminhos que podem ser seguidos. A execução do algoritmo seguirá necessariamente por um deles. A escolha é feita em função do resultado da expressão:
um dos caminhos será seguido se a condição for verdadeira;
e o outro será seguido se a condição for falsa.
A sintaxe da estrutura de decisão do tipo Se está abaixo indicada, em fluxograma.
A sintaxe da estrutura de decisão do tipo Se em português estruturado está abaixo indicada:
![]() | ![]() | |
Se <condição> então <comando composto1> Senão <comando composto2> Fim_se | ||
![]() | ![]() |
Note que apareceram novas palavras, que são Se, então, Senão e Fim_se.
A semântica desta construção é a seguinte: a condição é avaliada, se o resultado for verdadeiro, então o comando composto1 é executado. Ao final de sua execução, o fluxo do algoritmo segue pela próxima instrução, ou seja, o primeiro comando após o Fim_se. Se a condição for avaliada como falsa, o comando composto2 será executado e, após seu término, o fluxo do algoritmo segue pela próxima instrução após o Fim_se.
No programa abaixo, temos o uso da construção Se-Então-Senão-Fim_se, para determinar se um aluno foi aprovado ou reprovado de acordo com a sua média.
![]() | ![]() | |||
variaveis numerico media inicio ler media se media > =7.0 entao escrever “Aluno Aprovado” senao escrever “Aluno Reprovado” fim
| ||||
![]() | ![]() |
Existem casos em que o comando composto2 não é utilizado, resumindo a sintaxe da construção à forma abaixo indicada.
![]() | ![]() | |
Se <condição> então <comando composto1> Fim_se | ||
![]() | ![]() |
A semântica desta construção é a seguinte: a condição é avaliada, se o resultado for verdadeiro, então o comando composto1 é executado, e após o seu término, o fluxo da execução continua até a próxima instrução após o Fim_se. Se a condição for avaliada como falsa, o fluxo do algoritmo segue pela primeira instrução após o Fim_se.
Estruturas de Decisão do Tipo Faça Caso
Neste tipo de estrutura, pode haver uma ou mais condições a serem testadas e um comando composto diferente associado a cada uma delas.
A sintaxe da construção Faça Caso está abaixo indicada, em fluxograma e em português estruturado, respectivamente.
![]() | ![]() | |
Faça Caso Caso <condição 1>: comando composto1> Caso <condição 2>: comando composto2> Outro_caso: comando composton> Fim_caso | ||
![]() | ![]() |
O funcionamento do Faça Caso é o seguinte: ao entrar-se numa construção do tipo caso, a condição 1 é testada, se for verdadeira, o comando composto1 é executado e, após o seu término, o fluxo de execução prossegue pela primeira instrução após o Fim_caso. Se a condição 1 for falsa, a condição 2 é testada e se for verdadeira, o comando composto2 é executado, e, após o seu término, o fluxo de execução prossegue pela primeira instrução após o Fim_caso, e assim por diante.
Abaixo, temos um exemplo do uso do Faça caso, em que ocorre o reajuste salarial de acordo com o cargo ocupado pelo funcionário.
![]() | ![]() | |||
variaveis numerico salario_novo, salario_atual caracter cargo inicio ler salario_atual ler cargo Faca Caso Caso cargo = “diretor”: salario_novo = salario_atual * 1.35 Caso cargo = “gerente”: salario_novo = salario_atual * 1.25 Caso cargo = “supervisor”: salario_novo = salario_atual * 1.15 Caso cargo = “coordenador”: salario_novo = salario_atual * 1.30 Outro_caso: salario_novo = salario_atual * 1.20 Fim_caso escrever “O novo salario será : ”, salario_novo fim
| ||||
![]() | ![]() |