Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estruturas de decisão de múltipla escolha Nas estruturas de decisão que vimos na aula 4, um comando ou bloco de comandos é executado de acordo com uma ou mais condições. Você viu que, quando a condição não é satisfeita, a estrutura pode encerrar (estrutura de decisão simples) ou seguir outro caminho (estrutura composta). Existem problemas, porém, em que uma expressão (ou uma variável) pode assumir diversos valores e que, para cada valor assumido, comandos diferentes são executados. Ou seja, os valores são mutuamente exclusivos. Para essas situações, utilizamos as estruturas de múltipla escolha. Imagine que você quer decidir o que vai fazer no final de semana. Veja: VAR opcao : Inteiro INICIO escreval (“Digite „1‟, para praia”) escreval (“Digite „2‟ para cinema”) escreval (Digite „3‟ para churrasco”) leia opcao ESCOLHA opcao CASO 1 escreva (“Sair de casa às 8 horas da manhã.”) CASO 2 escreva (“Sair de casa às 2 horas da tarde.”) CASO 3 escreva (“Sair de casa ao meio-dia.”) OUTROCASO //caso escolha opção diferente das anteriores escreva (“Já que não optou, fique em casa mesmo e leia um livro.”) FIMESCOLHA FIM Ao tentar decidir o que fazer no fim de semana, você tinha três opções: ir à praia, ir ao cinema ou ir a um churrasco. Para cada opção, há um comando diferente (nesse caso, um horário diferente para sair de casa). Isso mostra que os comandos são como dissemos a pouco, mutuamente exclusivos. Veja que, caso você não escolha nenhuma das opções anteriores, há um comando definido por padrão (que, nesse caso, é ficar em casa e ler um livro). A sintaxe da estrutura de múltipla escolha é a seguinte: PSEUDOCÓDIGO FLUXOGRAMA Inicio escolha <opção> caso <opção 1> <comandos1> caso <opcao2> <comandos2> ... caso <opção n> <comandosn> outrocaso <comandos_padrão> fimescolha Fim Atividade 3 1. Vamos praticar? Para compreender o funcionamento da estrutura de múltipla escolha, escreva o algoritmo do exemplo que acabamos de utilizar (do fim de semana) no VisuAlg e execute. Lembre-se de adequar o algoritmo, se necessário, de acordo com a sintaxe. Exercício Resolvido 1 Escreva um algoritmo que diga se uma capital brasileira é da região Nordeste ou Sudeste, de acordo com a opção digitada pelo usuário. Em caso do usuário digitar o nome de uma capital que não esteja entre as opções, escreva que a capital é de outra região. Resolução: algoritmo "capitais" //o primeiro passo é declarar uma variável do tipo literal para armazenar o nome da capital: var capital : literal inicio // solicitar que o usuário digite o nome da capital: escreval ("Entre com o nome de uma capital do Brasil: ") // receber o valor digitado: leia (capital) //inicio da estrutura de múltipla escolha. O algoritmo seleciona o nome da capital digitado: escolha capital //o algoritmo compara o nome digitado com as opções existentes (para capitais da região nordeste): caso "Natal", "João Pessoa", "Salvador", "Fortaleza", "São Luís", "Maceió", "Aracaju","Recife", "Teresina" // se o resultado da comparação (teste de igualdade) for verdadeiro para uma das capitais acima: escreval ("É uma capital da Região Nordeste.") //se a comparação anterior não for verdadeira para nenhuma das capitais nordestinas, o algoritmo compara o nome digitado com as opções existentes no outro grupo (de capitais do Sudeste do País): caso "São Paulo", "Rio de Janeiro", "Belo Horizonte", "Vitória" // se o resultado da comparação (teste de igualdade) for verdadeiro para um deles: escreval ("É uma capital da Região Sudeste.") //caso o teste de igualdade das opções anteriores não tiver resultado verdadeiro (a capital digitada não é nenhuma das existentes), a solução default (padrão) é selecionada: outrocaso escreval ("É de outra região.") //fim da estrutura de múltipla escolha: fimescolha fimalgoritmo Observação 1: a palavra reservada outrocaso pode ser entendida como um desvio, em caso do usuário escolher uma opção que não esteja entre as opções existentes. Sua utilização é opcional. Execute o algoritmo no VisuAlg. Observação 2: para uma melhor fixação, evite copiar e colar o texto da aula. Prefira reescrever o algoritmo no VisuAlg. Dessa forma, você ficará mais familiarizado com a sintaxe e, logo, sua habilidade em utilizar a estrutura será melhorada. Decisão de múltipla escolha x decisão encadeada Se você compreendeu tudo o que vimos até agora sobre as estruturas de decisão, pode estar se perguntando: “Mas, essa estrutura de múltipla escolha não é a mesma coisa que uma estrutura de decisão composta encadeada?” De fato, elas podem ser similares. Os dois algoritmos abaixo fazem a mesma coisa: DECISÃO ENCADEADA MÚLTIPLA ESCOLHA Var opcao:inteiro inicio leia (opcao) se opcao=1 entao escreval ("praia") senao se opcao=2 entao escreval ("cinema") senao se opcao=3 entao escreval ("churrasco") senao escreval ("Fique em casa") fimse fimse fimse fimalgoritmo Var opcao:inteiro inicio leia (opcao) escolha opcao caso 1 escreval ("praia") caso 2 escreval ("cinema") caso 3 escreval ("churrasco") outrocaso escreval ("fique em casa") fimescolha fimalgoritmo Execute os dois algoritmos no VisuAlg e veja que, em ambos os casos, a saída é a mesma. Por que, então, utilizar a estrutura de múltipla escolha, se podemos utilizar a decisão encadeada que aprendemos até aqui? Cada palavra reservada que utilizamos em um algoritmo representa um comando que o programa vai executar, desde a inicialização do algoritmo, passando pelos comandos básicos (as instruções primitivas) e os comandos de cada estrutura de controle, até a finalização do algoritmo. Tudo isso são instruções que passamos para que o computador execute. Sabendo disso, podemos ver que o algoritmo que utiliza a decisão encadeada tem um número maior de instruções. Isso demanda uma quantidade maior de memória e processamento do computador para executar o algoritmo, o que afeta diretamente o desempenho. Seria como se você precisasse caminhar de um ponto a outro, tendo duas opções de caminho: em uma, você segue em linha reta e, na outra, você vai em zigue-zague. Em qual dessas opções você acha que chegaria mais rápido? Em qual chegaria menos cansado? Em um algoritmo simples, provavelmente, você não perceberá a diferença. Mas, em programas maiores e mais complexos, fica evidente a queda no desempenho. Por isso, é mais conveniente, nesses casos (de seleção mutuamente exclusiva), utilizar a estrutura de múltipla escolha. Há, também, outra diferença básica entre as duas estruturas, que pode determinar quando utilizar uma ou outra: DECISÃO ENCADEADA MÚLTIPLA ESCOLHA Pode testar mais de um valor ao mesmo tempo. Ou seja, podem ser utilizadas expressões relacionais. Só pode testar igualdade e só testa um valor por vez, por isso, não pode utilizar expressões lógicas ou relacionais. Atividade 4 1. Escreva um algoritmo que leia o número equivalente a um mês do ano e diga se é do primeiro, segundo ou terceiro bimestre. Se não for de nenhum, exiba a mensagem: “É do segundo semestre.”2. Escreva um algoritmo que leia o número equivalente a um mês do ano e diga o número de dias do mês correspondente. Exiba a mensagem “valor inválido”, se o número digitado não corresponder a nenhum mês (1 a 12). Resumo Nesta aula, você encerrou o estudo das estruturas de decisão. Você conheceu a estrutura de decisão composta e viu que essa estrutura se caracteriza pela existência de um caminho alternativo, caso a condição pré-estabelecida não tenha sido atendida. Você viu, também, que esse caminho alternativo é precedido pela palavra reservada SENÃO, na sintaxe da estrutura. Além disso, você conheceu exemplos de estruturas compostas encadeadas, viu a diferença entre estruturas com condições mutuamente exclusivas e estruturas de decisão compostas inseridas em outras decisões compostas. Além disso, você viu as estruturas de múltipla escolha, com o comando ESCOLHA. Você conheceu os comandos e a sintaxe dessa estrutura. Viu que os algoritmos escritos com essa estrutura poderiam utilizar, também, a estrutura de decisão composta encadeada. Viu, porém, que há diferenças importantes que podem determinar quando é mais conveniente utilizar uma ou outra. Autoavaliação 1. Diferencie estruturas de decisão simples de estruturas de decisão compostas. 2. Explique as duas possíveis sintaxes da estrutura de decisão composta, diferenciando-as entre si. 3. Escreva um algoritmo que leia um número e diga se é múltiplo de 3. 4. Escreva um algoritmo que leia dois números e diga se o primeiro é divisível pelo segundo. 5. Escreva um algoritmo que leia um número e diga se é positivo, negativo ou nulo. 6. Escreva um algoritmo que leia um número e diga se ele é divisível por 5, por dois ou por nenhum deles. 7. Escreva um algoritmo que leia duas datas digitadas pelo usuário (três valores inteiros, primeiro o dia, depois o mês e depois o ano) e, em seguida, exiba a data mais recente. 8. Escreva um algoritmo que leia três números inteiros e os coloque em ordem crescente. 9. Escreva um algoritmo que leia três números inteiros e os coloque em ordem decrescente. 10. Escreva um algoritmo que leia o número equivalente a um mês do ano e diga se é do primeiro, segundo ou terceiro bimestre. Se não for de nenhum, exiba a mensagem: “É do segundo semestre.” 11. Escreva um algoritmo que receba a idade de uma pessoa e, caso seja maior de 15 anos, dizer que pode fazer musculação. Caso contrário, dizer que menores de 15 anos não podem fazer musculação e oferecer as opções de futebol, caso seja do sexo masculino, e ginástica, caso seja do sexo feminino. 12. Determine a sintaxe da estrutura de múltipla escolha. 13. Explique para que é usado o comando outrocaso. É obrigatório? Qual a importância desse comando? 14. Qual a estrutura de controle que pode ser considerada similar à estrutura de múltipla escolha? 15. Apresente um exemplo de algoritmo que possa ser resolvido com qualquer uma dessas duas estruturas. 16. Qual a principal diferença entre essas duas estruturas? Quando sabemos que é melhor utilizar uma ou outra? 17. Escreva um algoritmo que receba o código correspondente ao cargo de um funcionário de uma escola e seu salário atual e mostre o valor do novo salário, com aumento, conforme tabela abaixo: Código do Cargo Cargo Aumento 1 Secretário 45% 2 Professor 35% 3 Tesoureiro 25% 4 Coordenador 15% 5 Diretor Não tem aumento 18. Você acabou de almoçar em um restaurante e quer uma bela sobremesa. O restaurante dispõe de um sistema informatizado em que, sem precisar chamar o garçom, você pode pedir a sobremesa através de um dispositivo portátil, que é entregue a cada cliente assim que ele entra no restaurante. Lá, existem as seguintes opções de sobremesa: 1- Mousse; 2- Sorvete; 3- MilkShake e 4- Sunday. Para pedir a sobremesa, você só precisa digitar o número desejado e aguardar. Escreva um algoritmo que mostre essemenu de sobremesas. Se a opção digitada não estiver entre os valores 1 e 4, exiba um alerta de erro e peça ao cliente que digite um valor válido. 19. Uma fábrica oferece às suas operárias um auxílio mensal além do salário. Para as casadas sem filhos, o auxilio mensal é de 15% do seu salário-base. Para as que têm filhos, casadas ou não, o auxílio é de 35% do salário-base. Para as solteiras sem filhos, não há auxílio extra. Faça um algoritmo que receba a opção (1, 2 ou 3) que determine em que categoria a funcionária se encontra, o valor do salário-base (igual para todas) e mostre o valor do salário com o auxílio.
Compartilhar