Sie sind auf Seite 1von 13

ALGORITMOS

ESTRUTURAS DE DECISO
Prof. Angelo Augusto Frozza, M.Sc.
frozza@ifc-camboriu.edu.br

ROTEIRO
| Estruturas

de deciso (ou desvio


condicional)
y

Deciso simples
|

Deciso composta
|

se...ento

se...ento...seno

Deciso mltipla
|

escolha...caso

DECISO

SIMPLES

se <expressao_logica> entao
<sequencia_de_comandos>
fimse
|

<expressao_logica>
y

deve representar uma tomada de deciso


(VERDADEIRO-FALSO);

<sequencia_de_comandos>
y
y

s ser executado se a condio for VERDADEIRA;


pode ser um nico comando ou mais de um comando;

DECISO

SIMPLES

algoritmo EXEMPLO_DE_DECISAO_SIMPLES
{Ler um nmero 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)

no

fim

DECISO

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 condio for VERDADEIRA;


pode ser um nico comando ou mais de um comando;

<sequencia_de_comandos_2>
y
y

s ser executado se a condio for FALSA;


pode ser um nico comando ou mais de um comando;

DECISO

COMPOSTA

algoritmo EXEMPLO_DE_DECISAO_COMPOSTA
{Ler um nmero e determinar se maior que zero ou no}

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

DECISO

COMPOSTA

leia(num)

num > 0

no

Escreva
(num menor que zero)

sim
Escreva
(num maior que
zero)

fim

DECISO
|

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

DECISO

COMPOSTA

algoritmo "EXEMPLO_DE_SE_ANINHADO"
{Determinar se um nmero 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

DECISO

MLTIPLA

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

DECISO

MLTIPLA

<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 instrues;

DECISO

COMPOSTA
algoritmo "EXEMPLO_DE_DECISAO_MULTIPLA"
{Simular uma calculadora bsica de nmeros 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("Operao invlida")
fimescolha
fimalgoritmo

DECISO

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("Operao invlida")
fimse
fimse
fimse
fimse
fimalgoritmo

Das könnte Ihnen auch gefallen