Introdução aos laços de repetição

Teoria Completa

Introdução

Fala aí, aqui é Guga do Responde Aí! Tudo bem com você?

Nesse tópico nós iremos introduzir um conceito muito importante para a programação, que é a capacidade de um programa repetir instruções.

Você já imaginou como seria o mundo se os computadores e seus programas não fossem capazes de repetir inúmeras instruções com precisão em velocidades cada vez menores?

É impressionante como um conceito tão simples é capaz de causar tanto impacto!

Variável contadora

Antes de conversarmos de fato sobre os laços de repetição, nós temos que entender o conceito de variável contadora.

Uma variável contadora nada mais é do que uma variável que é incrementada toda vez que um bloco de instruções é executado, sua função assim como o nome sugere, é contar quantas vezes determinado trecho de código foi executado.

Guarde esse conceito, pois ele será muito útil quando formos programar!

Laço de repetição

De forma simples, um laço de repetição é um bloco de instruções que será executado diversas vezes durante a execução de um programa.

Porém, para que isso seja possível todo laço de repetição deve ter uma condição de parada, ou seja, uma quantidade máxima de vezes que determinado trecho de código será executado.

Vale lembrar que em um laço de repetição as palavras loop ou iteração representam cada execução de um bloco que está em repetição.

Vamos para um exemplo!

Exemplo: suponha que você queira fazer um programa que imprima na tela todos os números no intervalo de 1 a 100.

Lembre-se que independente da situação, sempre será inviável codificar 100 comandos printf() com todos os números presentes no intervalo, por isso utilizaremos os laços de repetição.

Mas antes devemos nos atentar a algumas coisas, como por exemplo o momento em que as repetições devem se encerrar, por só queremos ir até o número 100, as repetições devem continuar apenas enquanto a variável contadora for menor ou igual a 100.

Com a condição de parada definida podemos codificar o bloco de instruções, que nesse caso será apenas uma função printf() que imprimirá o valor da variável contadora.

Para nós termos uma visualização ainda mais fácil, observe esse algoritmo que representa o programa que acabamos de idealizar:

  • Inicie a variável contadora em 1
  • Enquanto a variável contadora for menor ou igual a 100
    • Imprima a variável contadora
    • Incremente a variável contadora

Nós acabamos de criar nosso primeiro laço de repetição!

Cuidados que devemos ter

Como nós não temos controle sobre as repetições realizadas, é muito importante que a condição de parada seja definida criteriosamente, pois caso ela seja falha o programa pode entrar em estado que chamamos de loops infinitos.

Ele executará determinada instrução para sempre com direção ao infinito, pois não possui uma condição de parada consistente.

E para ser bem sincero... Programas indo com rumo AO INFITO E ALÉM são muito comuns!

Nesse momento nós já temos uma boa introdução sobre os laços de repetição, por isso não se esqueça de fazer os exercícios de fixação, te espero ali na página do lado!

Expandir

Exercício Resolvido #1

Elaboração própria.

Explique o que é e qual a finalidade de um laço de repetição em um programa.

MOSTRAR SOLUÇÃO COMPLETA

Resposta

Um laço de repetição é uma estrutura que contém instruções que serão repetidas enquanto determinada condição for verdadeira. Cada repetição das instruções presentes na estrutura é denominada loop e o objetivo de tal comando é tornar a codificação mais eficiente automatizando instruções iguais que seriam codificadas de forma sequencial.

Exercício Resolvido #2

Elaboração própria.

O que é e qual a finalidade da variável contadora nos laços de repetição?

MOSTRAR SOLUÇÃO COMPLETA

Resposta

Uma variável contadora tem o papel de contar as repetições executadas por um laço, sendo ela a responsável pela parada do mesmo na maioria das vezes, uma vez que a mesma é incrementada a cada loop até o momento que torna a condição de execução do laço falsa.

Vale lembrar que a codificação ruim das instruções envolvendo a variável contadora podem ocasionar o que chamamos de loop infinito, que é quando a condição de execução do laço de repetição nunca se torna falsa.

Exercício Resolvido #3

Elaboração própria.

Dada uma variável i, iniciada com o valor 0, que é incrementada ao final de cada loop de um laço de repetição.

Qual é a condição de execução do laço de repetição quando o mesmo tem o objetivo de imprimir todos os números inteiros do intervalo de 0 a 100?

MOSTRAR SOLUÇÃO COMPLETA

Resposta

A condição de execução das instruções desse laço de repetição é: “Enquanto i for menor ou igual a 100”.

Exercício Resolvido #4

Elaboração própria.

Dada uma variável i, iniciada com o valor 0, que é incrementada ao final de cada loop de um laço de repetição.

Qual é a condição de execução do laço de repetição quando o mesmo tem o objetivo de preencher um vetor?

MOSTRAR SOLUÇÃO COMPLETA

Resposta

A condição de execução das instruções desse laço de repetição é: “Enquanto i for menor que a quantidade de elementos do vetor”.

Exercício Resolvido #5

Elaboração própria.

O algoritmo a seguir visa representar um laço de repetição:

  • Iniciar i com o valor 0
    • Enquanto i for menor que 100
      • Imprimir i

Qual é a falha que irá ocorrer no programa quando o mesmo for executado e qual é o motivo dessa falha?

MOSTRAR SOLUÇÃO COMPLETA

Resposta

O programa passará a executar um loop infinito, pois a variável contadora i não está sendo incrementada, logo permanecerá infinitamente com o valor 0 e fará com que a condição de execução nunca seja falsa.

Exercício Resolvido #6

Elaboração própria.

Dada uma variável contadora j iniciada com o valor 10 e decrementada a cada loop de um determinado laço de repetição.

Qual será a condição de execução desse laço de repetição dado que o programa em que o mesmo executa tem o objetivo de imprimir todos os números primos no intervalo de 0 a 10?

MOSTRAR SOLUÇÃO COMPLETA

Resposta

A condição de execução das instruções desse laço de repetição será: “Enquanto j for maior ou igual a 0”.

Exercício Resolvido #7

Elaboração própria.

Suponha que você tenha que desenvolver um programa que realiza operações matemáticas de potenciação, ou seja, tem como entrada uma base seguida de seu expoente e como saída o resultado dessa potência.

Tendo em vista que a potenciação é uma operação matemática que representa a multiplicação de fatores iguais, como um laço de repetição poderia te auxiliar no desenvolvimento desse programa?

MOSTRAR SOLUÇÃO COMPLETA

Passo 1

Por se tratar de uma potenciação temos a garantia que uma instrução será repetida, mais especificamente a instrução de multiplicação pela base se repetirá n vezes, considerando n o expoente dessa operação.

Dessa forma, um laço de repetição pode ser utilizado para executar as instruções de multiplicação e atualização de uma variável resultado (inicializada com o valor 1) diversas vezes. Para isso, basta que o mesmo tenha como condição de execução uma variável contadora i (inicializada com o valor 0) que é incrementada ao final de cada loop menor ou igual ao expoente da potenciação.

Resposta

Com base na análise feita no primeiro passo, podemos criar o seguinte algoritmo para o cálculo de potências:

Sendo que a primeira instrução do algoritmo se trata de um comando de repetição.

Exercício Resolvido #8

Elaboração própria.

Suponha que você esteja desenvolvendo um programa que realiza a multiplicação entre dois números inteiros.

Esse programa deve permanecer em execução até que o usuário digite a opção sair, são opções desse programa:

  1. Multiplicar
  2. Sair

Como um laço de repetição poderá ser útil nesse programa e que outra estrutura será utilizada para o desenvolvimento do mesmo?

MOSTRAR SOLUÇÃO COMPLETA

Passo 1

Primeiro temos que definir a estrutura que será utilizada para a seleção das opções, onde para esse exemplo é possível perceber que o comando switch se encaixa muito bem.

Com isso, podemos utilizar um laço de repetição que executará a estrutura switch enquanto uma variável marcador for diferente de 0, essa por sua vez só possuirá valor 0 quando o usuário selecionar a opção “Sair” e uma atribuição de 0 a marcador for realizada.

Resposta

Para facilitar o entendimento do programa, dá uma olhada nesse pseudocódigo:

Portanto, enquanto o usuário não selecionar a opção 2, o programa irá requisitar a leitura de uma opção. Esse tipo de comportamento pode ser interessante quando queremos realizar diversas operações dentro de um programa sem que o mesmo finalize ao término de cada uma.

Esse conteúdo é exclusivo para cadastrados.

Cadastre-se grátis no maior portal de exatas do Brasil!

Relaxa, não vamos publicar nada no seu nome.

  • Resumões direto ao ponto
    Resumões
    direto ao ponto
  • Exercícios resolvidos passo a passo
    Exercícios resolvidos
    passo a passo
  • Videoaulas incríveis
    Videoaulas
    incríveis
  • Aulões Salva-Vidas
    Aulões
    Salva-Vidas