23

Click here to load reader

Lógica de Programação com Javascript - Aula #05

Embed Size (px)

Citation preview

Page 1: Lógica de Programação com Javascript - Aula #05

Aula #05Controle de fluxo: laço de repetição

Page 2: Lógica de Programação com Javascript - Aula #05

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.

Page 3: Lógica de Programação com Javascript - Aula #05

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

Page 4: Lógica de Programação com Javascript - Aula #05

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

Page 5: Lógica de Programação com Javascript - Aula #05

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.

Page 6: Lógica de Programação com Javascript - Aula #05

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.

Page 7: Lógica de Programação com Javascript - Aula #05

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

Page 8: Lógica de Programação com Javascript - Aula #05

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);

}

Page 9: Lógica de Programação com Javascript - Aula #05

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’

Page 10: Lógica de Programação com Javascript - Aula #05

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’

Page 11: Lógica de Programação com Javascript - Aula #05

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

Page 12: Lógica de Programação com Javascript - Aula #05

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)

Page 13: Lógica de Programação com Javascript - Aula #05

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’

Page 14: Lógica de Programação com Javascript - Aula #05

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

Page 15: Lógica de Programação com Javascript - Aula #05

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)

Page 16: Lógica de Programação com Javascript - Aula #05

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’

Page 17: Lógica de Programação com Javascript - Aula #05

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

Page 18: Lógica de Programação com Javascript - Aula #05

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)

Page 19: Lógica de Programação com Javascript - Aula #05

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...

Page 20: Lógica de Programação com Javascript - Aula #05

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?

Page 21: Lógica de Programação com Javascript - Aula #05

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.

Page 22: Lógica de Programação com Javascript - Aula #05

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

Page 23: Lógica de Programação com Javascript - Aula #05

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