14
Estruturas de decisão encadeada e múltipla escolha

Algoritmos Aula 07

Embed Size (px)

Citation preview

Estruturas de decisãoencadeada e múltipla

escolha

Estrutura de decisão encadeada

Pseudocódigo:

Se <expr1> então

<comandos 1>

senão

Se <expr 2> então

<comandos 2>

senão

<comandos 3>

FimSe

FimSe

Java:

if (expr1)

{

<comandos 1>

}

else if (expr2)

{

<comandos 2>

}

else

{

<comandos 3>

}

Exercício 1

Algoritmo para ler a idade digitada pelo usuário e apresentar a categoria esportiva correspondente, conforme a tabela abaixo:

Faixa etária Categoria

10 a 12 anos Infantil13 a 15 anos Mirim16 a 18 anos Juvenil19 a 35 anos AdultoAcima de 35 anos Sênior

Exercício 2

IMC Classificação

< 18 Magreza

18,0 a 24,9 Saudável

25,0 a 29,9 Sobrepeso

>= 30,0 Obesidade

O índice de massa corporal (IMC) avalia o nível de gordura de cada pessoa e é adotado pela Organização Mundial de Saúde (OMS). O IMC de uma pessoa é dado pela divisão da massa em kg pela altura em metros.

Elabore um algoritmo que, a partir da massa e da altura informados pelo usuário, calcule e apresente seu IMC e sua classificação conforme a tabela seguinte:

Estrutura de múltipla escolha

Utilizada quando o resultado de uma expressão pode assumir diversos valores, sendo que comandos distintos devem ser executados em cada caso.

Escolha/caso - Pseudocódigo

Escolha (<expressão>)

caso 1: <comandos>

caso 2: <comandos>

...

caso contrário: <comandos>

FimEscolha;

Exemplo 1 - pseudocódigo

Algoritmo DemoEscolhaInícioAlgoritmodeclarar mes numérico_inteiro;Ler(mes);Escolha (mes)

caso 1: Escrever(“Janeiro”);caso 2: Escrever(“Fevereiro”);...caso 12: Escrever(“Dezembro”);caso contrário: Escrever(“Mês inválido”);

FimEscolhaFimAlgoritmo.

Comando switch em Java

switch (<expressão inteira ou char>){case <expr constante 1>: bloco; break;case <expr constante 2>: bloco; break;case <expr constante 3>: bloco; break;...case <expr constante n>: bloco; break;default: bloco; break;}

Exemplo 1 - JavaImport javax.swing.JOPtionPane;public class DemoSwitch{public static void main(String args[]){

int mes = Integer.parseInt(JOptionPane.showInputDialog(“Digite o mês”));

switch (mes){

case 1: System.out.println(“Janeiro”); break;case 2: System.out.println(“Fevereiro”); break;...case 12: System.out.println(“Dezembro”); break;default: System.out.println(“Mês inválido”); break;

}}

}

Exemplo 2 - pseudocódigo

Algoritmo DadoInícioAlgoritmodeclarar num numérico_inteiro;Ler(num);Escolha (num)

caso 2, 4, 6: Escrever(“Par”);caso 1, 3, 5: Escrever(“Ímpar”);

FimEscolhaFimAlgoritmo.

Exemplo 2 - JavaImport javax.swingt.JOptionPane;public class Dado{public static void main(String args[]){

int num = Integer.parseInt(JOptionPane.showInputDialog(“Digite um número”));

switch (num){

case 2:case 4:case 6: System.out.println(“par”); break;case 1:case 3:case 5: System.out.println(“Ímpar”); break;

}}

}

Múltipla escolha x decisão encadeada

A sintaxe da estrutura de múltipla escolha é mais concisa (enxuta, simples)

A estrutura de múltipla escolha é mais limitada que a estrutura encadeada, pois não é adequada para trabalhar com faixas contínuas ou largas de valores e, também, serve para testar apenas uma expressão por vez.

Exercício 1

Escrever um programa em Java para apresentar o nome do lanche do MacDonalds conforme o nº da opção digitada pelo cliente (usuário):

1. BigMac

2. Quarteirão3. MacChicken4. Cheddar MacMelt5. MacMax

O programa deverá apresentar ao usuário o menu de opções disponíveis e deverá informar caso seja digitada uma opção inválida.

Exercício 2

Elaborar um algoritmo em pseudocódigo e o programa em Java correspondente para imprimir o número de dias de um dado mês e ano. Anos bissextos deverão ser tratados convenientemente.

Dica: Anos bissextos são múltiplos de 4 e não são múltiplos de 100, exceto os anos múltiplos de 400, que também são bissextos.