Você está na página 1de 13

ALGORITMOS

ESTRUTURAS DE DECISÃO
Prof. Angelo Augusto Frozza, M.Sc.
frozza@ifc-camboriu.edu.br
ROTEIRO
| Estruturasde decisão (ou desvio
condicional)

y Decisão simples
| se...então

y Decisão composta
| se...então...senão

y 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 só será executado se a condição for VERDADEIRA;
y 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)
não
num > 0 fim
se (num > 0) entao
escreval (num)
fimse sim

fimalgoritmo escreva(num)
DECISÃO COMPOSTA

se <expressao_logica> entao
<sequencia_de_comandos_1>
senao
<sequencia_de_comandos_2>
fimse

| <sequencia_de_comandos_1>
y só será executado se a condição for VERDADEIRA;
y pode ser um único comando ou mais de um comando;

| <sequencia_de_comandos_2>
y só será executado se a condição for FALSA;
y 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)

não Escreva
num > 0
(num é menor que zero)
sim

Escreva
(num é maior que fim
zero)
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