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