100 likes | 167 Views
Outras Estruturas condicionais – Instrução CASO...DE.
E N D
Outras Estruturas condicionais – Instrução CASO...DE • Além da instrução SE...ENTÃO...SENÃO, uma estrutura algorítmica pode admitir outras instruções que trabalhem com condições, representadas através de expressões lógicas, e que conduzam a diferentes “caminhos”, de acordo com o resultado do teste realizado no contexto condicional; • A instrução CASO...DE permite que uma entre várias opções seja escolhida, mediante verificação do resultado obtido por uma variável ou expressão; • No próximo exemplo, encontra-se um algoritmo para conversão de uma quantidade qualquer de reais (R$) para uma moeda estrangeira. No exemplo, as moedas consideradas são: dólar (d), libra (b), iene (i), marco (m) e franco (f).
ALGORITMO converte_moeda; VARIÁVEIS qtde, valor: REAL; moeda: CHAR; INÍCIO LER(qtde); LER(moeda); valor = 0; CASO moeda DE “d” : valor:=qtde / 2,70; “b” : valor:=qtde / 3,25; “i” : valor:=qtde / 1,50; “m”: valor:=qtde / 2,15; “f” : valor:=qtde / 1,89; SENÃO ESCREVER(“Opção inválida!”); FIM; ESCREVER(valor); FIM.
Algumas observações importantes: • A instrução SENÃO é opcional (não obrigatória) e só será utilizada pelo algoritmo caso nenhuma correspondência entre a variável ou expressão em teste seja encontrada; • A variável ou expressão em CASO <variável / expressão> DE dever ser, obrigatoriamente, um valor do tipo CARACTER, INTEIRO ou LÓGICO; • Vejamos uma versão melhorada do algoritmo das moedas:
ALGORITMO converte_moeda_2; VARIÁVEIS qtde, valor: REAL; moeda, continua, erro: CHAR; INÍCIO continua=”s”; ENQUANTO (continua=”s”) FAÇA INÍCIO valor:=0; erro:=”n”; LER(qtde); LER(moeda); CASO moeda DE “d” : valor:=qtde / 2,70; “b” : valor:=qtde / 3,25; “i” : valor:=qtde / 1,50; “m”: valor:=qtde / 2,15; “f” : valor:=qtde / 1,89; SENÃO erro:=”s”; FIM; SE (erro = “s”) ENTÃO ESCREVER(“Opção inválida!”) SENÃO ESCREVER(valor); LER(continua); FIM; FIM.
Conceitos baseados em notas ALGORITMO ver_nota_1; VARIÁVEIS nota: INTEIRO; INÍCIO LER(nota); CASO nota DE 10 : ESCREVER (“Excelente”); 9 : ESCREVER (“Ótimo”); 8 : ESCREVER (“Bom”); 7 : ESCREVER (“Regular”); SENÃO ESCREVER (“Ruim”); FIM; FIM.
Conceitos baseados duas notas ALGORITMO ver_nota_2; VARIÁVEIS nota: INTEIRO; INÍCIO LER(nota); CASO nota DE 10,9 : ESCREVER (“Ótimo”); 7,8 : ESCREVER (“Bom”); 5,6 : ESCREVER (“Regular”); SENÃO ESCREVER (“Ruim”); FIM; FIM.
Conceitos baseados várias notas ALGORITMO ver_nota_3; VARIÁVEIS nota: REAL; INÍCIO LER(nota); CASO nota DE 9..10 : ESCREVER (“Ótimo”); 8..8,9 : ESCREVER (“Bom”); 7..7,9 : ESCREVER (“Regular”); 5..6,9 : ESCREVER (“Ruim”); SENÃO ESCREVER (“Péssimo”); FIM; FIM.
ALGORITMO calculadora; VARIÁVEIS a, b, resultado : REAL; i : INTEIRO; operação, certo, erro, continua : CARACTER; INÍCIO REPETIR resultado:=1; certo:=”s”; erro:=”n”; LER(a); LER(operação); LER(b); CASO operação DE “+” : resultado:= a + b; “–“ : resultado:= a – b; “*” : resultado:= a * b; “/” : SE (b = 0) ENTÃO certo:=”n” SENÃO resultado:= a / b; “^” : PARA i := 1 ATÉ B resultado:=resultado*a; SENÃO erro:=”s”; FIM; SE (certo = “n”) ENTÃO ESCREVER(“Divisão por zero!”) SENÃO SE (erro = “s”) ENTÃO ESCREVER(“Opção errada!”) SENÃO ESCREVER(resultado); LER(continua); ATÉ (continua <> “s”); FIM.
Construa um algoritmo para calcular e mostrar o valor do aluguel de determinados imóveis. Considere que podem ser calculados qualquer número de imóveis, cabendo a você introduzir um mecanismo de parada; • Leia o valor do aluguel e o dia de pagamento; • Até o dia 5 (inclusive), há um desconto de 10% no valor do aluguel; • Do dia 6 até o dia 10 não há desconto nem acréscimo; • Do dia 11 até o dia 15 o valor do aluguel deve sofrer um acréscimo de 10%; • Do dia 16 até o dia 20 o valor do aluguel deve sofrer um acréscimo de 12%; • Em qualquer outro caso, o valor do aluguel deve sofrer um acréscimo de 15%, menos no caso de ser introduzido um dia de pagamento inválido (maior que 31 ou menor que 1); caso isto ocorra, uma mensagem de erro deve ser exibida e o valor do aluguel não deverá ser mostrado.
ALGORITMO imóveis; VARIÁVEIS continua, erro : CARACTER; valor : REAL; dia : INTEIRO; INÍCIO continua:=”s”; ENQUANTO (continua = “s”) FAÇA erro:=”n”; LER (dia);LER (valor); CASO dia DE 1..5 : valor:=valor * 0,9; 6..10 : valor:=valor * 1; 11..15 : valor:=valor * 1,1; 16..20 : valor:=valor * 1,12; 21..31 : valor:=valor * 1,15; SENÃO erro:=”s”; FIM; SE (erro = “s”) ENTÃO ESCREVER(“Dia inválido!”) SENÃO ESCREVER(valor); LER (continua); FIM; FIM.