UFSM > Ciência da Computação

Primeiro Semestre de 2013
Professora: Juliana Kaizer Vizzotto

Laços de Repetição em C: do while

  1. O laço `do ... while` é, asso, como o laço `while`, uma estrutura de controle de fluxo, que permite que o bloco de instruções do laço seja executado pelo menos uma vez e depois será executado enquanto uma condição dor verdadeira.

  2. O laço `do ... while` é um laço com teste no final.

  3. A principal diferença entre o laço `while` e o laço `do ... while` é que o laço com `do ... while` (com teste no final) faz com que o bloco de instruções da repetição seja executado pelo menos uma vez.

  4. A sintaxe do laço `do ... while`:

    do {
        <bloco de instruções>
        ...
    } while <condição>
    

  5. O laço `do ... while` é utilizado quando há um conjunto de instruções a ser executado um número indeterminado de vezes, mas no caso, esse conjunto de instruções deve ser executado ao menos uma vez, necessariamente.

  6. Exemplo de Código de programa que imprime o contador valendo de 0 a 9 na tela:

    int main(){
       int cont=0;
       
       do {
           printf("\n cont=%d",cont);
           cont++;
       } while (cont < 10);
       
      return 0;
    }
    

  7. Outro exemplo de programa que calcula a idade média de um grupo de tamanho não determinado de pessoas:

    int main(){
       int soma=0, qtd=0, idade;
       float media;
       do {
            printf("Digite a idade: ");
            scanf("%d",&idade);
            if (idade >= 0){
               soma = soma + idade;
               qtd++;
             }
       } while (idade > 0);
       if (qtd > 0) {
           media = (float) soma/qtd;
           printf("\n A media das idades eh: %f", media);
       }
       return 0;
    }
    

Exercícios

** Utilize o laço `do ... while` **

  1. Faça um programa que calcula a associação em paralelo de dois resistores R1 e R2 digitados pelo usuário via teclado. O programa fica pedindo estes valores e calculando até que o usuário entre com um valor de resistência igual a zero. A fórmula para o cálculo é R = R1*R2/(R1+R2).

  2. Faça um programa que mostre uma contagem na tela de 233 a 456, só que contando de 3 em 3 quando estiver entre 300 e 400 e de 5 em 5 quando não estiver.

  3. Calcule a exponenciação de dois números inteiros x e y entrados pelo teclado, mas faça isso sem usar a função `pow`, ou seja, obtenha x elevado a y só com multiplicação e um laço do while.

  4. Faça um programa que pegue um número do teclado e calcule a soma de todos os números de 1 até ele. Ex.: o usuário entra 7, o programa vai mostrar 28, pois 1+2+3+4+5+6+7=28.

  5. Faça um programa que mostre uma contagem de 1 a 100 (de dois em dois), outra de 10 a 1000 (de dez em dez), uma contagem de 2 a 200 ( números pares apenas), outra de 1 a 199 (números ímpares) e uma contagem de 100 a 1, em várias colunas. Por exemplo, a saída deve começar:

    1 10 2 1 100
    2 20 4 3 99
    5 30 6 5 98
    ...

Página criada em: Qua Mai 15 09:00:00 BRT 2013. Última atualização em: Wed May 15 11:18:59 2013. Autoria: Juliana Kaizer Vizzotto.