Buscar

Aula08_Estruturas de controle_para

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal da Grande Dourados
Faculdade de Ciências Exatas e de Tecnologias
Curso de Bacharelado em Sistemas de Informação
Algoritmos
Estruturas de controle: repetição (comando para...fim_para)
Profª Janne Oeiras Lachi
1
Plano de aula
` Estrutura de repetição:
` Com um número definido de repetições;
` Com um número indefinido de repetições.
Com um número definido de repetições
` Em Português estruturado usa os comandos:
para, de, até, passo, faça e fim_para
` Sintaxe do comando:
para <variável> de <valor inicial> até <valor final> passo <incremento> faça
<comando 1>
<comando 2>
...
<comando n>
fim_para
Exemplo 1: português estruturado
` Elaborar um algoritmo que receba como entrada um 
número inteiro qualquer, em seguida multiplique o valor 
de entrada por 3 e apresente o resultado. Realizar a 
execução dos passos anteriores cinco vezes.
Note que este problema pede para você realizar uma 
sequência de comandos (receber entrada, efetuar 
multiplicação, mostrar resultado) REPETIDAMENTE, 
exatamente CINCO vezes.
Exemplo 1: solução passo-a-passo
` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em 
seguida multiplique o valor de entrada por 3 e apresente o resultado. Realizar a 
execução dos passos anteriores cinco vezes.
programa MULT_3
início
fim
Corpo mínimo do algoritmo
Exemplo 1: solução passo-a-passo
` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em 
seguida multiplique o valor de entrada por 3 e apresente o resultado. Realizar a 
execução dos passos anteriores cinco vezes.
entrada
saída
programa MULT_3
início
fim
Qual a entrada e qual a saída para este 
problema?
Exemplo 1: solução passo-a-passo
` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em 
seguida multiplique o valor de entrada por 3 e apresente o resultado. Realizar a 
execução dos passos anteriores cinco vezes.
programa MULT_3
var
n, resultado: inteiro
início
fim
Vamos definir as variáveis para entrada e 
saída do problema
Exemplo 1: solução passo-a-passo
` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em 
seguida multiplique o valor de entrada por 3 e apresente o resultado. Realizar a 
execução dos passos anteriores cinco vezes.
programa MULT_3
var
n, resultado: inteiro
início
escreva “Informe um número inteiro:”
leia n
fim
Vamos ler os dados do problema
Exemplo 1: solução passo-a-passo
` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em 
seguida multiplique o valor de entrada por 3 e apresente o resultado. Realizar a 
execução dos passos anteriores cinco vezes.
programa MULT_3
var
n, resultado: inteiro
início
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
fim
Vamos calcular a multiplicação e 
escrever o resultado. Pronto! 
Resolvemos o problema para 1 vez.
Exemplo 1: solução passo-a-passo
` Com os conceitos que você aprendeu até então, você poderia prover a seguinte 
solução:
programa MULT_3
var
n, resultado: inteiro
início
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
fim
Note que os comandos se 
REPETEM cinco vezes. 
Mas e se o problema pedisse que 
fossem lidos 1.000.000 de valores 
de entrada?
O algoritmo seria muito grande.
Vejamos uma solução mais 
ENXUTA. 
Exemplo 1: solução passo-a-passo
` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em 
seguida multiplique o valor de entrada por 3 e apresente o resultado. Realizar a 
execução dos passos anteriores cinco vezes.
programa MULT_3
var
n, resultado: inteiro
início
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
fim
Uma dica é você pensar em resolver o 
problema para apenas 1 vez e depois 
incluir a repetição.
Exemplo 1: solução passo-a-passo
` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em 
seguida multiplique o valor de entrada por 3 e apresente o resultado. Realizar a 
execução dos passos anteriores cinco vezes.
programa MULT_3
var
n, resultado, I : inteiro
início
para I de 1 até 5 passo 1 faça
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
fim_para
fim
Incluindo a repetição por 5 vezes usando 
o comando para...fim_para
Exemplo 1: solução passo-a-passo
` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em 
seguida multiplique o valor de entrada por 3 e apresente o resultado. Realizar a 
execução dos passos anteriores cinco vezes.
programa MULT_3
var
n, resultado, I : inteiro
início
para I de 1 até 5 passo 1 faça
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
fim_para
fim
Neste tipo de repetição, SEMPRE teremos uma variável 
contadora de apoio (I), para nos ajudar a controlar quantas 
vezes os comandos dentro do laço devem ser repetidos.
Exemplo 1: solução passo-a-passo
` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em 
seguida multiplique o valor de entrada por 3 e apresente o resultado. Realizar a 
execução dos passos anteriores cinco vezes.
programa MULT_3
var
n, resultado, I : inteiro
início
para I de 1 até 5 passo 1 faça
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
fim_para
fim
Como queremos que o laço seja efetuado 5 vezes, 
definimos o intervalo de repetição entre 1 e 5
Exemplo 1: solução passo-a-passo
` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em 
seguida multiplique o valor de entrada por 3 e apresente o resultado. Realizar a 
execução dos passos anteriores cinco vezes.
Este tipo de laço sempre terá um INCREMENTO ou 
DECREMENTO na variável contadora que pode variar a cada 
problema. Neste caso, precisamos que a variável seja 
incrementada de 1 unidade a cada execução do laço
programa MULT_3
var
n, resultado, I : inteiro
início
para I de 1 até 5 passo 1 faça
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
fim_para
fim
Exemplo 1: solução passo-a-passo
` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em 
seguida multiplique o valor de entrada por 3 e apresente o resultado. Realizar a 
execução dos passos anteriores cinco vezes.
programa MULT_3
var
n, resultado, I : inteiro
início
para I de 1 até 5 faça
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
fim_para
fim
Observação: há livros que omitem o passo quando ele tem valor 1.
Exemplo 1: solução passo-a-passo
` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em 
seguida multiplique o valor de entrada por 3 e apresente o resultado. Realizar a 
execução dos passos anteriores cinco vezes.
Observação: há outros livros que fazem o incremento explicitamente 
antes do final do laço
programa MULT_3
var
n, resultado, I : inteiro
início
para I de 1 até 5 faça
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
I Å I + 1
fim_para
fim
Exemplo 1: executando a solução
1. programa MULT_3
2. var
3. n, resultado, I : inteiro
4. início
5. para I de 1 até 5 passo 1 faça
6. escreva “Informe um número inteiro:”
7. leia n
8. resultado Å n * 3
9. escreva resultado10. fim_para
11.fim
Note o recuo nas linhas 6,7,8 e 9 porque estão dentro 
do bloco do para...fim_para
Exemplo 1: executando a solução
Executando Variáveis
Nº da linha n resultado I Tela
5 1
6
7
8
9
5. para I de 1 até 5 passo 1 faça
Neste momento, a variável I recebe o valor 1 (o primeiro 
valor da faixa de valores estabelecido para o laço)
Exemplo 1: executando a solução
Executando Variáveis
Nº da linha n resultado I Tela
5 1
6 1 Informe um número inteiro:
7
8
9
6. escreva “Informe um número inteiro:”
Exemplo 1: executando a solução
Executando Variáveis
Nº da linha n resultado I Tela
5 1
6 1 Informe um número inteiro:
7 2 1
8
9
7. leia n
Exemplo 1: executando a solução
Executando Variáveis
Nº da linha n resultado I Tela
5 1
6 1 Informe um número inteiro:
7 2 1
8 2 6 1
9
8. resultadoÅ n * 3
Exemplo 1: executando a solução
Executando Variáveis
Nº da linha n resultado I Tela
5 1
6 1 Informe um número inteiro:
7 2 1
8 2 6 1
9 2 6 1 6
9. escreva resultado
Exemplo 1: executando a solução
Executando Variáveis
Nº da linha n resultado I Tela
5 1
6 1 Informe um número inteiro:
7 2 1
8 2 6 1
9 2 6 1 6
5 1 2
Após escrever o resultado, a variável I é incrementada
Exemplo 1: executando a solução
programa MULT_3
var
n, resultado, I : inteiro
início
para I de 1 até 5 passo 1 faça
escreva “Informe um número inteiro:”
leia n
resultado Å n * 3
escreva resultado
fim_para
fim
programa MULT_3
var
n, resultado, I : inteiro
início
para I de 1 até 5 faça
escreva “Informe um númer
leia n
resultado Å n * 3
escreva resultado
I Å I + 1
fim_para
fim
Após escrever o resultado, a variável I é incrementada
Exemplo 1: executando a solução
Executando Variáveis
Nº da linha n resultado I Tela
5 2 6 1 2
6
7
8
9
5. para I de 1 até 5 passo 1 faça
Na linha 5, a variável I terá seu valor testado para verificar se 
ainda está dentro da faixa de valores estabelecido para a 
repetição. Se não estiver, sai do laço de repetição (comando 
para...fim_para)
Exemplo 1: executando a solução
Executando Variáveis
Nº da linha n resultado I Tela
5 2 6 1 2
6
7
8
9
5. para I de 1 até 5 passo 1 faça
Agora, a variável I recebe o valor 2 (o segundo valor da faixa de 
valores estabelecido para o laço). Note que n continua com o 
último valor lido na memória (2) e resultado com o último 
resultado calculado até então (6).
Exemplo 1: executando a solução
Executando Variáveis
Nº da linha n resultado I Tela
5 2 6 2
6 2 6 2 Informe um número inteiro:
7
8
9
6. escreva “Informe um número inteiro:”
Exemplo 1: executando a solução
Executando Variáveis
Nº da linha n resultado I Tela
5 2 6 2
6 2 6 2 Informe um número inteiro:
7 2 4 6 2
8
9
7. leia n
Exemplo 1: executando a solução
Executando Variáveis
Nº da linha n resultado I Tela
5 2 6 2
6 2 6 2 Informe um número inteiro:
7 4 6 2
8 4 6 12 2
9
8. resultadoÅ n * 3
Exemplo 1: executando a solução
Executando Variáveis
Nº da linha n resultado I Tela
5 2 6 2
6 2 6 2 Informe um número inteiro:
7 4 6 2
8 4 12 2
9 4 12 2 12
9. escreva resultado
Exemplo 1: português estruturado
` A sequência de comandos de 5 a 9 vai se repetir por mais 
3 vezes, com I assumindo os valores 3, 4 e 5.
` O usuário vai poder entrar com mais 3 novos valores 
para a variável n e o triplo desse valor vai ser calculado e 
apresentado na tela.
Exemplo 1: executando a solução
Executando Variáveis
Nº da linha n resultado I Tela
5 5
6 5 Informe um número inteiro:
7 10 5
8 10 30 5
9 10 30 5 30
5 5 6
Após escrever o resultado, a variável I é incrementada
Exemplo 1: executando a solução
Executando Variáveis
Nº da linha n resultado I Tela
5 10 30 5 6
6
7
8
9
5. para I de 1 até 5 passo 1 faça
Na linha 5, a variável I terá seu valor testado para verificar se 
ainda está dentro da faixa de valores estabelecido para a 
repetição. Como o valor dela é 6, a execução deve SAIR do laço 
de repetição (comando para...fim_para)
Exemplo 2: português estruturado
` Leia 10 números e escreva a metade de cada um 
deles.
Note que este problema pede para você realizar uma 
sequência de comandos (receber entrada, escrever a 
metade) REPETIDAMENTE, exatamente 10 vezes.
Exemplo 2: solução passo-a-passo
` Leia 10 números e escreva a metade de cada um 
deles.
programa METADE
início
fim
Corpo mínimo do algoritmo
Exemplo 2: solução passo-a-passo
` Leia 10 números e escreva a metade de cada um 
deles.
programa METADE
início
fim
Qual a entrada e qual a saída para este 
problema?
Exemplo 2: solução passo-a-passo
` Leia 10 números e escreva a metade de cada um 
deles.
Programa METADE
var
n: real
início
fim
Vamos definir as variáveis para entrada e 
saída do problema
Exemplo 2: solução passo-a-passo
` Leia 10 números e escreva a metade de cada um 
deles.
programa METADE
var
n: real
início
escreva “Informe um número:”
leia n
fim
Vamos ler os dados do problema
Exemplo 2: solução passo-a-passo
` Leia 10 números e escreva a metade de cada um 
deles.
programa METADE
var
n: real
início
escreva “Informe um número:”
leia n
escreva “A metade é:”, n/2
fim
Vamos calcular a metade e apresentá-la 
para o usuário. Pronto! Resolvemos o 
problema para 1 vez.
Exemplo 2: solução passo-a-passo
` Leia 10 números e escreva a metade de cada um 
deles.
programa METADE
var
n: real
I: inteiro
início
para I de 1 até 10 passo 1 faça
escreva “Informe um número:”
leia n
escreva “A metade é:”, n/2
fim_para
fim
Incluindo a repetição com o comando 
para...fim_para. Note que precisamos declarar a 
variável I que é do tipo inteiro.
Exemplo 2: solução passo-a-passo
` Leia 10 números e escreva a metade de cada um 
deles.
programa METADE
var
n: real
I: inteiro
início
para I de 1 até 10 passo 1 faça
escreva “Informe um número:”
leia n
escreva “A metade é:”, n/2
fim_para
fim
Não esqueça de fazer a indentação dos comandos 
usados no algoritmo.
Exemplo 3
` Nos problemas anteriores, estava explícita a quantidade 
de vezes que os comandos deveriam ser repetidos (cinco 
vezes, dez vezes...)
` Vejamos outro tipo de problema:
` Escreva um algoritmo que receba como entrada um número 
inteiro n (n > 0) do usuário e imprima os números de 1 a n na 
tela.
` Nos problemas anteriores, tínhamos um número definido 
de repetições (cinco, dez) e, portanto, podíamos usar 
“força bruta” e incluir no algoritmo o mesmo trecho de 
programa repetidamente.
Exemplo 3
` Escreva um algoritmo que receba como entrada um 
número inteiro n (n > 0) do usuário e imprima os 
números de 1 a n na tela.
` Neste problema, não sabemos qual o valor de n porque o 
usuário ainda vai fornecê-lo.
` Como então podemos saber quantos trechos de comandos 
repetidos vamos ter que incluir no nosso algoritmo? Não é
possível usar força bruta.
` Lembre que se a nossa variável for do tipo inteiro, na 
Linguagem C os valores podem ir até o número 
2.147.483.647
Exemplo 3
` Escreva um algoritmo que receba como entrada um 
número inteiro n (n > 0) do usuário e imprima os 
números de 1 a n na tela.
` Ainda que o número n seja desconhecido porque o usuário é
quem vai informá-lo, uma vez que ele seja dado como entrada, a 
quantidade de repetições será finita, limitada a esse número n.
Exemplo 3: uma solução...
` Escreva um algoritmo que receba como entrada um número inteiro 
n (n > 0) do usuário e imprima os números de 1 a n na tela.
programa IMPRESSAO
var
N, I : inteiro
início
escreva“Informe um número inteiro maior que zero:”
leia N
para I de 1 até N passo 1 faça
escreva I
fim_para
fim
Note que o valor lido de N agora é o LIMITANTE da faixa de 
valores dentro do comando para..fim_para
Exemplo 3: uma solução...
` Escreva um algoritmo que receba como entrada um número inteiro 
n (n > 0) do usuário e imprima os números de 1 a n na tela.
programa IMPRESSAO
var
N, I : inteiro
início
escreva “Informe um número inteiro maior que zero:”
leia N
para I de 1 até N passo 1 faça
escreva I
fim_para
fim
Note que aproveitamos o valor guardado na variável I para 
poder imprimir os números de 1 até N.
Exemplo 4: em ordem descrescente
` Há outros problemas que pedem para imprimir ou calcular 
valores em ordem descrescente
` Apresente todos os números pares no intervalo de 600 a 1.
` Qual a entrada e qual a saída para este problema?
Exemplo 4: em ordem descrescente
Apresente todos os números pares no intervalo de 600 a 1.
` Qual a entrada e qual a saída para este problema?
` Não há entrada! O problema não pede para ler ou receber 
nada do usuário.
` Saída: todos os número pares entre 600 e 1
Exemplo 4: resolvendo o problema
Apresente todos os números pares no intervalo de 600 a 1.
` Pense na solução para imprimir o 1º número par
programa IMPRESSAO_PARES
início
escreva 600
fim
Exemplo 4: resolvendo o problema
Apresente todos os números pares no intervalo de 600 a 1.
` Pense na solução para imprimir o 2º número par
programa IMPRESSAO_PARES
início
escreva 600
escreva 598
fim
Exemplo 4: resolvendo o problema
Apresente todos os números pares no intervalo de 600 a 1.
` Pense na solução para imprimir o 3º número par
programa IMPRESSAO_PARES
início
escreva 600
escreva 598 
escreva 596
fim
Exemplo 4: resolvendo o problema
Apresente todos os números pares no intervalo de 600 a 1.
` Pense na solução para imprimir o ÚLTIMO número 
par
programa IMPRESSAO_PARES
início
escreva 600
escreva 598 
escreva 596
.
.
.
escreva 2
fim
Note que estamos decrementando de 
2 unidades a cada impressão de 
número.
Sabemos que o último número que 
deve ser impresso é o 2.
Exemplo 4: resolvendo o problema
Apresente todos os números pares no intervalo de 600 a 1.
` Incluindo repetição
programa IMPRESSAO_PARES
var
I : inteiro
início
para I de 600 até 2 passo 2 faça
escreva I
fim_para
fim
Nossa faixa de valores então deve ir de 600 até 2
Exemplo 4: resolvendo o problema
Apresente todos os números pares no intervalo de 600 a 1.
` Incluindo repetição
programa IMPRESSAO_PARES
var
I : inteiro
início
para I de 600 até 2 passo 2 faça
escreva I
fim_para
fim
Neste caso, como a nossa faixa de valores começa em um 
número maior que o final da faixa (600 até 2), o comando sabe 
que é para decrementar a quantidade estipulada no passo
Exemplo 4: resolvendo o problema
Apresente todos os números pares no intervalo de 600 a 1.
` Incluindo repetição
programa IMPRESSAO_PARES
var
I : inteiro
início
para I de 600 até 2 faça
escreva I
I Å I - 2
fim_para
fim
Em alguns livros você encontrará o decremento deste jeito
Repetição dentro de repetição
` Considerando a sintaxe do comando:
para <variável> de <valor inicial> até <valor final> passo <incremento> faça
<comando 1>
<comando 2>
...
<comando n>
fim_para
` Note que podemos ter qualquer comando dentro do 
para...fim_para, inclusive OUTRO para...fim_para
para dentro de para
` Considere o seguinte problema: 
` Um atleta está fazendo um treino e precisa fazer a seguinte 
sequência de exercícios:
` Três voltas na Lagoa Rodrigo de Freitas 
` A cada volta, ele deve parar e fazer cinco abdominais antes de 
prosseguir para a próxima volta.
para dentro de para
` A sequência de treino que o técnico quer escrever para o 
atleta realizar é: 1ª volta
1º abdominal
2º abdominal
3º abdominal
4º abdominal
5º abdominal
2ª volta
1º abdominal
2º abdominal
3º abdominal
4º abdominal
5º abdominal
3ª volta
1º abdominal
2º abdominal
3º abdominal
4º abdominal
5º abdominal
Exemplo 5: para dentro de para
` Podemos escrever o seguinte algoritmo para imprimir a 
sequência de treino
programa TREINO
var
volta,abdominal : inteiro
início
para volta de 1 até 3 passo 1 faça
escreva volta, “ª volta”
para abdominal de 1 até 5 passo 1 faça
escreva abdominal, “º abdominal”
fim_para
fim_para
fim
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1
6
7
8
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1
6 1 1ª volta
7
8
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1
6 1 1ª volta
7 1 1
8
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1
6 1 1ª volta
7 1 1
8 1 1 1° abdominal
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1
6 1 1ª volta
7 1 1
8 1 1 1° abdominal
7 1 1 2incrementa
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1
6 1 1ª volta
7 1 1
8 1 1 1° abdominal
7 1 1 2
7 1 2testa se está
na faixa
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1 4
6 1 4 5 1ª volta
7 1 5
8 1 5 5° abdominal
7 1 5 6incrementa
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1 4
6 1 4 5 1ª volta
7 1 5
8 1 5 5° abdominal
7 1 5 6
7 1 6
testa se está
dentro da 
faixa de 
valores do 
para
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal: inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1 4
6 1 4 5 1ª volta
7 1 5
8 1 5 5° abdominal
7 1 5 6
7 1 6
Aqui termina 
o 2º para 
que conta os 
abdominais
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1 2 6
6
7
8
7
7
Agora, 
vamos para 
a 2ª volta. 
Incrementa
mos o valor 
de volta
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1 2 6
6
7
8
7
7
Testa se o 
valor está na 
faixa do para 
que conta as 
voltas.
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1 2 6
6 2 6 2ª volta
7
8
7
7
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1 2 6
6 2 6 1 2ª volta
7 2 1
8
Atribui 1 
novamente a 
variável 
abdominal a 
fim de 
começar a 
contar os 
abdominais 
da 2ª volta.
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1 2 6
6 2 6 1 2ª volta
7 2 1
8 2 1 1º abdominal
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1 2 6
6 2 6 1 2ª volta
7 2 1
8 2 1 1º abdominal
7 2 1 2incrementa
Exemplo 5: para dentro de para
1. programa TREINO
2. var
3. volta,abdominal : inteiro
4. início
5. para volta de 1 até 3 passo 1 faça
6. escreva volta, “ª volta”
7. para abdominal de 1 até 5 passo 1 faça
8. escreva abdominal, “º abdominal”
9. fim_para
10. fim_para
11.fim
Executando Variáveis
Nº da linha volta abdominal Tela
5 1 2 6
6 2 6 1 2ª volta
7 2 1
8 2 1 1º abdominal
7 2 1 2
7 2 2
Testa se 
está na faixa
Exemplo 5: português estruturado
` A sequência de comandos nas linhas 7 a 8 vai se repetir até
que a variável abdominal assuma o valor 6. Quando isso 
acontecer, o 2º para termina.
` A variável volta será incrementada novamente, agora com 
o valor 3, que estará dentro da faixa de valores do 1º para. 
Assim, tudo é executado mais uma vez.
` Quando a variável volta for incrementada e assumir o 
valor 4, o teste no 1º para vai falhar e assim esse laço será
encerrado.
Observação
` É importante ressaltar que em todos os exemplos 
anteriores, a quantidade de repetições a serem efetuadas 
estavam:
` Ou explícitas no enunciado do problema (três, cinco, dez); 
` Ou seriam informadas pelo usuário (leitura da variável N).
` Veja este outro problema:
` Elaborar um algoritmo que receba como entrada um número 
inteiro qualquer, em seguida multiplique o valor de entrada 
por 3 e apresente o resultado. Ao final da apresentação do 
resultado o programa deve perguntar ao usuário se ele deseja 
novo cálculo.
Observação
` Elaborar um algoritmo que receba como entrada um 
número inteiro qualquer, em seguida multiplique o valor 
de entrada por 3 e apresente o resultado. Ao final da 
apresentação do resultado o programa deve perguntar ao 
usuário se ele deseja novo cálculo.
` Neste problema NÃO está definida a quantidade de 
repetições;
` Não será definido pelo usuário ANTECIPADAMENTE quantas 
vezes é para repetir;
` Somente conseguiremos resolver este problema com outra 
estrutura de repetição chamada ENQUANTO.
Referências
` Algoritmos – Fundamento e Prática. Everton Coimbra de 
Araújo. Florianópolis: Visual Book, 2007.
` Algoritmos - Lógica para desenvolvimento de programação de 
computadores. José Augusto N. G. Manzano, Jayr Figueiredo 
de Oliveira. São Paulo: Érica, 2006.
80
	Algoritmos
	Plano de aula
	Com um número definido de repetições
	Exemplo 1: português estruturado
	Exemplo 1: solução passo-a-passo
	Exemplo 1: solução passo-a-passo
	Exemplo 1: solução passo-a-passo
	Exemplo 1: solução passo-a-passo
	Exemplo 1: solução passo-a-passo
	Exemplo 1: solução passo-a-passo
	Exemplo 1: solução passo-a-passo
	Exemplo 1: solução passo-a-passo
	Exemplo 1: solução passo-a-passo
	Exemplo 1: solução passo-a-passo
	Exemplo 1: solução passo-a-passo
	Exemplo 1: solução passo-a-passo
	Exemplo 1: solução passo-a-passo
	Exemplo 1: executando a solução
	Exemplo 1: executando a solução
	Exemplo 1: executando a solução
	Exemplo 1: executando a solução
	Exemplo 1: executando a solução
	Exemplo 1: executando a solução
	Exemplo 1: executando a solução
	Exemplo 1: executando a solução
	Exemplo 1: executando a solução
	Exemplo 1: executando a solução
	Exemplo 1: executando a solução
	Exemplo 1: executando a solução
	Exemplo 1: executando a solução
	Exemplo 1: executando a solução
	Exemplo 1: português estruturado
	Exemplo 1: executando a solução
	Exemplo 1: executando a solução
	Exemplo 2: português estruturado
	Exemplo 2: solução passo-a-passo
	Exemplo 2: solução passo-a-passo
	Exemplo 2: solução passo-a-passo
	Exemplo 2: solução passo-a-passo
	Exemplo 2: solução passo-a-passo
	Exemplo 2: solução passo-a-passo
	Exemplo 2: solução passo-a-passo
	Exemplo 3
	Exemplo 3
	Exemplo 3
	Exemplo 3: uma solução...
	Exemplo 3: uma solução...
	Exemplo 4: em ordem descrescente
	Exemplo 4: em ordem descrescente
	Exemplo 4: resolvendo o problema
	Exemplo 4: resolvendo o problema
	Exemplo 4: resolvendo o problema
	Exemplo 4: resolvendo o problema
	Exemplo 4: resolvendo o problema
	Exemplo 4: resolvendo o problema
	Exemplo 4: resolvendo o problema
	Repetição dentro de repetição
	para dentro de para
	para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: para dentro de para
	Exemplo 5: português estruturado
	Observação
	Observação
	Referências

Outros materiais