Buscar

Comandos de Repetição em C++

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

ECT1203 Linguagem de Programação
2012.1
Prof. Diego Rodrigues de Carvalho
Profa. Idalmis Milián Sardina
Prof. Luiz Eduardo Cunha Leite
Prof. Marconi Câmara Rodrigues
Prof. Marcelo Henrique Ramalho Nobre
Aula 06 – Comandos de repetição
Universidade Federal do Rio Grande do Norte
Escola de Ciências e Tecnologia
Hora de silenciar o celular
Manter o celular sempre desligado/silencioso quando estiver em sala de aula
Nunca atender o celular em sala de aula
Revisão da aula anterior
Como o programa faz para decidir que conjunto de instruções ele deve executar (Estruturas de seleção).
Seleção simples (if)
if (delta < 0) cout << “Raiz de número negativo”;
Seleção composta (if-else)
if(chance > 50) cout << “o gato está vivo”;
 else cout << “o gato está morto”;
Seleção Encadeada (if-else-if)
if (vento >= 62 && vento <=118) cout << “tempestade tropical”;
 else if (vento > 118) cout << “o vento é algum tipo de furacão”;
 else cout << “o vento normal”;
Seleção encadeada homogênea
if (nota > 7) cout << “aluno aprovado”;
 if (presenca > 75) cout << “o aluno esteve presente a maioria das aulas”;
Múltipla escolha
switch (opcao){
 case ‘s’: cout << “sim”; break;
 case ‘n’: cout << “não”; break;
 default: cout << “opção inválida”; } 
Objetivo da aula
Responder as seguintes perguntas:
Aula passada eu vi como escolher entre um determinado conjunto de instruções para executar, mas será que seria possível eu executar esse conjunto de instruções diversas vezes?
Eu sempre precisarei de uma condição para escolher entre um conjunto de instruções?
Aluno que não sabe programar
int main()
{
 cout << “Eu serei um bom menino\n”;
 	cout << “Eu serei um bom menino\n”;
	cout << “Eu serei um bom menino\n”;
 	cout << “Eu serei um bom menino\n”;
 	cout << “Eu serei um bom menino\n”;
 	cout << “Eu serei um bom menino\n”;
	cout << “Eu serei um bom menino\n”;
	cout << “Eu serei um bom menino\n”;
 ...
	cout << “Eu serei um bom menino\n”;
	return 0;
}
Aluno que sabe programação
Comandos de Iteração ou Laços de Repetição permitem que um determinado comando ou bloco de comandos seja executado mais de uma vez;
Um comando ou bloco de comandos é executado repetidamente até que uma determinada condição seja alcançada;
Na linguagem C++, existem três tipos de comandos de repetição:
Laços while
Laços do-while
Laços for
Comandos de Repetição ou Iteração
Comando de Repetição Enquanto
Em Portugol...
	enquanto condição faça
		seqüência de comandos
	fimEnquanto
sintaxe:
10
Fluxograma
Comando de Repetição while
Na Linguagem C++...
while (expressão) comando;
sintaxe
O comando interno ao laço while é executado repetidamente enquanto a expressão de execução for verdadeira (diferente de zero) . 
Comando Interno:
- Simples
- Bloco
- Nada
A expressão é avaliada no início do laço. 
CodeBlocks
Faça um programa que peça para o usuário digitar um número, e só pare de pedir quando o usuário digitar o número 10.
CodeBlocks
Faça um programa que peça para o usuário digitar um número, e só pare de pedir quando o usuário digitar o número 10.
int num = 0;
num != 10
cin >> num;
fim
não
sim
inicialização
teste
atualização
Comando de Repetição while
Na Linguagem C++...
int numero;
numero = 0;
while (numero != 10)
{
	cout << “Digite um número”;
	cin >> numero;
}
EXEMPLO
Laço Infinito
Um laço infinito ou loop infinito é um laço de repetição cuja condição para repetição é sempre verdadeira. O bloco de comandos internos do laço é executado indefinidamente.
Atenção!
int numero;
numero = 0;
while (numero != 10 )
 	cout << numero;
EXEMPLO
A condição numero!=0 nunca muda pois dentro do laço nenhum comando modifica o valor da variável numero. A instrução cout é executada indefinidamente.
Solução do Horward(algoritmo da amizade)
Dica de programação
Toda estrutura de repetição tem 3 componentes
Inicialização: Estabelece as condições iniciais para que a estrutura de repetição possa funcionar.
Teste: Testa alguma condição para saber quando parar de repetir.
Atualização: Modifica a variável que está sendo testada para evitar que ocorra o loop infinito.
Comando de Repetição while
Na Linguagem C++...
int numero;
numero = 0;
while (numero != 10)
{
	cout << “Digite um número”;
	cin >> numero;
}
EXEMPLO
Como a condição é avaliada no início do laço, o bloco de comandos internos do laço só será executado pelo menos uma vez, se a condição for inicialmente verdadeira.
Atenção!
Dica de programação
Diferença entre ++variavel e variavel++
++variavel = O valor da variável é modificada no momento que o compilador encontra a instrução.
Variavel++ = O compilador deixa para executar a instrução após a execução da linha onde se encontra.
Exemplos
while ( num < 10){
Idade = 35;
cont = ++num + 5; //valor de num é modificado antes da atribuição.
peso = 80.4;
altura = 1.87; 
}
while ( num < 10){
Idade = 35;
cont=num++ + 5; //valor de num é modificado após a atribuição.
peso = 80.4;
altura = 1.87; 
}
Comando de Repetição Repita
Em Portugol...
	Repita
		seqüência de comandos
	Enquanto condição
sintaxe:
23
Fluxograma
Comando de Repetição do - while
Na Linguagem C++...
do {
	comando;
} while (expressão);
sintaxe
O comando interno ao laço do é executado repetidamente enquanto a expressão for verdadeira (diferente de zero) . O comando é executado pelo menos uma vez. 
Comando Interno:
- Simples
- Bloco
- Nada
A expressão é avaliada no final do laço. 
Codeblocks
Faça o problema anterior, dessa vez usando o do... while.
Codeblocks
Faça o problema anterior, dessa vez usando o do... while.
int num ;
num != 10
cin >> num;
fim
inicialização
teste
atualização
sim
não
Comando de Repetição do - while
Na Linguagem C++...
int numero;
do {
	cout << “Digite um número”;
	cin >> numero;
} while (numero != 10) ; 
EXEMPLO
Como a condição é avaliada no final do laço, o bloco de comandos internos sempre será executado na primeira iteração do laço. A partir da segunda iteração, será executado enquanto a condição for verdadeira. 
Atenção!
Projeto E-guia
http://www.youtube.com/watch?v=_rcRZQkk6W4
do{
localizacao(onibus);
localizacao(usuario);
calculodistancia;
}while (distancia > 3);
cout << “seu ônibus chegou”;
Comando de Repetição Para
Em Portugol...
 Para var_controle de valor_inicial até valor_final passo valor_passo faça
 seqüência de comandos
 Fim para
sintaxe:
O número de repetições no loop (laço) está previamente determinado pelo valor inicial e pelo valor final da variável de controle.
31
Fluxograma
Comando de Repetição for
Na Linguagem C++...
for (inicialização; condição; incremento)
	comando; 
sintaxe
O conceito associado a um laço for da linguagem C++ é encontrado na grande maioria das linguagens procedurais. No entanto, em C++ essa construção é bem mais flexível. 
Comando:
- Simples
- Bloco
- Nada
Comando
Expressão
Comando
Passo a Passo de um laço for
Na Linguagem C++...
for (inicialização; condição; incremento)
		comando; 
sintaxe
Comando
Expressão
Comando
1 – O Comando de inicialização é executado
2 – Se expressão condição for falsa, o laço é finalizado
3 – O comando ou bloco de comandos internos é executado
4 – O comando incremento é executado
5 – Volta para o passo 2
PASSO A PASSO
Codeblocks
Faça um programa que conte de 0 a 9
Codeblocks
Faça um programa que conte de 0 a 9
i= 0; i < 10; i++
(inicialização; teste; atualização)
cout << i;
I
0
I
1
I
2
I
3
I
4
I
5
I
6
I
7
I
8
I
9
Memória(ao longo do tempo)
Comando de Repetição for
Na Linguagem C++...
//Nesse exemplo, a variável i vai assumir inicialmente
// valor 0, será incrementada com passo 1, até atingir
// o valor 10, quando a condição do laço não mais será
//verdadeira. Os valores de 0 a 9 são impressos.
int i; // Variável de Controle
for ( i = 0; i < 10; i = i + 1 ) {
	cout << i;
}
EXEMPLO
Comando de Repetição for
Na Linguagem C++...
// Nesse exemplo, as variáveis i e j são inicializadas juntas
// no comando de inicialização, utilizando o operador vírgula.
// As variáveis também podem ser incrementadas 
// no comando de incremento, usando o operador vírgula
int i, j;
for ( i = 0, j = 10; i < j; i = i+1, j = j-1 ) {
	cout << i;
}
EXEMPLO
38
Comando de Repetição for
Na Linguagem C++...
int i, j;
for (i = 0, j = 0; i < 10 && j < 10; i = i+1, j = j+1)
	cout << i << “ “ << j;
EXEMPLO
int i, j;
for ( i = 0; i < 10; i = i + 1) 
	for ( j = 0; j < 10; j = j + 1 )
		 cout << i << “ “ << j;
EXEMPLO
Utilizar duas variáveis de controle em um mesmo laço for NÃO tem o mesmo efeito que usar um for dentro do outro. 
Atenção!
39
Comando break
O comando break também pode ser utilizado para finalizar imediatamente um laço de repetição, independentemente do valor da sua condição de execução em um dado momento.
int i = 10;
while ( i > 0 ) {
	i = i – 1;
	cout << i;
	if ( i == 5 )
		break;
}
EXEMPLO
Quando a variável i tiver valor 5 e o comando break for executado, o laço while será imediatamente finalizado
Comando continue
O comando continue trabalha de forma um pouco parecida com o comando break. Porém, em vez de forçar o término, continue força que ocorra a próxima iteração do laço, pulando qualquer código intermediário.
int i;
for(i = 0; i < 10; i++){
 if(i == 5) continue;
 cout << i;
}
EXEMPLO
Para o laço for, continue faz com que o incremento e o teste condicional sejam executados. No exemplo, quando a variável i tiver valor 5 e o comando continue for executado, seu valor não será impresso.
Comando continue
O comando continue trabalha de forma um pouco parecida com o comando break. Porém, em vez de forçar a término, continue força que ocorra a próxima iteração do laço, pulando qualquer código intermediário.
int i = 0;
while (i < 10){
 if(i == 5) continue;
 cout << i;
 i++;
}
EXEMPLO
Para os laço while e do-while, continue faz com que o teste condicional seja executado. No exemplo, quando a variável i tiver valor 5 , ela não será mais incrementada, causando um laço infinito.
Objetivo da aula
Responder as seguintes perguntas:
Aula passada eu vi como escolher entre um determinado conjunto de instruções para executar, mas será que seria possível eu executar esse conjunto de instruções diversas vezes?
Eu sempre precisarei de uma condição para escolher entre um conjunto de instruções?
Exercício 1
Utilizando laços de repetição, faça um programa na linguagem C++ que imprima os 50 primeiros números inteiros pares positivos.
Exercício 2
Num frigorífico existem 90 bois. Cada boi traz preso no pescoço um cartão contendo seu número de identificação e seu peso. Fazer um programa na linguagem C++ que escreva o número e peso do boi mais gordo e do boi mais magro.
Exercício 3
Faça um programa na linguagem C++ que solicite ao usuário uma conjunto de números inteiros. A leitura de dados terminará quando for ingressado o número zero. Informar, ao término do programa, se dentre os números digitados pelo usuário está o número 100. 
Dica: Utilize o conceito de (flag)
Exercício 4
Suponha que no ano N a população americana seja maior que a brasileira. Sabendo-se que os Estados Unidos possuem um crescimento anual de 2% na sua população e que o Brasil tem crescimento anual de 4%, determinar o ano em que as duas populações serão iguais (em quantidade). São dados os números de habitantes dos Estados Unidos e do Brasil no ano N.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais