Cursos

Curso de Lógica de Programação – #07 Estruturas Condicionais – Uso do CASE – Parte 02

programar

Olá caro amigo, como foi o seu final de semana? Na torcida para que tudo tenha corrido nos conformes. Espero que tenha gostado da primeira parte da aula sobre o uso do CASE.

Antes de tudo, vamos rememorar um pouco a aula passada. Aprendemos que o CASE é tratado como se fosse uma evolução do IF/ELSE. Agora, existem alguns detalhes do CASE que são bem legais, pois, como o CASE trabalha usando variáveis numéricas, podemos, nas opções, usar intervalos de valores. Vamos entender melhor como funciona?

1. Program Pzim ;
2. var media:integer;
3. Begin
4. read(media);
5. case media of
6. 0..4: write(‘REPROVADO’);
7. 5..7:write(‘RECUPERAÇÃO’);
8. 8..10:write(‘APROVADO’);
9. else
10. write(‘MÉDIA INVÁLIDA’);
11. end;
12. End.

Para não ficar muito embaralhado lá em cima, resolvi numerar as linhas, acredito que assim fica melhor, concorda?

Parto do princípio que a aula anterior está entendida, ah, mas senão estiver, comenta, volta lá! Não é bom levarmos dúvidas de uma aula pra outra. Vamos a análise do algoritmo acima?

Acredito que até a linha 4, já está bem entendido, certo?

Linha 5: Neste momento a variável media é registrada na memória, para que, em comandos posteriores o valor do registro possa ser testado;

Linhas 6, 7 e 8: Aqui é a parte legal da coisa, perceba o código 0..4, opa, é exatamente o que está pensando! Na aula anterior, vimos o case testar o valor único, nesta, aprendemos que ele pode pegar intervalos de valores, diminuindo os códigos em um script mais complexo. Interessante como o código fica mais limpo, se usássemos o IF/ELSE nessa ocasião, o código ficaria mais sujo. Duvida? Confira com seus próprios olhos! O código abaixo terá o mesmo efeito do código acima.

gdpc

1. Program Pzim ;
2. var media:integer;
3. Begin
4. read(media);
5. if ((media > 1) and (media <= 5)) then
6. write(‘Reprovado’)
7. else if ((media > 5) and (media < 7)) then
8. write(‘Recuperação’)
9. else if ((media >= 7) and (media <= 10)) then
10. write(‘Aprovado’)
11. else
12. write(‘Média Inválida’);
13. End.

Mas Deles, o código só aumentou uma linha, faz tanto efeito assim? Meu caro amigo, faz sim! Quanto menor o número de linhas, desde que o resultado final não seja alterado, melhor é!

Linhas 9 e 10: Cuidado para não se confundir, falamos sobre o algoritmo do CASE, que está mais acima, e não esse do IF. Correto? Sobe o um pouquinho e relembre as linhas 9 e 10. Perceba que este é um tratamento para um eventual erro de inserção de variável por parte do usuário. Caso a média digitada seja maior que 10, o sistema emitirá um aviso, informando ao usuário que o valor inserido é inválido para aquela operação.

Eu gosto muito do case, facilita certas operações.

Mas, se eu quiser dar mais de um comando dentro das opções do case, como faz?
Opa, bom viu, é bem fácil, basta separar os blocos de comando com Begin/End, como no exemplo abaixo.

1. Program Pzim ;
2. var media:integer;
3. Begin
4. read(media);
5. case media of
6. 0..4: begin
7. writeln(‘REPROVADO’);
8. writeln(‘A média do aluno foi ‘,media);
9. end;
10. 5..7: begin
11. writeln(‘RECUPERAÇÃO’);
12. writeln(‘A média do aluno foi ‘,media);
13. end;
14. 8..10: begin
15. writeln(‘APROVADO’);
16. writeln(‘A média do aluno foi ‘,media);
17. end;
18. else
19. write(‘MÉDIA INVÁLIDA’);
20. end;
21. End.

As linhas de 6 a 9 se tornaram um único bloco de comandos, pois begin e end estipulam início e fim deste bloco.

RAPIDINHAS:

1 – Se houverem mais de 3 opções, use o case, fica mais elegante;
2 – O case é encerrado com o end;
3 – É uma boa prática de programação tentar fazer o algoritmo realizar uma tarefa com o menor número de linhas possíveis.

Vamos aos exercícios?

1 – Um plano de saúde solicita um sistema que obedeça a tabela de valores abaixo:

Idade Valor (R$)
0 a 4 anos R$ 430,27
5 a 8 anos R$ 325,18
9 a 16 anos R$ 270,29
16 a 35 anos R$ 189,90
35 a 60 anos R$ 209,80
Acima de 60 anos R$ 419,88

O operador digitará a idade do paciente e o sistema devolverá o valor a ser pago ao plano de saúde.

Justificativa:

Essa é interessante e recorrente, quando programarmos em alto nível, encontraremos várias ocasiões do tipo! Então tente fazer sozinho, eu aconselho o CASE, mas o programador é livre, usando o IF/ELSE dá certo também, o importante é o resultado final da forma mais otimizada possível!

Terminamos mais uma aula, gostou? Espero sinceramente que sim! Na próxima aula trocaremos uma ideia sobre estrutura de repetição, as coisas vão ficar cada vez mais interessantes! Grande abraço!

Tags: Cursos, Lógica de Programação

Você também vai gostar

Leia também!