Buscar

tema_6_-_repeticao

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

Introdução à Programação 1
IFRN/Campus Central de Natal/DIETINF
 Introdução à Programação
 Tema 6
Estrutura de repetição
segunda-feira, 27 de abril de 2009
Introdução à Programação 2
Conteúdo
 Estruturas de Repetição Condicional
 Estrutura de Repetição Contada
 Comparando as Estruturas de Repetição
 Encadeando as Estruturas de Repetição
 Encadeando Diversas Estruturas
 Um Algoritmo para Construir Algoritmos
segunda-feira, 27 de abril de 2009
Introdução à Programação 3
Contextualização
 Abrangência
 Apresentar os conceitos avançados relacionados a 
construção de algoritmos estruturados
 Importância
 Os conceitos ensinados permitem desenvolver algoritmos 
que repitam um conjunto de instruções
segunda-feira, 27 de abril de 2009
Introdução à Programação 4
Objetivos
 Introduzir as três estruturas de repetição que podem ser 
usadas em um algoritmo
 Enquanto/Faça
 Repita/Até
 Para/Faça
 Discutir a forma correta de encadear e indentar 
instruções
 Apresentar um algoritmo para construir algoritmos
segunda-feira, 27 de abril de 2009
Introdução à Programação 5
Iniciando . . .
segunda-feira, 27 de abril de 2009
Introdução à Programação 6
Estruturas de Repetição
Com o conhecimento 
adquirido até aqui, ainda não é 
possível fazer iterações!
segunda-feira, 27 de abril de 2009
Introdução à Programação 7
Estruturas de Repetição
Como escrever algoritmos
que façam iteração 
de instruções?
segunda-feira, 27 de abril de 2009
Introdução à Programação 8
Estruturas de Repetição
Usar Estruturas
de Repetição!
segunda-feira, 27 de abril de 2009
Introdução à Programação 9
 Existem situações que o processamento de um valor uma 
única vez não é suficiente para resolver o problema. 
 Quando isto ocorre, deve-se utilizar uma estrutura de 
repetição.
 Estruturas de repetição permitem que um ou mais 
instruções sejam executadas um número definido de 
vezes, ou enquanto uma determinada condição não é 
alcançada.
Estruturas de Repetição
segunda-feira, 27 de abril de 2009
Introdução à Programação 10
 As estruturas de repetição também são conhecidas como 
Laços ou Loops 
 As estruturas de repetição das l inguagens de 
programação são de dois tipos
 Condicional 
 Repetem até satisfazer a condição de repetição
 São usadas quando não se sabe previamente quantas vezes 
deve-se executar as instruções do bloco de repetição
 Contada
 Repetem um número contado (pré-definido) de vezes
 São usadas quando se sabe previamente quantas vezes 
deve-se executar as instruções do bloco de repetição
Estruturas de Repetição
segunda-feira, 27 de abril de 2009
Introdução à Programação 11
 As estruturas de repetição condicional podem executar 
seus testes:
 No Início
 Enquanto/Faça 
 No Fim
 Repita/Até
 As estruturas de repetição contada utilizam uma variável 
para controlar a quantidade de repetições
 Para/Faça
Estruturas de Repetição
segunda-feira, 27 de abril de 2009
Introdução à Programação 12
 Normalmente, a utilização de uma estrutura de repetição 
requer o uso de dois tipos de variáveis: 
 Contadora: é inicializada antes da estrutura de repetição e é 
incrementada no interior desta por um valor constante
 Acumuladora: é inicializada antes da estrutura de repetição 
e é incrementada no interior desta por um valor variável
Estruturas de Repetição Condicional
segunda-feira, 27 de abril de 2009
Introdução à Programação 13
 Semântica: 
 Faz o teste no início do laço. Se o 
resultado for V as instruções do 
laço e/são executadas. Volta-se 
para o início do laço e testa-se 
novamente a sua condição. Isto é 
repetido enquanto a condição 
testada for V.
Estruturas de Repetição Condicional
Executar 
outras instruções
V
F
Instruções
executadas 
para
expressão = V
Exp. Lógica
 Estrutura de repetição Enquanto/Faça
segunda-feira, 27 de abril de 2009
Introdução à Programação 14
 Exemplos:
Estruturas de Repetição Condicional
Algoritmo variávelContadora:
...
cont  0
<estrutura de repetição>
 ...
 cont  cont + 1
 ...
<fim estrutura de repetição>
...
Algoritmo variávelAcumuladora:
...
soma  0
<estrutura de repetição>
 ...
 soma  soma + X
 ...
<fim estrutura de repetição>
... 
constante Variável
segunda-feira, 27 de abril de 2009
Introdução à Programação 15
 Estrutura de repetição Enquanto/Faça
 Sintaxe:
Enquanto <expressão lógica> FAÇA
 <Instrução1>;
 . . .
 <InstruçãoN>;
Fim Enquanto;
Estruturas de Repetição Condicional
segunda-feira, 27 de abril de 2009
Introdução à Programação 16
Estruturas de Repetição Condicional
 Estrutura de repetição Enquanto/Faça
 Resumindo... 
 Não se sabe de antemão quantas vezes o bloco de 
repetição será executado. Isto é, ele pode ser executado 
várias vezes ou nenhuma vez
 Testa a condição antes de entrar na estrutura de repetição
 Repete a execução do bloco de instruções toda vez que 
condição for V
 O bloco de instruções A execução do bloco é finalizada 
quando a condição for F
segunda-feira, 27 de abril de 2009
Introdução à Programação 17
Algoritmo ExemploEnquantoFaça
Inteiro : x;
Início
Escreva(“Digite um valor”);
Leia (x);
Enquanto (x<>0) faça
Se (x > 0) Então 
Escreva (“X > 0”);
Senão
Escreva (“X < 0”);
Escreva(“Digite um valor”);
Leia (x);
Fim Enquanto;
Escreva (“X = 0”);
Fim.
Estruturas de Repetição Condicional
“Digite um valor”
Início
VF
Fim
x
x>0
“X < 0” “X > 0”
x<>0
V
“Digite um valor”
x
F
“X = 0”
segunda-feira, 27 de abril de 2009
Introdução à Programação 18
 Semântica: 
 Efetua um teste lógico no fim do laço, 
garantindo que pelo menos uma vez as 
instruções deste são executadas. Ao 
contrário do enquanto, esta só repete o 
laço se o resultado do teste for F.
Estruturas de Repetição Condicional
Executar 
outras instruções
F
Instruções 
executadas 
até 
expressão = V
Exp. Lógica
V
 Estrutura de repetição Repita/Até
segunda-feira, 27 de abril de 2009
Introdução à Programação 19
 Estrutura de repetição Repita/Até
 Sintaxe:
Repita
 <Comando1>;
 . . .
 <ComandoN>;
Até <expressão lógica>;
Estruturas de Repetição Condicional
segunda-feira, 27 de abril de 2009
Introdução à Programação 20
Estruturas de Repetição Condicional
 Estrutura de repetição Repita/Até
 Resumindo... 
 Não se sabe de antemão quantas vezes o bloco de 
repetição será executado. Todavia é garantido que ele será 
executado pelo menos uma vez
 Testa a condição depois de entrar na estrutura de repetição
 Repete a execução do bloco de instruções toda vez que a 
condição for F
 A execução do bloco é finalizada quando a condição for V
segunda-feira, 27 de abril de 2009
Introdução à Programação 21
Algoritmo ExemploRepitaAté
Inteiro : x;
Início
Repita
 Escreva(“Digite um valor”);
 Leia (x);
 Se (x > 0) Então 
Escreva (“X > 0”);
 Senão
Se (x < 0) Então 
Escreva (“X < 0”);
Até (x = 0);
Escreva (“X = 0”);
Fim.
Estruturas de Repetição Condicional
“Digite um valor”
Início
FV
Fim
x
x>0
“X > 0” “X < 0”
x=0
V
F
“X = 0”
X<0
V
F
segunda-feira, 27 de abril de 2009
Introdução à Programação 22
Estruturas de Repetição Condicional
Toda repetição condicional pode ser 
representada por uma estrutura do tipo 
Enquanto/Faça ou Repita/Até. Todavia, 
perceba que a primeira repete somente 
quando a condição é V e a segunda 
somente quando a condição é F. Por isso, 
a condição de uma é a negação da outra
Note I
segunda-feira, 27 de abril de 2009
Introdução à Programação 23
NoteII
Nos laços condicionais a variável que é 
testada, deve estar sempre associada a 
uma instrução que a atualize no interior 
do laço. Pois, se isto não ocorrer, o 
algoritmo ficará repetindo 
indefinidamente este laço, gerando uma 
situação conhecida como “laço/loop” 
infinito”
Estruturas de Repetição Condicional
segunda-feira, 27 de abril de 2009
Introdução à Programação 24
Estruturas de Repetição Condicional
Algoritmo ExemploEnquantoFaça_LoopInfinito
Inteiro : x;
Início
Escreva(“Digite um valor”);
Leia (x);
Enquanto (x<>0) faça
Se (x > 0) Então 
Escreva (“X > 0”);
Senão
Escreva (“X < 0”);
Escreva(“Digite um valor”);
{Leia (x); - sem este Leia(x), o laço repete infinitamente!} 
Fim Enquanto;
Escreva (“X = 0”);
Fim.
segunda-feira, 27 de abril de 2009
Introdução à Programação 25
 Estrutura de repetição Para/Faça
 Sintaxe:
PARA <varContador> de <Inicio> até <Fim>[, PASSO <N>] FAÇA
 <Instrução1>;
 . . .
 <InstruçãoN>;
 FIMPARA 
Estrutura de Repetição Contada
Atenção:
Passo 1 = opcional
Passo 2 = varContador + 2
Passo –1 = varContador – 1
segunda-feira, 27 de abril de 2009
Introdução à Programação 26
 Estrutura de repetição Para/Faça
Estrutura de Repetição Contada
 Semântica: 
 Repete as instruções enquanto a 
variável contador não atingir o 
valor final. Ressalta-se que a 
variável contador é previamente 
inicializada e incrementada ou 
decrementada de uma constante 
a cada repetição
Executar 
outras instruções)
V
F
Instruções 
executadas 
para
expressão = V
Incremento/
decremento
Inicialização
Início>=/<=fim
segunda-feira, 27 de abril de 2009
Introdução à Programação 27
Estrutura de Repetição Contada
 Estrutura de repetição Para/Faça
 Resumindo... 
 Sabe-se de antemão quantas vezes o bloco de repetição 
será executado. Isto é, repete enquanto o valor final não 
atingir o valor final da variável de controle
 Incrementa automaticamente a variável de controle cada 
vez que o bloco é executado (incremento 1 é o padrão)
 A variável de controle deve ser um número inteiro.
 A variável de controle não pode ser modificada dentro do 
bloco
segunda-feira, 27 de abril de 2009
Introdução à Programação 28
Algoritmo ExemploParaFaça
inteiro : x, i, contP;
Início
contP0;
Para i1 até 20 faça
Escreva(“Digite um valor”);
Leia (x);
Se (x > 0) Então 
contP  contP + 1;
Fim Para;
Escreva (“positivos = ”+contP);
Fim.
Estrutura de Repetição Contada
“Digite um valor”
Início
v
Fim
x
i<=20F
“positivos =”,cp
x>0
Cpcp+1
Cp0
I1
 ii+1
F
v
segunda-feira, 27 de abril de 2009
Introdução à Programação 29
Estrutura de Repetição Contada
Pode-se implementar um laço PARA 
com um laço CONDICIONAL, entretanto 
o controle do incremento/decremento da 
variável contadora é seu. 
O laço PARA faz isso implicitamente!
Atenção :
segunda-feira, 27 de abril de 2009
Introdução à Programação 30
Algoritmo ExemploParaFaçaComEnquanto
Var x, i, contP: inteiro
Início
contP0; i1;
Enquanto (i <= 20) faça
Escreva(“Digite um valor”);
Leia (x);
Se (x > 0) Então 
contP  contP + 1;
i  i+1; {Incremento explícito da variável contadora}
Fim Enquanto;
Escreva (“positivos = ”+contP);
Fim.
Estrutura de Repetição Contada
segunda-feira, 27 de abril de 2009
Introdução à Programação 31
Algoritmo ExemploParaFaçaComRepita
Var x, i, contP: inteiro
Início
contP0; i1;
Repita
Escreva(“Digite um valor”);
Leia (x);
Se (x > 0) Então 
contP  contP + 1;
i  i+1; {Incremento explícito da variável contadora}
Até (i > 20);
Escreva (“positivos = ”+contP);
Fim.
Estrutura de Repetição Contada
segunda-feira, 27 de abril de 2009
Introdução à Programação 32
Comparando as Estruturas de Repetição
 As Estruturas de Repetição são assim comparadas:
segunda-feira, 27 de abril de 2009
Introdução à Programação 33
Encadeando as Estruturas de Repetição
 Semelhante as estruturas de decisão composta, as 
estruturas de repetição também podem ser encadeadas/
aninhadas. 
 Esta abordagem é usada quando há a necessidade de se 
usar laços dentro de laços. 
 Por exemplo: fazer um algoritmo para gerar toda a tabuada 
de soma de 1 a 10.
segunda-feira, 27 de abril de 2009
Introdução à Programação 34
Encadeando as Estruturas de Repetição
Algoritmo TabuadaSoma
Var r, n1, n2: inteiro
Início
n1:=1;
Enquanto (n1<=10) faça
Para n2 1 até 10 faça
r  n1 + n2;
Escreva (n1,“ + ”,n2,“ = ”,r);
 Fim Para
 n1n1+1;
Fim Enquanto
Fim.
segunda-feira, 27 de abril de 2009
Introdução à Programação 35
Encadeando as Estruturas de Repetição
Também pode-se encadear
estruturas de repetição
com estruturas de decisão
segunda-feira, 27 de abril de 2009
Introdução à Programação 36
Encadeando Diversas Estruturas
Algoritmo TabuadaSomaComParidade
Var r, n1, n2: inteiro
Início
n1:=1;
Enquanto (n1<=10) faça
Para n2 1 até 10 faça
r  n1 + n2;
Se (r mod 2 = 0) 
 Escreva (n1,“ + ”,n2,“ = ”,r, “ = Par”);
Senão
 Escreva (n1,“ + ”,n2,“ = ”,r, “ = Impar”);
 Fim Para
 n1n1+1;
Fim Enquanto
Fim.
segunda-feira, 27 de abril de 2009
Introdução à Programação 37
Encadeando Diversas Estruturas
Cuidado com o 
encadeamento!
segunda-feira, 27 de abril de 2009
Introdução à Programação 38
Encadeando Diversas Estruturas
 Correto Errado
segunda-feira, 27 de abril de 2009
Introdução à Programação 39
Encadeando Diversas Estruturas - Indentação
Você sabe o que é 
INDENTAÇÃO?
segunda-feira, 27 de abril de 2009
Introdução à Programação 40
Indentação
=
Organização hierárquica das 
estruturas e suas instruções. 
Facilita visualizar o que está contido em que. 
Auxilia no entendimento do código 
e na busca de erros
Encadeando Diversas Estruturas - Indentação
segunda-feira, 27 de abril de 2009
Introdução à Programação 41
Um Algoritmo para Construir Algoritmos
 1) Ler atentamente a especificação do problema até 
compreende-lo 
 2) Ler novamente, anotando os pontos fundamentais 
 Variáveis, Constantes, Decisões, Repetições e Condições de Parada
 3) Escrever em português, da forma que desejar, a entrada, o 
processamento e a saída dos resultados desejados
 Ao fim deste passo, deverá ser possível visualizar todas as estruturas 
de decisão e repetição necessárias ao algoritmo final 
 4) Escrever o algoritmo em pseudo-código
 Importante: veja se variáveis foram inicializadas e se as expressões 
lógicas das estruturas de decisão e de repetição estão corretas
 5) Verifique a corretude do algoritmo
 Aplique a técnica de teste de mesa
segunda-feira, 27 de abril de 2009
Introdução à Programação 42
Atividade 1 - Faça um algoritmo que 
1) leia um número inteiro e positivo e escreva o numero 
inteiro que mais se aproxima da sua raiz quadrada
2) leia uma lista de números inteiros positivos e escreva a 
média aritmética de todos os números lidos que são 
pares. O algoritmo finaliza quando digitado zero, o qual 
deve ser excluindo para cálculo da média
3) leia um conjunto de 100 números inteiros positivos e 
escreva o maior e o menor deles
segunda-feira, 27 de abril de 2009
Introdução à Programação 43
Atividade 1 - Faça um algoritmo que
4) escreva quantos anos serão necessários para que 
Ciclano seja maior que Fulano. Considere que Fulano 
tem 1,50 m e cresce 2 cm por ano e Ciclano tem 1,10 m 
e cresce 3 cm por ano
5) leia um número inteiro e escreva se ele é primo
6) leia um número inteiro e positivo e escreva o seu fatorial 
Considere: N! = 1 x 2 x 3 x ... x N-1 x N e 0 ! = 1
segunda-feira, 27 de abril de 2009
Introdução à Programação 44
Atividade 1 - Faça um algoritmoque
7) leia um código de votação e escreva a ordem de 
classificação e o percentual de votos de cada candidato. 
Considere: a) F = fim da eleição; b) X,Y,Z = códigos dos 
candidatos; c) N = voto nulo e d) B = voto em branco
8) escreva os 10 primeiros termos da serie Fibonacci. Isto 
é: 1,1,2,3,5,8,13,21,34,55
segunda-feira, 27 de abril de 2009
Introdução à Programação 45
Atividade 1 - Faça um algoritmo que
9) leia o salário de 100 funcionários e escreva: a) quantos 
funcionários recebem mais de R$2.000,00; b) quanto a 
empresa gasta com estes funcionários e c) quanto a 
empresa gastaria se fosse dar um aumento de 7,5% aos 
funcionários que recebem menos que R$2.000,00
10) leia N e escreva H, onde: 
segunda-feira, 27 de abril de 2009
Introdução à Programação 46
IFRN/Campus Central de Natal/DIETINF
FIM
segunda-feira, 27 de abril de 2009
Introdução à Programação
 Adaptado dos slides do Professor Robson Fidalgo
47
segunda-feira, 27 de abril de 2009

Outros materiais