ELC1065 - Laboratório de Programação I
Primeiro Semestre de 2013
Professora: Juliana Kaizer Vizzotto
Laços de Repetição em C: do while
- 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. - O laço
`do ... while`
é um laço com teste no final. - 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. - A sintaxe do laço
`do ... while`
:do { <bloco de instruções> ... } while <condição>
- 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. - 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; }
- 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`
**
- 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).
- 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.
- 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. - 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.
- 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
...