Aula 6 - Controle de Fluxo: Caso

Estrutura de controle de fluxo de execução condicional, Caso ... Escolha, estrutura de decisão, utilizada para alterar o fluxo/resultado de um algoritmo.

1 - Estruturas de Decisão Múltipla do Tipo Caso/Escolha (Escolha ... Caso ... outrocaso)

Este tipo de estrutura é uma generalização da construção SE, onde somente uma condição era avaliada e dois caminhos podiam ser seguidos. Na estrutura de decisão do tipo Caso pode haver uma ou mais condições a serem testadas e um comando diferente associado a cada uma destas.

Observe na figura a representação no diagrama de blocos/fluxograma a estrutura para instrução Escolha ... Caso ... outrocaso.

A sintaxe da construção de Caso no VisuAlg é:

escolha expressão-de-seleção/variável

caso condiçao1

sequência-de-comandos-1

caso condição21, condição 22, ..., condição 2n

sequência-de-comandos-2

...

outrocaso

sequência-de-comandos-extra

Fimescolha

Seu funcionamento é o seguinte: ao entrar-se numa construção do tipo Caso/Escolha, a condição1 é testada com a expressão-de-seleção/variável: se for verdadeira, a sequência-de-comandos-1 é executada e após seu término, o fluxo de execução prossegue pela primeira instrução após o final da construção (Fimescolha); se a condição_1 for falsa, a condição_2 é testada: se esta for verdadeira, a sequência-de-comandos-2 é executada e ao seu término, a execução prossegue normalmente pela instrução seguinte ao final da construção (Fimescolha).

O mesmo raciocínio é estendido a todas as condições da construção. No caso em que todas as condições são avaliadas como falsas, a sequência-de-comandos-extra (correspondente ao outrocaso da construção) é executado.

Um caso particular desta construção é aquele em que a sequência-de-comandos-extra não contém nenhuma instrução. Isto ocorre nas situações que não se deseja efetuar nenhuma ação quando todas as condições são falsas. Assim, pode-se dispensar o uso do outrocaso na construção Caso.

A estrutura Caso também é muito utilizada na construção de menus de opções.

Exemplo1:

Observe e execute o seguinte exemplo no VisuAlg:

algoritmo "Times"

var time: caractere

inicio

escreval ("Entre com o nome de um time de futebol: ")
escreval ("Obs: Digite o nome do time em maiúsculo: ")
leia (time)
escolha time
caso "FLAMENGO", "FLUMINENSE", "VASCO", "BOTAFOGO"

escreval ("É um time carioca.")

caso "SÃO PAULO", "PALMEIRAS", "SANTOS", "CORINTHIANS"

escreval ("É um time paulista.")

caso "ATLETICO MINEIRO", "CRUZEIRO", "AMÉRICA MINEIRO"

escreval ("É um time mineiro.")

outrocaso

escreval ("É de outro estado.")

fimescolha

fimalgoritmo

Observe que ao digitar “CORINTHIANS” o algoritmo entra no segundo caso e imprime na tela a saída “É um time paulista", caso seja digitado um valor que não está contemplado entre os casos o algoritmo irá imprimir o valor do “outrocaso”.

A necessidade de digitar o caracter com as letras em maiúsculo é uma caracteristica do VisuAlg3, Utilizando o VisuAlg2.0 não é necessario digitar em maiúsculo.

Escute essa aula: Estruturas de Decisão Múltipla do Tipo Caso/Escolha 1

Exemplo 2:

Observe e execute o seguinte algoritmo no VisuAlg:

algoritmo "reajuste_salario_caso"

var prof: caractere
salario, salario_reaj : real

inicio

escrevaL ("Entre com a profissão em letra MAIUSCULA: ")
leia(prof)
escrevaL ("Entre com o salário atual")
leia (salario)
escolha prof
caso "TECNICO"

escreval ("Técnico: Aumento de 50%")
salario_reaj := salario *1.5

caso "GERENTE"

escreval ("Gerente: Aumento de 30%")
salario_reaj := salario *1.3

outrocaso

escreval ("Outro Cargo: Aumento de 20%")
salario_reaj := salario *1.2

fimescolha
escreval ("O salário reajustado é de R$:", salario_reaj)

fimalgoritmo

Observe que neste exemplo caso o cargo seja técnico o salário sofrera um aumento de 50%, caso seja gerente um aumento de 30% e caso seja qualquer outro cargo terá um aumento de 20%.

O fluxograma do algoritmo é representado da seguinte forma:

Observe no seguinte GIF, a mudança do fluxo de execução do algoritmo dependendo do valor da variavel prof, que é variável alvo do "ESCOLHA", experimente com outros valores de prof, caso deseje, aumente o tempo de execução de cada linha ao lado do botão de relógio para observar melhor.

Escute essa aula: Estruturas de Decisão Múltipla do Tipo Caso/Escolha 2

Exemplo 3: Menu

Observe e execute o seguinte exemplo no VisuAlg:

algoritmo "opcoes_de_jogos"
var

opcao: inteiro

inicio

escreval ("Simulador Pokemon!")
escreval ("Um Pikachu selvagem apareceu !!!")
escreval ("O que você irá fazer?")
escreval ("1 - Atirar Pokebola!")
escreval ("2 - Batalhar!")
escreval ("3 - Fugir!")
leia (opcao)
escolha opcao
caso 1

escreval (" O Pikachu foi capturado!!! ")

caso 2

escreval (" Pikachu foi derrotado, não pode capturar!")

caso 3

escreval (" Pikachu fugiu!!! ")

outrocaso

escreval (" Opção invalida ")

fimescolha

fimalgoritmo

Observe a saída do algoritmo:

Observe que neste exemplo a estrutura CASO foi utilizada para criar um menu de opções, cada opção executará uma função diferente.

Escute essa aula: Estruturas de Decisão Múltipla do Tipo Caso/Escolha 3 Menu

Links Úteis

Canal: Node Studio Treinamentos

Site: Manual do VisuAlg 3.0

Referências

  • CORMEN, Thomas H. et al. Algoritmos: teoria e prática. Editora Campus, v. 2, p. 296, 2002.
  • FARRER, Harry; BECKER, Christiano Gonçalves. Algoritmos estruturados: programação estruturada de computadores. Rio de Janeiro: Guanabara, 2000.
  • NETO, Benedito; PEREIRA, Diego; FERNANDES, Sabrina. Apostila de Algoritmo - CEP - Centro De Educação Profissional "Tacredo Neves".
  • Manual do VisuAlg 3.0