UNIVERSIDADE FEDERAL DE OURO PRETO
INSTITUTO DE CIÊNCIAS EXATAS E BIOLÓGICAS
DEPARTAMENTO DE COMPUTAÇÃO
CIC107 – PROGRAMAÇÃO DE COMPUTADORES I

4ª Aula prática 

Estrutura de repetição (Laço)

Permite que um comando (ou uma sequência de comandos) sejam executados repetidamente enquanto uma condição for satisfeita.
Na linguagem C/C++, um laço de repetição pode ser definido pelo comando “while” que tem a seguinte forma:
	while (condição) 
		comando;

A “condição” é uma expressão lógica que produz como resultado o valor “verdadeiro” ou “falso”, como visto na aula anterior.
Ressaltando que “comando;” pode representar um comando composto, no formato:
	{
		comando1;
		comando2;
		...
	}

Exemplo 1 : programa para calcular o fatorial de um número.
#include <iostream>
using namespace std;
main()
{
	int x, fat;
	cout << "Digite um número: ";
	cin >> x;
	fat = x;
	x = x -1;
	while ( x >= 2 )
	{
		fat = fat * x;
		x = x - 1;
	}
	cout << "fatorial: " << fat << endl;
}

Exemplo 2 : programa que imprime todos os divisores de um número
#include <iostream>
using namespace std;
main()
{
	int x, i;
	cout << "Digite um número: ";
	cin >> x;
	i = x;
	while ( i >= 1 )
	{
		if ( x%i == 0 )
			cout << i << " é divisor de " << x << endl;
		i = i - 1;
   	}
}

Nota: o operador % retorna o resto da divisão inteira.

Exemplo 3 : 

Um programa que escreve uma mensagem com a seguinte estrutura:
sonho 
sonho sonho 
sonho sonho sonho 
sonho sonho sonho sonho 
   …

#include <iostream>
using namespace std;
main()
{
	int linhas;
	cout << "Quantas linhas: ";
	cin >> linhas;
	int original;
	original = linhas;
	while ( linhas >= 1 )
	{
		int c;
		c = original +1 -linhas;
		while ( c>=1 )
		{
			cout << "sonho ";
			c = c – 1;
		}
		cout << endl;
		
		linhas = linhas - 1;
	}
}

Nota: no caso da ocorrência de um laço dentro de outro temos os laços aninhados. O aninhamento também pode ocorrer com outras estruturas, como o if.

Exercícios:

1)	1.	Crie um programa que imprima a tabela de conversão de polegadas para centímetros. Deseja-se que na tabela constem valores dede 1 polegada até 20 polegadas (lembrando que 1 polegada equivale a 2,54 centímetros).
2)	2.	Crie um programa que imprima todos os números inteiros e positivos no intervalo aberto entre 10 e 100 de modo que:
•	•	não terminem em 0 e
•	•	se o dígito da direita for removido, o número restante é divisor do número original.
3)	3.	Crie um programa que leia um número qualquer de números positivos e imprima sua média. A interface funcionará da seguinte maneira: números serão digitados até o momento em que o usuário digitar um número negativo. Nesse momento, a média deverá ser calculada (sem considerar o número negativo) e impressa na tela.