Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Informática para Internet / Lógica de Programação / Aula
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 a seguir fazem a mesma coisa:
Algoritmo “decisaoEncadeada”
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
Algoritmo “multiplaEscolha”
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:
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
Versão 5.3 - Todos os Direitos reservados