Cursos

Curso de Lógica de Programação #09 Estruturas de Repetição

programar

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

estrutura-de-repeticao-final

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:

  1. Program Pzim ;
  2. Var numero: Integer;
  3. Begin
  4. numero := 1;
  5. repeat
  6. Begin
  7. write (numero, ‘ ‘);
  8. numero := numero + 1;
  9. End;
  10. until (numero > 10)
  11. 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!

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

Você também vai gostar

Leia também!