Buscar

06 - Estruturas de controle (for)

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Estruturas de Controle
Estrutura de Repetição for
Linguagem de Programação I - Cátia Khouri & Fábio Moura
1
Aspectos essenciais da repetição por contador
3/25/2009
Linguagem de Programação I - Estruturas de Controle
2
Uma variável de controle
O valor inicial da variável de controle
A condição que testa o valor final da variável de controle
O incremento (ou decremento) pelo qual a variável de controle é modificada cada vez em uma execução do laço
2
Exemplo: imprimir os números de 1 a 10
3/25/2009
Linguagem de Programação I - Estruturas de Controle
3
cont = 1			# valor inicial de cont
while cont <= 10:	# condição valor final
 print cont,
 cont += 1		# incremento = 1
3
Monitor
Executando...
3/25/2009
Linguagem de Programação I - Estruturas de Controle
4
	 cont = 1; 
	 while cont <=10: 
		 print cont, ‘ ’,
		 cont += 1
	 
 	
 
1
2
3
4
5
6
7
8
9
10
Memória
cont
1
2
3
4
5
6
7
8
9
10
11
Fim
F
4
Estrutura de repetição for
3/25/2009
Linguagem de Programação I - Estruturas de Controle
5
Em linguagens tradicionais, a instrução for é adequada para estrutura de repetição controlada por contador
Exemplos:
Em BASIC
FOR contador = inicio TO fim	 FOR C = 1 TO 10
	‘ Uma ou mais instruções	 PRINT “O quadrado de ”; C; “ eh ”; C * C
NEXT			 NEXT C
O quadrado de 1 eh 1
O quadrado de 2 eh 4
O quadrado de 3 eh 9
...
O quadrado de 9 eh 81
O quadrado de 10 eh 100
5
Estrutura de repetição for (cont.)
3/25/2009
Linguagem de Programação I - Estruturas de Controle
6
Exemplos (cont.)
Em C++
#include <iostream.h>
#include <stdio.h>
int main()
{
	for (int c = 1; c <= 10; c++)
	{
		 cout << “O quadrado de ” << c << “ eh ” << c * c << “\n”;
	}
	return 0;
}
6
Estrutura de repetição for (cont.)
3/25/2009
Linguagem de Programação I - Estruturas de Controle
7
Em Python, a instrução for funciona mais como um tipo de laço iterativo, onde cada elemento de uma seqüência é acessado uma vez
Exemplo:
for c in range(1,11):
	 print "O quadrado de ", c, " eh ", c*c
A função range retorna uma lista de valores em uma faixa
range(3)	 range(2,5)	 range(1,10,2)	range(6,1,-1)
[0, 1, 2]	 [2, 3, 4]	 [1, 3, 5, 7, 9]	[6, 5, 4, 3, 2]
A instrução for busca cada elemento desta lista, armazena em c e executa a seqüência de comandos
7
Outros exemplos...
3/25/2009
Linguagem de Programação I - Estruturas de Controle
8
print ‘Eu gosto de usar a Internet para:’
for item in ['e-mail', ‘navegar', ‘trabalho', 'chat']: 
 print item,
print
Eu gosto de usar a Internet para:
e-mail navegar trabalho chat
texto = "Hello World"
# Imprimindo os caracteres em 'texto'
for c in texto:
 print c
H
e
l
l
o
W
o
r
l
d
8
Estrutura de repetição for (em Python)
3/25/2009
Linguagem de Programação I - Estruturas de Controle
9
Fim da lista?
print cont,
True
for cont in range(1, 11):
	print cont,
cont = próximo elemento
print cont,
corpo do laço
corpo do laço
False
range(1,11) =
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
9
Laço for tradicional em C++
3/25/2009
Linguagem de Programação I - Estruturas de Controle
10
cout<< cont
cout<< cont
for (int cont = 1; cont <= 10; cont++)
	cout << cont << ´ `;
cont <= 10
false
cont++
cont = 1
true
cont = 1
cont++
cont <= 10
cout<< cont
cont++
cont <= 10
cout<< cont
cont++
cont <= 10
cout<< cont
cont++
cont <= 10
cout<< cont
cont++
cont <= 10
cout<< cont
cont++
cont <= 10
1
2
3
4
5
6
7
8
9
10
cout<< cont
cont++
cont <= 10
cout<< cont
cont++
cont <= 10
cout<< cont
cont++
cont <= 10
cout<< cont
cont++
cont <= 10
10
Laço for tradicional em C++
3/25/2009
Linguagem de Programação I - Estruturas de Controle
11
for(int cont = 1; cont <= 10; cont++)
	
	cout << cont << ´ `;
cont <= 10
cout<< cont
false
cont++
cont = 1
true
1
3
4
2
11
Exemplos de uso da estrutura for
3/25/2009
Linguagem de Programação I - Estruturas de Controle
12
Faça a variável de controle variar de 1 a 100 em incrementos de 1
	for i in range(1, 101):
Faça a variável de controle variar de 100 a 1 em incrementos de –1 (decrementos de 1)
	for i in range(100, 0, -1):
Faça a variável de controle variar de 7 a 77 em incrementos de 7
	for i in range(7, 78, 7):
12
Exemplos de uso da estrutura for
3/25/2009
Linguagem de Programação I - Estruturas de Controle
13
Calcular o somatório de todos os inteiros de 2 a 100
soma = 0
for num in range(2,101):
 soma += num
print "A soma eh", soma
13
Exemplos de uso da estrutura for
3/25/2009
Linguagem de Programação I - Estruturas de Controle
14
Calcular a média entre 10 notas
total = 0.0
for i in range(10):
 print "Forneca a nota", i+1, ":",
 nota = float(raw_input())
 total += nota
media = total/10
print "A media eh", media
14
Exemplos de uso da estrutura for
3/25/2009
Linguagem de Programação I - Estruturas de Controle
15
Uma pessoa investe R$ 1.000,00 em uma aplicação rendendo 5%, ao ano, de juros; assumindo que todo rendimento dos juros é deixado na conta, calcule e imprima a quantia na conta no fim de todo ano, por 10 anos
c = capital inicial
t = taxa anual de juros
n = número de anos
m = montante no ano n
15
3/25/2009
Linguagem de Programação I - Estruturas de Controle
16
c
t
n
m
1000,00
0,05
1
1050,00
1000,00
0,05
2
1102,50
1000,00
0,05
3
1157,63
1000,00
0,05
4
1215,51
...
...
...
...
1000,00
0,05
10
1628,89
16
Exemplos de uso da estrutura for
3/25/2009
Linguagem de Programação I - Estruturas de Controle
17
Uma pessoa investe R$ 1.000,00 em uma aplicação rendendo 5%, ao ano, de juros; assumindo que todo rendimento dos juros é deixado na conta, calcule e imprima a quantia na conta no fim de todo ano, por 10 anos
Estrutura de repetição
controlada por contador
17
Exemplos de uso da estrutura for
3/25/2009
Linguagem de Programação I - Estruturas de Controle
18
Refinamento
Inicializar variáveis
capital = 1000
taxa = 0.05
Fazer contador variar de 1 a 10
Calcular e imprimir a quantia em conta no final de cada ano
FIM
18
Exemplos de uso da estrutura for
3/25/2009
Linguagem de Programação I - Estruturas de Controle
19
1
2
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
A
n
o
Q
u
a
n
t
i
a
e
m
d
e
p
o
s
i
t
o
# Inicializando variáveis
capital = 1000.0
taxa = 0.05
# Imprimindo o cabeçalho da tabela
print "Ano Quantia em deposito"
19
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
A
n
o
Q
u
a
n
t
i
a
e
m
d
e
p
o
s
i
t
o
1
1
0
5
0
.
0
0
2
1
1
0
2
.
5
0
1
2
1
2
3
1
2
3
4
5
6
7
8
9
0
1
2
.
1
2
A
n
o
Q
u
a
n
t
i
a
e
m
d
e
p
o
s
i
t
o
1
1
0
5
0
.
0
0
Exemplos de uso da estrutura for
3/25/2009
Linguagem de Programação I - Estruturas de Controle
20
for ano in range(1,11):
 montante = capital * (1 + taxa) ** ano
 # Imprimindo valores formatados
 print "%2d %15.2f" % (ano, montante)
20
Caracteres para formatação de strings
3/25/2009
Linguagem de Programação I - Estruturas de Controle
21
Caractere
Formato de saída
d, i
Inteiro decimal ou longo
u
Inteiro sem sinal
f
Real de ponto flutuante como[-]m.dddddd
e
Ponto flutuantecomo[-]m.dddddde±xx
E
Ponto flutuante como[-]m.ddddddE±xx
s
String
c
Um único caractere
%
Caractereespecial %
21
Exemplos
3/25/2009
Linguagem de Programação I - Estruturas de Controle
22
Instrução
Saída
a = 42
b = 13.142783
c = “hello”
print ‘a eh %d’ % a
“aeh42”
print‘%10d %f’ % (a,b)
“ 42 13.142783”
print‘%+010d %E’ % (a,b)
“+000000042 1.314278E+01”
print‘%0.4s’ % c
“hell”
print'%0.3s' % c
“hel”
print‘%*.*f’% (5,3,b)
“13.143”
print‘%*.*f’ % (4, 2, b)
“13.14”
print‘%4.2f’ % b
“13.14”
22
Exercícios
3/25/2009
Linguagem de Programação I - Estruturas de Controle
23
Crie laços usando while e for
Escreva um laço que conte de 0 a 10 usando while
Faça o mesmo laço usando o for e a função range()
Escreva um programa para receber um texto como entrada e a seguir imprimir o texto um caractere por vez, implemente utilizando inicialmente a instrução for e em seguida a instrução while.
Crie uma lista com cinco números e imprima a soma dos valores. Então atualize o seu programa para que o conjunto de números seja fornecido pelo usuário. Implemente a sua solução duas vezes: uma usando while e outra usando for.
23
Exercícios (cont.)
3/25/2009
Linguagem de Programação I - Estruturas de Controle
24
Modifique o
programa do exercício anterior para que além de fornecer a soma, ele também forneça a média aritmética entre os números, com precisão de 2 dígitos.
Use raw_input() para pedir ao usuário por um valor entre 1 e 10. Se a entrada estiver correta, indicar através de uma mensagem e sair. Caso contrário, mostrar uma mensagem de erro e pedir ao usuário para entrar com o valor novamente até que a resposta esteja correta.
Peça ao usuário para entrar com três valores, armazene em três variáveis diferentes. Sem usar listas ou algoritmos de ordenação, ordene e imprima os valores do menor para o maior.
Como você poderia modificar o programa para que ele ordenasse do maior para o menor?
24

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais