ALGORITMOS ESTRUTURAS DE DECISÃO

Propaganda
ALGORITMOS
ESTRUTURAS DE DECISÃO
Prof. Angelo Augusto Frozza, M.Sc.
[email protected]
ROTEIRO
| Estruturas
de decisão (ou desvio
condicional)
y
Decisão simples
|
y
Decisão composta
|
y
se...então
se...então...senão
Decisão múltipla
|
escolha...caso
DECISÃO
SIMPLES
se <expressao_logica> entao
<sequencia_de_comandos>
fimse
|
<expressao_logica>
y
|
deve representar uma tomada de decisão
(VERDADEIRO-FALSO);
<sequencia_de_comandos>
y
y
só será executado se a condição for VERDADEIRA;
pode ser um único comando ou mais de um comando;
DECISÃO
SIMPLES
algoritmo “EXEMPLO_DE_DECISAO_SIMPLES”
{Ler um número inteiro e exibi-lo se for positivo}
var
num : inteiro
leia(num)
inicio
leia (num)
se (num > 0) entao
escreval (num)
fimse
fimalgoritmo
num > 0
sim
escreva(num)
não
fim
DECISÃO
COMPOSTA
se <expressao_logica> entao
<sequencia_de_comandos_1>
senao
<sequencia_de_comandos_2>
fimse
|
<sequencia_de_comandos_1>
y
y
|
só será executado se a condição for VERDADEIRA;
pode ser um único comando ou mais de um comando;
<sequencia_de_comandos_2>
y
y
só será executado se a condição for FALSA;
pode ser um único comando ou mais de um comando;
DECISÃO
COMPOSTA
algoritmo “EXEMPLO_DE_DECISAO_COMPOSTA”
{Ler um número e determinar se é maior que zero ou não}
var
num : inteiro
inicio
leia (num)
se (num > 0) entao
escreval (num, " é maior que zero")
senao
escreval (num, " é menor ou igual a zero")
fimse
fimalgoritmo
DECISÃO
COMPOSTA
leia(num)
num > 0
não
Escreva
(num é menor que zero)
sim
Escreva
(num é maior que
zero)
fim
DECISÃO
|
COMPOSTA
Comandos SE aninhados:
se <expressao_logica_1> entao
se <expressao_logica_2> entao
<sequencia_de_comandos_1>
fimse
senao
se <expressao_logica_3> entao
<sequencia_de_comandos_2>
senao
<sequencia_de_comandos_3>
fimse
<sequencia_de_comandos_4>
fimse
DECISÃO
COMPOSTA
algoritmo "EXEMPLO_DE_SE_ANINHADO"
{Determinar se um número é maior, menor ou igual a zero}
var
num : inteiro
inicio
leia (num)
se (num > 0) entao
escreval (num, " é maior que zero")
senao
se (num < 0) entao
escreval (num, " é menor que zero")
senao
escreval (num, " é igual a zero")
fimse
fimse
fimalgoritmo
DECISÃO
MÚLTIPLA
escolha <expressao_de_selecao>
caso <exp11>, <exp12>,.., <exp1n>
<sequencia_de_comandos_1>
caso <exp21>, <exp22>,.., <exp2n>
<sequencia_de_comandos_2>
...
outrocaso
<sequencia_de_comandos_3>
fimescolha
DECISÃO
MÚLTIPLA
|
<expressao> deve resultar em uma constante;
|
<expr_xn> pode ter uma ou mais constantes,
separadas por virgula e do mesmo tipo da
<expressao>;
|
<sequencia_de_comandos_n> pode ser uma ou
mais linhas de instruções;
DECISÃO
COMPOSTA
algoritmo "EXEMPLO_DE_DECISAO_MULTIPLA"
{Simular uma calculadora básica de números inteiros}
var
num_1, num_2 : inteiro
operacao : caracter
inicio
leia (num_1)
leia (num_2)
leia (operacao)
escolha (operacao)
caso "+"
escreval(num_1 + num_2)
caso "-"
escreval(num_1 - num_2)
caso "*", "X"
escreval(num_1 * num_2)
caso "/"
escreval(num_1 / num_2)
outrocaso
escreval("Operação inválida")
fimescolha
fimalgoritmo
DECISÃO
COMPOSTA
algoritmo "EXEMPLO_DE_DECISAO_MULTIPLA“
var
num_1, num_2 : inteiro
operacao : caracter
inicio
leia (num_1)
leia (num_2)
leia (operacao)
se (operacao = "+") entao
escreval(num_1 + num_2)
senao
se (operacao = "-") entao
escreval(num_1 - num_2)
senao
se ((operacao = "*") ou (operacao = "X")) entao
escreval(num_1 * num_2)
senao
se (operacao = "/") entao
escreval(num_1 / num_2)
senao
escreval("Operação inválida")
fimse
fimse
fimse
fimse
fimalgoritmo
Download