Download Toma de Decisiones

Document related concepts

Iteración wikipedia , lookup

Búsqueda por franjas wikipedia , lookup

Búsqueda Binaria wikipedia , lookup

Logaritmo binario wikipedia , lookup

Desarrollo iterativo y creciente wikipedia , lookup

Transcript
Iteración
Elaborado por Mauricio Avilés
Iteración
• En programación siempre es necesario repetir
acciones para solucionar problemas
• La iteración es la forma más natural y común
para repetir acciones
• Alternativa a la recursividad
Estatutos de iteración en Python
• Estructuras de control para realizar acciones
de forma repetitiva
• Dependen de la evaluación de alguna
condición
• Ciclos, bucle o estructura repetitiva
– while
– for
Estatutos de iteración en Python
• A diferencia de la recursividad, Python no
tiene límite para repeticiones en un ciclo
• Si la condición de terminación del ciclo no se
cumple, el ciclo es infinito
• Es responsabilidad del programador
considerar que el ciclo debe terminar
while
• Repetir la ejecución de un bloque mientras
una condición sea verdadera
while expresion:
bloque1
Contar los elementos de una lista
• While
• Utilizar variable para guardar el valor
def contar(lista):
cont = 0
while lista != []:
lista = lista[1:]
cont += 1
return cont
for
• La cantidad de veces que se repite depende de un
iterable
• Un iterable es un objeto que puede retornar sus
elementos uno a la vez
• El iterable va tomando el valor de cada uno de los
elementos en la secuencia
• Strings, listas, tuplas, funciones especiales y otras
clases definidas por el usuario
for iterador in iterable:
bloque
Contar los elementos de una lista
• For
def contar2(lista):
cont = 0
for elemento in lista:
cont += 1
return cont
Diferencias
def contar(lista):
cont = 0
while lista != []:
lista = lista[1:]
cont += 1
return cont
def contar2(lista):
cont = 0
for elemento in lista:
cont += 1
return cont
Condición de terminación
Control automático
Se va eliminando el primer
elemento
El iterable toma el valor de
cada elemento
La lista termina como nula
No se modifica la lista
Factorial
• Calcular el factorial de un número mediante
iteración
n! = n * (n-1)!
0! = 1
Sumatoria
𝑛
𝑖 = (𝐴) + (𝐴 + 1) + (𝐴 + 2) + ⋯ + 𝑛
𝑖=𝐴
Problema: crear una función que retorne la
sumatoria desde A hasta un número entero
positivo n
Calcular con iteración
Obtener los elementos pares
• Hacer una función que recorra una lista de números
enteros y retorne una nueva lista con los números que
son pares
• Utilizar iteración
>>> unirpares([1, 2, 3, 4, 5, 6, 7])
[2, 4, 6]
>>> unirpares([2, 3, 5, 7, 11, 13, 17])
[2]
>>> unirpares([3, 5, 7, 9])
[]
Obtener el elemento mayor
• Hacer una función que recorra una lista de
números y retorne el mayor de ellos
• La lista no puede estar vacía
• Usar iteración
>>> mayor([1, 5, 7, 4, 2, 6, 3])
7
>>> mayor([2, 13, 5, 17, 11, 3, 7])
17
Determinar si un entero es primo
• Función que reciba un número entero y
retorne un valor booleano que indique si el
número es primo o no
• Entradas: n, número a analizar
• Salidas: True si es primo, False si no
• Restricciones: debe ser entero positivo
• Utilizar iteración
Multiplicar los elementos de una lista
• Multiplicar los elementos que se reciben como argumento
en una lista no nula
• Recorrer la lista e ir tomando el primer elemento para
multiplicarlo
• Utilizar iteración
>>> multi([3,4,5])
60
>>> multi([12, 3.5, 4.3])
180.6
>>> multi([])
'La lista no debe ser nula'
Comparación entre recursividad e iteración
Recursividad vs. Iteración
• Alternativas para resolver un problema
• Depende de la eficiencia, uso de recursos,
legibilidad del código y naturaleza del
algoritmo
• Ejemplo: contar los dígitos de un número
– Divisiones enteras sucesivas entre 10
Contar dígitos de un número, iterativo
Recursividad vs. Iteración