Post on 07-Jul-2015
Aula #05Controle de fluxo: laço de repetição
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: ENQUANTO e FAÇA, ENQUANTO
● Para transformar dados em informações, um programa faz cálculos, manipula dados e toma decisões.
● Para repetir instruções por um número de vezes desconhecido, todas as linguagens de alto nível possuem as
instruções ‘ENQUANTO’ e ‘FAÇA, ENQUANTO’.
<script>
var numero = 1;
while (numero != 0) {
numero = prompt(‘Digite um número:’);
alert(numero);
}
alert(‘FIM.’);
</script>
No código acima, o programa pedirá um número ao usuário e o mostrará em seguida, enquanto o número digitado
for diferente de 0. A mensagem ‘FIM’ será mostrada ao fim.
Ramon Kayo - 2013/2014
Laço de repetição: ENQUANTO
● A instrução ENQUANTO possui:
○ Uma condição de execução - é o que define quando o laço deve continuar
○ Um bloco de instruções - é realizado a cada iteração
while (i != 0) {
alert(i);
alert(‘Você não digitou 0’);
i = prompt(‘Digite um número:’);
}
Instrução
Condição de execução
Bloco de Instruções
Aula #05 - Controle de fluxo: laço de repetição
Ramon Kayo - 2013/2014
Laço de repetição: Faça, Enquanto
● A instrução FAÇA, ENQUANTO possui:
○ Uma condição de execução - é o que define quando o laço deve continuar
○ Um bloco de instruções - é realizado antes da primeira iteração e a cada iteração
do {
i = prompt(‘Digite um número:’);
alert(i);
} while (i != 0)
Instrução
Condição de execução
Bloco de Instruções
Aula #05 - Controle de fluxo: laço de repetição
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Exercícios
1. Faça um programa que receba números do usuário até que ele digite ‘0’ e então calcule a média aritimética.
2. Faça um jogo onde um jogador digita um número e o outro deve tentar adivinhar. Enquanto o segundo jogador
não acertar o número, uma mensagem ‘Você errou!’ deve aparecer. Se o jogador acertar, uma mensagem
‘Você ganhou!’ deve aparecer.
3. Faça um jogo onde um jogador digita um número e o outro deve tentar adivinhar. Enquanto o segundo jogador
não acertar o número, uma mensagem ‘Você errou!’ deve aparecer e também uma dica dizendo se o número
secreto é maior ou menor do que o digitado. Se o jogador acertar, uma mensagem ‘Você ganhou!’ deve
aparecer.
4. Faça um jogo onde um jogador digita cinco números e o outro deve adivinhar a soma dos números ou três
deles. Enquanto o segundo jogador não acertar o número, uma mensagem ‘Você errou!’ deve aparecer. Se o
jogador acertar a soma ou três dos cinco números, uma mensagem ‘Você ganhou!’ deve aparecer.
5. Faça um jogo onde um jogador digita cinco números e o outro deve adivinhar a soma dos números ou três
deles. Enquanto o segundo jogador não acertar o número, uma mensagem ‘Você errou!’ deve aparecer. Se o
jogador acertar a soma ou três dos cinco números, uma mensagem ‘Você ganhou!’ deve aparecer. Se o usuário
errar mais de 10 vezes, o programa deve mostrar uma mensagem com a resposta e o texto ‘Fim. Você perdeu’,
e terminar sua execução.
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
● Para transformar dados em informações, um programa faz cálculos, manipula dados e toma decisões.
● Para repetir instruções por um número de vezes conhecido, todas as linguagens de alto nível possuem a
instrução ‘PARA’.
<script>
var numero = prompt(‘Digite o número para qual deseja ver a tabuada.’);
for (var i=1; i<=10; i++) {
alert(numero*i);
}
alert(‘FIM.’);
</script>
No código acima, se o usuário digitar ‘5’, por exemplo, o programa exibirá os números: 5, 10, 15, 20, 25, 30, 35, 40,
45, 50. A mensagem ‘FIM’ será mostrada ao fim.
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
● A instrução PARA possui:
○ Uma instrução de inicialização - acontece uma vez, antes das iterações
○ Uma condição de execução - é o que define quando o laço deve continuar
○ Uma instrução de pós-iteração - acontece ao final de cada iteração, após o bloco de instruções
○ Um bloco de instruções - é realizado a cada iteração
for (var i=0; i<10; i++) {
alert(‘Iteração:’);
alert(i);
alert(‘i aumentará ao final da repetição’);
}
Instrução
Condição de execuçãoInicialização Pós-iteração
Bloco de Instruções
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
for (var i=0; i<5; i++) {
alert(i);
}
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
for (var i=0; i<5; i++) {
alert(i);
}
1. Cria a variável ‘i’, com o valor ‘0’
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
for (var i=0; i<5; i++) {
alert(i);
}
1. Cria a variável ‘i’, com o valor ‘0’
2. Mostra ‘0’
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
for (var i=0; i<5; i++) {
alert(i);
}
1. Cria a variável ‘i’, com o valor ‘0’
2. Mostra ‘0’
3. Aumenta ‘i’ para 1
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
for (var i=0; i<5; i++) {
alert(i);
}
1. Cria a variável ‘i’, com o valor ‘0’
2. Mostra ‘0’
3. Aumenta ‘i’ para 1
4. Verifica se a condição de execução ainda é verdadeira (1 < 5 = verdadeiro)
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
for (var i=0; i<5; i++) {
alert(i);
}
1. Cria a variável ‘i’, com o valor ‘0’
2. Mostra ‘0’
3. Aumenta ‘i’ para 1
4. Verifica se a condição de execução ainda é verdadeira (1 < 5 = verdadeiro)
5. Mostra ‘1’
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
for (var i=0; i<5; i++) {
alert(i);
}
1. Cria a variável ‘i’, com o valor ‘0’
2. Mostra ‘0’
3. Aumenta ‘i’ para 1
4. Verifica se a condição de execução ainda é verdadeira (1 < 5 = verdadeiro)
5. Mostra ‘1’
6. Aumenta ‘i’ para 2
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
for (var i=0; i<5; i++) {
alert(i);
}
1. Cria a variável ‘i’, com o valor ‘0’
2. Mostra ‘0’
3. Aumenta ‘i’ para 1
4. Verifica se a condição de execução ainda é verdadeira (1 < 5 = verdadeiro)
5. Mostra ‘1’
6. Aumenta ‘i’ para 2
7. Verifica se a condição de execução ainda é verdadeira (2 < 5 = verdadeiro)
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
for (var i=0; i<5; i++) {
alert(i);
}
1. Cria a variável ‘i’, com o valor ‘0’
2. Mostra ‘0’
3. Aumenta ‘i’ para 1
4. Verifica se a condição de execução ainda é verdadeira (1 < 5 = verdadeiro)
5. Mostra ‘1’
6. Aumenta ‘i’ para 2
7. Verifica se a condição de execução ainda é verdadeira (2 < 5 = verdadeiro)
8. Mostra ‘2’
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
for (var i=0; i<5; i++) {
alert(i);
}
1. Cria a variável ‘i’, com o valor ‘0’
2. Mostra ‘0’
3. Aumenta ‘i’ para 1
4. Verifica se a condição de execução ainda é verdadeira (1 < 5 = verdadeiro)
5. Mostra ‘1’
6. Aumenta ‘i’ para 2
7. Verifica se a condição de execução ainda é verdadeira (2 < 5 = verdadeiro)
8. Mostra ‘2’
9. Aumenta ‘i’ para 3
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
for (var i=0; i<5; i++) {
alert(i);
}
1. Cria a variável ‘i’, com o valor ‘0’
2. Mostra ‘0’
3. Aumenta ‘i’ para 1
4. Verifica se a condição de execução ainda é verdadeira (1 < 5 = verdadeiro)
5. Mostra ‘1’
6. Aumenta ‘i’ para 2
7. Verifica se a condição de execução ainda é verdadeira (2 < 5 = verdadeiro)
8. Mostra ‘2’
9. Aumenta ‘i’ para 3
10. Verifica se a condição de execução ainda é verdadeira (3 < 5 = verdadeiro)
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
for (var i=0; i<5; i++) {
alert(i);
}
1. Cria a variável ‘i’, com o valor ‘0’
2. Mostra ‘0’
3. Aumenta ‘i’ para 1
4. Verifica se a condição de execução ainda é verdadeira (1 < 5 = verdadeiro)
5. Mostra ‘1’
6. Aumenta ‘i’ para 2
7. Verifica se a condição de execução ainda é verdadeira (2 < 5 = verdadeiro)
8. Mostra ‘2’
9. Aumenta ‘i’ para 3
10. Verifica se a condição de execução ainda é verdadeira (3 < 5 = verdadeiro)
11. Etc...
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: Para
for (var i=0; i<5; i++) {
alert(i);
}
1. Cria a variável ‘i’, com o valor ‘0’
2. Mostra ‘0’
3. Aumenta ‘i’ para 1
4. Verifica se a condição de execução ainda é verdadeira (1 < 5 = verdadeiro)
5. Mostra ‘1’
6. Aumenta ‘i’ para 2
7. Verifica se a condição de execução ainda é verdadeira (2 < 5 = verdadeiro)
8. Mostra ‘2’
9. Aumenta ‘i’ para 3
10. Verifica se a condição de execução ainda é verdadeira (3 < 5 = verdadeiro)
11. Etc...Qual é o último número
que será mostrado?
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Laço de repetição: QUEBRE
for (var i=0; i<5; i++) {
if (algoImportante) {
break; //sai do laço de repetição
}
}
while (true) {
if (algoImportante) {
break; //sai do laço de repetição
}
}
● Você pode parar um laço de repetição antes de sua condição falhar com a instrução QUEBRE.
6. Faça um algoritmo que dada uma entrada numérica do usuário, calcule a tabuada do número até 10.
7. Faça um algoritmo que dadas duas entrada numéricas do usuário, x e y, calcule a tabuada do x até y.
8. Faça um algoritmo que dada uma entrada numérica do usuário, mostre uma contagem regressiva até 0.
9. Faça um algoritmo capaz de calcular o fatorial de um número.
10. Sabendo que um tabuleiro de batalha naval possui colunas de 1 a 10 e linhas de 1 a 10, faça um algoritmo que
mostre todas as posições possíveis do tabuleiro, com exceção de 2-1, 2-2 e 2-3.
11. Faça um algoritmo que mostre todos os números ímpares, com exceção do 5, de 1 até o número que o usuário
determinar pela entrada.
12. Faça um programa que receba 10 valores do usuário e calcule a média aritimética dos valores, utilizando
somente 2 variáveis.
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Exercícios
Alguns exercícios e exemplos foram retirados do livro ‘Estudo de Algoritmos: Soluções em C++ 1a Edição’ de Custódio
T. K. Martins e Milton Rodrigues.
Aula #05 - Controle de fluxo: laço de repetição Ramon Kayo - 2013/2014
Créditos