Estruturas de Repetição
Galera, antes de mais nada, se você estiver desmotivado porque programação parece muito difícil, assista ao vídeo abaixo! Me deu um prazer, uma satisfação orientada a objetos! Estamos aprendendo e seremos os super homens do futuro. Vejam aí! Serão 9 minutos investidos que valem muito a pena!
http://youtu.be/LTTuWg0SWFM
Viu que vídeo? Me deu ainda mais vontade de aprender, me aperfeiçoar!
Hoje falaremos sobre Estruturas de Repetição. Mas antes, como é de costume, trocaremos uma ideia sobre a aula anterior, que falava sobre Operadores. Tudo entendido até então? Espero que sim! Senão, façam o de sempre, publiquem nos comentários que faremos o possível para tirar todas as dúvidas.
CORREÇÃO DOS EXERCÍCIOS
1 – Crie um algoritmo que receba uma variável do usuário e teste se esta é divisível por 3. Se não, exiba o resto dessa divisão.
Program Pzim ;
Var numero: Integer;
Begin
read(numero);
if (numero mod 3 = 0) then
write(‘O num ‘, numero, ‘ é divisível por 3’)
else
write(‘O resto da divisão de ‘, numero, ‘ por 3 é ‘, numero mod 3);
End.
Este algoritmo é interessante, pois trabalha nossa percepção na resolução de problemas. Você, programador, procure desenvolver algoritmos limpos, e com o menor número de linhas possível, desde que o script faça o que é proposto. É uma boa prática de programação criar um ambiente gráfico para que o usuário entenda o que o algoritmo quer. Um exercício é pegar o algoritmo acima e transformar em algo mais amigável ao usuário.
Vamos ao segundo exercício?
2 – Um revendedor de chocolates pratica os seguintes preços: se o cliente comprar até 20 caixas, cada caixa custará R$ 10; se acima de 20 caixas, custará R$ 9,50.
Desenvolva um sistema que leia o número de caixas compradas, calcule e escreva o valor total da compra.
Program Pzim ;
Var caixas: Integer;
Begin
read(caixas);
if (caixas <= 20) then
write(‘O valor final da compra é de R$ ‘, caixas * 10)
else
write(‘O valor final da compra é de R$ ‘, (caixas * 9.5):2:2);
End.
Percebam que o algoritmo é bem simples. Quando lemos a questão parece que vai ser complicado, mas não é. Aliás, nunca é, basta pensar um pouco!
Temos uma linha destacada, e um detalhe novo que foi a dúvida do Gabriel. Observem como é interessante: basta você especificar para a linguagem como ela deve se comportar nas respostas. Quando coloco (caixas * 9.5) eu especifico que a regra deve ser aplicada no resultado do parênteses, e o :2:2 informa para a linguagem que só me serão úteis duas casas após o ponto, fazendo-a ignorar o restante. Na realidade, o Pascal arredonda o valor. Entendido? Espero que sim, já que as coisas começam a ficar mais interessantes a partir de então.
ESTRUTURAS DE REPETIÇÃO
A maior diferença entra uma Estrutura de Repetição e uma Estrutura de Controle, é que na Estrutura de Controle você só entrará no bloco de comandos uma vez, nas de Repetição o bloco será compilado enquanto o teste de variável for verdadeiro. Mas como sempre, veremos através de exemplos como funciona. Me acompanha?
Program Pzim ;
Var numero: Integer;
Begin
numero := 1; // Acredito que até esta linha, todos já sabemos suas funções.
while (numero < 10) do // Aqui as coisas começam a ficar muito interessantes, enquanto a variável “numero” for menor que 10, o bloco de comando abaixo será realizado.
Begin
write (numero, ‘ ‘);
numero := numero + 1; // Neste momento, a estrutura de controle começa a fazer sentido, pois ela é o momento que a variável número terá o seu valor alterado e um novo teste é feito. Na primeira passagem a variável número tinha valor 1, quando o algoritmo girar, número terá valor 2, até o teste acima ser falso.
End;
End.
Viram como é fácil? Agora vamos montar um exemplo da seguinte forma, exiba os números pares menores que 100. Como faremos? Percebam como é simples…
Program Pzim ;
Var numero: Integer;
Begin
numero := 2;
while (numero < 100) do // Enquanto número menor que 100
Begin
write (numero, ‘ ‘);
numero := numero + 2; // Invés de incrementar o número de um em um, o faremos de dois em dois, satisfazendo o que o exercício pede.
End;
End.
Além do while do, existem mais duas estruturas de repetição que são ótimas para se trabalhar, temos o repeat until e o for. A estrutura for ficará para a próxima aula, junto com os exercícios, e encerraremos esta explicando como o repeat until é utilizado.
Vamos aos exemplos:
- Program Pzim ;
- Var numero: Integer;
- Begin
- numero := 1;
- repeat
- Begin
- write (numero, ‘ ‘);
- numero := numero + 1;
- End;
- until (numero > 10)
- End.
Acredito que até a linha 4 tudo esteja bem claro, caso não esteja, já sabemos como proceder, voltar algumas aulas e buscar entender. Já na linha 5 a estrutura de repetição começa a ser utilizada. Perceba que não há nenhum teste sendo executado até então, pois o teste da variável será feito na linha 10. Outro detalhe importante é perceber que o teste feito no until é para verificar se este é falso, pois no momento é que se torna verdadeiro, o looping para. Entendido?
RAPIDINHAS:
1 – A principal diferença entre o WHILE DO e o REPEAT UNTIL é que no caso do repeat o bloco de comandos é executado pelo menos uma vez, independente do teste ser verdadeiro ou falso.
2 – Estruturas de repetição são muito usadas para exibição de resultados de buscas, quer seja em uma base dedados ou mesmo em um texto sem referência a nenhuma base.
3 – O repeat é muito usado quando o dado precisa ser acessado ao menos uma vez;
4 – Para buscas em bases de dados o while e o for são mais utilizados;
5 – O repeat está presente na maioria das linguagens, mas é especificado de outra forma.
Talvez você sinta falta dos exercícios para esta aula, mas na outra veremos o uso do FOR e os exercícios também virão!
Grande abraço e uma ótima semana a todos. E não deixem de comentar!