Introdução a Programação de Jogos  
Aula 07 Estruturas de Repetição  
Edirlei Soares de Lima  
<elima@inf.puc-rio.br>  
Estruturas de Repetição  
Diversos problemas somente podem ser resolvidos  
numericamente por um computador se o resultado de  
pequenas computações forem acumulados.  
Exemplo: calcular o fatorial de um número.  
Precisamos de mecanismos que nos permitam requisitar que  
um conjunto de instruções seja repetidamente executado, até  
que uma determinada condição seja alcançada.  
Repetições são programadas através da construção de laços  
(
ou ciclos).  
Estruturas de Repetição (WHILE)  
Estruturas de repetição são utilizadas para indicar que um  
determinado conjunto de instruções deve ser executado um  
número definido ou indefinido de vezes, ou enquanto uma  
condição não for satisfeita.  
Em C, uma das formas de se trabalhar com repetições é  
através do comando while:  
.
while(expressão_lógica)  
{
..  
Enquanto a “expressão_lógica” for  
verdadeira, o “bloco de comandos” é  
executado!  
/
* Bloco de comandos */  
}
...  
Depois, a execução procede nos  
comandos subsequentes ao bloco while.  
Estruturas de Repetição Exemplo 1  
Exemplo 1:  
#include <stdio.h>  
int main (void)  
escreva na tela todos os  
números entre 0 e 100”  
Crie um programa que  
{
int x = 0;  
while (x <= 100)  
{
printf(“%d\n”, x);  
x = x + 1;  
}
return 0;  
}
Estruturas de Repetição Exemplo 2  
Exemplo 2:  
int fatorial(int n)  
{
Fatorial de um número não-  
int f = 1;  
negativo”  
while(n > 1)  
{
f = f * n;  
n = n 1;  
}
return f;  
}
Estruturas de Repetição Exemplo 3  
int primo(int n)  
Exemplo 3:  
{
int i;  
Primo”  
Verificar se um Número é  
if (n < 2)  
return 0;  
i=2;  
while(i < n)  
{
Sabe-se que: Um número é  
dito primo se ele for divisível  
apenas pelo número 1 e pelo  
próprio número, sendo que 1  
não é primo (2 é o primeiro  
número primo).  
if (n%i == 0)  
return 0;  
i++;  
}
return 1;  
}
/* retorna 0 se n não for primo, 1 se for */  
Estruturas de Repetição (FOR)  
Outra forma de se trabalhar com repetições é através  
do comando for que é equivalente ao comando  
while com uma sintaxe mais compacta:  
...  
for(expressão_inicial; expressão_lógica; expressão_atualização)  
{
/* Bloco de comandos */  
}
...  
Estruturas de Repetição Exemplo 1  
Exemplo 1: “Escrever na tela os números entre 0 e 100”  
#include <stdio.h>  
#include <stdio.h>  
int main (void)  
int main (void)  
{
{
int x = 0;  
int x;  
while (x <= 100)  
for (x = 0; x <= 100; x++)  
{
{
printf(“%d\n”, x);  
printf(“%d\n”, x);  
x = x + 1;  
}
}
return 0;  
}
return 0;  
}
Estruturas de Repetição Exemplo 2  
Exemplo 2:  
int fatorial(int n)  
{
Fatorial de um número não-  
int i;  
negativo”  
int f = 1;  
for(i=2; i<=n; i++)  
{
f = f * i;  
}
return f;  
}
Estruturas de Repetição Exemplo 3  
int primo(int n)  
Exemplo 3:  
{
int i;  
Primo”  
Verificar se um Número é  
if (n <2)  
return 0;  
for (i = 2; i < n; i++)  
{
if (n % i == 0)  
return 0;  
}
return 1;  
}
Tipos de Repetições  
Repetição determinada  
Define-se o número de vezes que a repetição será  
executada antes da repetição começar.  
Repetição indeterminada  
Cria-se uma condição de parada que é ativada  
durante o processo de repetição.  
Repetição Indeterminada - Exemplo  
Exemplo 5:  
O professor quer saber se os alunos estão  
gostando do curso. Crie um programa que  
permita aos alunos votarem em 1-Sim ou 2-Não.  
A votação deve terminar quando o voto 0 for  
digitado. Ao terminar a votação, o resultado deve  
ser mostrado.”  
#include <stdio.h>  
int main (void)  
{
int total_votos_sim = 0;  
int total_votos_nao = 0;  
int voto = -1;  
while (voto != 0)  
{
printf(“Digite o seu voto:\n1-Sim\n2-Nao\n0-Terminar Votacao\n”);  
scanf(“%d”, &voto);  
if (voto == 1)  
total_votos_sim = total_votos_sim + 1;  
else if (voto == 2)  
total_votos_nao = total_votos_nao + 1;  
}
printf(“Total de votos Sim: %d\n”, total_votos_sim);  
printf(“Total de votos Nao: %d\n”, total_votos_nao);  
return 0;  
}
Exercícios  
Lista de Exercícios 04 - Estruturas de Repetição  
http://www.inf.puc-rio.br/~elima/prog-jogos/