Professional Documents
Culture Documents
2016/2
Aula 06 Estruturas de Repetio por Contagem
Atualizao: 24/01/2017
Estruturas de repetio
por contagem
Problemas comuns
envolvendo vetores
Contedo
Estruturas de repetio
por contagem
Problemas comuns
envolvendo vetores
Estruturas de Programao
Qualquer programa de computador pode ser escrito
combinando-se os trs tipos bsicos de estruturas de
programao:
for in :
dois
pontos!
Devem estar
indentados em
relao ao for
1 P
y
2 t
3 h
o
n
Lao while for
while for
x = 1 for x in [1,2,3]:
while (x <= 3): print(x)
print(x)
x = x + 1
1 1
2 2
3 3
Quando usar while ou for?
while for
til quando no til quando temos de
sabemos quantas processar todos os
vezes vamos repetir o elementos de um
lao. vetor.
Exemplo: qual e Exemplo: qual a
onde est o primeiro mdia dos valores de
nmero negativo de um vetor?
um vetor?
Ateno
Embora permitidas pelo Python, as
seguintes prticas NO sero
estudadas, pois no so formas de
programao estruturada:
Comando else como
alternativa aos comandos
while e for.
Comando break.
Comando continue.
Funo range
A funo range cria uma sequncia de nmeros inteiros
para serem usados no lao for.
A funo range pode ser usada de trs maneiras:
Um argumento
Dois argumentos
Trs argumentos
Funo range
:: Um argumento
A sequncia:
Comea com zero for i in range(5):
(implcito) print(i)
range(0, 5) [0 1 2 3 4]
Contedo
Estruturas de repetio
por contagem
Problemas comuns
envolvendo vetores
Problema 1
:: Clculo da Mdia
As notas da turma em uma avaliao esto armazenadas
em um vetor.
Como calcular a mdia da turma?
Clculo da Mdia
[0] [1] [2] [3] [0] [1] [2] [3]
0 8 4 2 6 1 8 4 2 6
soma = 0 soma = 8
i=0
[0] [1] [2] [3] [0] [1] [2] [3]
2 8 4 2 6 ... 4 8 4 2 6
soma = 12 soma = 20
i= 1 i= 3
media = soma/size(v) Tamanho da turma
Clculo da Mdia
:: Script em Python lao for
from numpy import *
# Atribui valores a um vetor 'v'
v = array([8, 4, 2, 6])
# Calcula a soma
for i in range(size(v)):
soma = soma + v[i]
print(media)
Clculo da Mdia
:: Script em Python lao while
from numpy import *
# Atribui valores a um vetor 'v'
v = array([8, 4, 2, 6])
# Calcula a soma
while (i < size(v)):
soma = soma + v[i]
i = i + 1
print(media)
Problema 2
:: Inverso dos elementos de um vetor
Inverter um vetor, de
tamanho qualquer,
trocando o 1 elemento
com o ltimo, o 2 com o
penltimo, e assim
sucessivamente.
print(v)
Contagem de ocorrncias
Categorias Categorias
Por condio
nominais ordinais
Exemplos: Exemplo: Exemplo:
quantos elementos contar quantas contar o nmero de
so pares pessoas so de cada ocorrncias de cada
quantos elementos tipo sanguneo A, B, face de um dado.
so maiores, menores AB, O. O resultado guardado
ou iguais a N. O resultado guardado em um vetor de
O resultado guardado em um vetor de categorias.
em uma varivel categorias. Cada categoria
acumuladora simples. Cada categoria mapeada em um ndice
testada por uma do vetor de contagem.
condio if-elif.
Problema 3
:: Contar por condio
Leia um vetor de
nmeros inteiros.
Quantos nmeros pares
h no vetor?
Contar por condio
:: Projetar algoritmo 1/3
Dois contadores:
i: contador do lao for, que
percorre o vetor
npar: conta os nmeros pares
existentes no vetor
Contar por condio
:: Projetar algoritmo 3/3
for i in range(size(vet)):
if (vet[i] % 2 == 0):
npar = npar + 1 No lao for, o vetor vet
percorrido pelo ndice do
elemento
print(npar)
Contar por condio
:: Script em Python verso 2
from numpy import *
for x in vet:
if (x % 2 == 0):
npar = npar + 1 No lao for, o vetor vet
percorrido pelo valor do
elemento
print(npar)
Contar por condio
:: Variaes
Contar ou somar:
Elementos de valor par
ou mpar
Elementos em
posies pares ou
mpares do vetor
Nmeros menores,
maiores ou iguais a X
Problema 4
:: Contar por categorias nominais
Leia um vetor com os tipos sanguneos (A, B, O e AB) de N
pessoas.
Quantas pessoas tm cada tipo de sangue?
Contar por categorias nominais
:: Projetar algoritmo 1/2
0 1 2 3 4 5 6 7 8 ...
Vetor de A A AB B A B O O AB ...
eventos:
Tamanho
indefinido
face