Buscar

estruturas de repeti o

Prévia do material em texto

��PROGRAMAÇÃO I
Praça xi-Nova américa Prof. ANITA LOPES ��
 ESTRUTURAS DE REPETIÇÃO: PARA, ENQUANTO, REPETIR
Nossos algoritmos terão que ser executados mais de uma vez, e para que não tenhamos que reescrever trechos idênticos que aumentariam, consideravelmente o tamanho do algoritmo, faremos uso das estruturas de repetição.
São três as estruturas de repetição:
1ª- para
Usada quando o número de repetições for conhecido durante a elaboração do algoritmo ou quando puder ser fornecido o número de repetições durante a execução.
Ex: faça um algoritmo que possa entrar com 2 notas de 20 alunos e imprima a média de cada aluno.
	para( <valor inicial> ; <expressão de teste> ; <incremento>)
{
 bloco de comandos
}
 <valor inicial> <nome da variável> <- valor inicial ;
 - tipo da variável: enumerável (inteira ou caracter de um caracter)
 - no UAL: int
 - é um comando de atribuição. O valor atribuído pode ser: constante, variável ou
 expressão
 - exemplos: x <- 0; x <- strtam(pal); x <- a + 1;
<expressão de teste> <nome da variável> <( >, < , >= ou <=)> <valor> ;
 - na verdade é uma expressão relacional como as usadas na estrutura do se
 - o valor inicial pode ser: constante, variável ou expressão
 - exemplos: x >= 0; x < strtam(pal); x <= a + 1;
<incremento> <nome da variável> <- <nome da variável> < operador> <valor> 
 - é um comando de atribuição. O valor incrementado pode ser: constante, variável.
 ou expressão
 - este comando é normalmente chamado de acumulador, pois sempre acrescenta 
 um valor à mesma variável
 - exemplos: x <- x + 1 x <- x + 2 x ++ x-- x <- x * a
	
acumulador
	Expressão formada pelo comando de atribuição que acumula valores em uma variável
Exemplos:
 cont<- cont + x; soma o valor da variável x à cont e armazena em cont
 fat <- fat * x ; multiplica o valor de fat por x e armazena em fat
	
contador
	Expressão formada pelo comando de atribuição que acumula valores em uma variável
Normalmente chamamos de contador a um caso especial do acumulador onde o valor incrementado é uma constante. 
Exemplos:
 cont<- cont + 1; soma 1 à variável cont e armazena em cont
 cont<- cont - 1; decrementa 1 da variável cont e armazena em cont
Em algumas linguagens, temos disponível dois operadores: ++ e – que simplificarão a expressão de incremento ou decremento quando for igual a 1.
	Operador ++
	 c <- c + 1 ; equivale c ++;
	Operador --
	c <- c - 1 ; equivale c -;
Observações:
1) Esta estrutura é a própria expressão de uma PA, veja bem: 1 : 2 : 3 : 4 : 5 
 a1 = 1 an <= 5 r= 1 e n = (na - a1 + r) / r = 5
O número de vezes de repetição do bloco de comandos será igual ao NÚMERO DE TERMOS DA SÉRIE, portanto, não importa, na maioria das vezes os valores que a variável que controla a repetição assumirá.
A variável que controla a repetição deverá ser declarada e poderá ser impressa se precisarmos dela para numerar uma lista, posicionar, etc.
A variável que controla a repetição JAMAIS aparecerá num comando de leitura e, em algumas linguagens, em um comando de Atribuição.
Vejamos um exemplo:
 Faça um algoritmo que entre com 5 números e imprima o quadrado de cada número.
	prog exemplo
 int c;
 real num;
 para( c<- 1; c <= 5; c <- c + 1)
 { imprima "numero: ";
 leia num ;
 imprima num ^ 2;
 }
 imprima "\n";
fimprog
	MP
c num
1 2
2 4 
3 5 
4 8
5 12
 
	Saída
 
numero: 2
4
numero: 4
16
numero: 5
25
numero: 8
64
numero: 12
144
2ª- enquanto
Usada quando o número de repetições for desconhecido, sendo necessária uma chave (flag / teste) para interromper a repetição.
É uma estrutura que testa a condição no início, e só repete se a condição for verdadeira.
Simula, com facilidade a estrutura do faca ... enquanto( repetir ... ate que em algumas linguagens) e a estrutura do para desde que criemos uma variável que terá seu valor incrementado/decrementado dentro da estrutura de repetição. É a mais "poderosa" estrutura de repetição. 
A variável ou variáveis do teste deverão receber valores através de um comando de leitura ou de atribuição, antes da estrutura, e dentro da estrutura, na maioria das vezes, {como último comando antes da }
	
enquanto ( condição) 
{
 bloco de comandos
}
	
	"LEMA"
Um comando leia (ou de atribuição) antes do enquanto para entrar na repetição e um comando leia (ou de atribuição) antes da }, para sair da repetição.
 Na prática, usamos a estrutura do enquanto das seguintes maneiras:
	leia nome da variável presente na condição;
enquanto ( condição que inclui a variável do comando de leitura) 
{
 bloco de comandos
 leia nome da variável presente na condição;
}
ou
	nome da variável presente na condição <- valor;
enquanto ( condição que inclui a variável do comando de leitura) 
{
 bloco de comandos
 nome da variável presente na condição <- expressão que altera o valor;
}
3ª- faca .... enquanto
Estrutura usada quando o número de repetições for desconhecido.
Sua diferença em relação ao enquanto é que ela testa ao final, significando que ela executa o bloco de comandos pelo menos uma vez.
Essa estrutura também precisa de uma chave para interromper a repetição.
Muito usada em algoritmos com menus.
A estrutura da repetição é mais parecida com a estrutura do para, não precisando de leitura/atribuição antes do faca para entrar na estrutura, pois testa, como já disse, ao final.
	faca
{
 bloco de comandos
}
enquanto (condição)
 
	enquanto repete enquanto a condição for verdadeira, e faca ... enquanto repete enquanto a condição for verdadeira.
Observação: A condição é uma estrutura relacional ou lógica
BIBLIOGRAFIA
FARRER, Harry et al. Algoritmos estruturados. 3 ed. Rio de Janeiro: Guanabara, 2001.
GUIMARÃES, A. de M., LAJES, N. A. de C. Algoritmos e estrutura de dados. Rio de Janeiro: LTC, 1996.
LOPES, A, GARCIA, G. Introdução à programação - 500 algoritmos resolvidos. 1 ed. Rio de Janeiro: Érica, 2002.
MANZANO, J. A. N.G., OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de programação. 11 ed. São Paulo: Érica, 2001.
Estrutura do para [2, Seção 4.2] [3, Seção 4] [4, Seção 5.3] 
Estrutura do enquanto [3, Seção 4] [4, Seção 5.1]
Estrutura do faca ... enquanto [2, Seção 4.1] [3, Seção 4] [4, Seção 5.2]
estruturas de repetição PÁGINA:� PAGE �4�

Continue navegando