Buscar

Aula09-do-while

Prévia do material em texto

1/9/2008 1
Comando de repetição 
do while
Semelhante ao while só que o teste da condição é feita no 
final do loop � pelo menor uma vez as instruções do loop
serão executadas
Sintaxe:
do comando while (expressão);
Enquanto a expressão true (≠0) o comando (ou comandos) 
do loop é executado.
Ou bloco de comandos
Condição sob uma variável que controla o loop
true � ou valor ≠0 false� ou valor = 0
1/9/2008 2
Comando do while - Exemplo
Programa
#include <stdio.h>
int main()
{
int num,cont=0; //inicialização do cont
scanf("%d", &num);
do 
{
num=num/10;
cont=cont+1;
}
while (num >0);
printf(“contagem = %d \n ", cont);
return 0;
} 
Problema: Dado um número inteiro exibir a quantidade de dígitos do 
número.
Algorítmo
1. Obter o número inteiro
2. Repetir
2.1Dividir o número por 10
2.2 Contar + 1 dígito
Enquanto número >0
3. Exibir contagem
4. Fim
1/9/2008 3
Comando do while - Exemplo
Programa
#include <stdio.h>
int main() {
int fatorial = 1, n = 1;
do {
fatorial = fatorial * n;
n++;
}
while ( fatorial <= 1000);
printf(“%d”, n); 
return 0;
} 
Problema: obter o primeiro fatorial que é maior que 1000.
Algorítmo
1. Começar com fatorial=1 e n=1
2. Repetir
2.1 multiplicar fatorial por n
2.2 acrescentar 1 a n 
Enquanto fatorial ≤≤≤≤1000
3. Exibir contagem
4. Fim
1/9/2008 4
Exercício:Dados dois inteiros calcule o máximo divisor 
comum MDC entre os dois números utilizando divisões 
sucessivas.
Algorítmo
1. Obter dois números a e b
2. Deixar o maior valor em a e o menor em b 
3. Repetir 
2.1Encontrar o resto, r, da divisão de a por b
2.2 colocar o valor de b em a e o valor do r em b
Enquanto r for maior que 0
4. Exibir o MDC (que é igual ao valor de a)
5. Fim
10
1585
a bX a b
10
5
X a b
5
0Resto da divisão
MDC
X a b
0
Dados 2 números a e b temos:
1/9/2008 5
Exercícios
Escreva um programa para resolver o problema de 
um jogo de dados em que:
� O jogador inicia o jogo com 100 reais
� A cada jogada, o jogador joga dois dados 
� Se a soma dos números dos dados for 7 ou 11, o jogador 
recebe o dobro do saldo que tem no momento
� Se a soma dos números não for 7 ou 11, o jogador perde 20 
reais
� Quando o saldo do jogador for menor que 20, o jogo acaba
� Exiba os saldos parciais e o número de jogadas no momento 
do encerramento do jogo.

Continue navegando