You are on page 1of 11

Fundamentos de Computacin y

Programacin

Universidad de Santiago de Chile

CLASE 5
ITERACIONES

EJERCICIO PROPUESTO
Se desea calcular la siguiente serie finita, para n = 100:

2 + 2
3 + 6
=1

Cmo escribiramos el algoritmo en lenguaje natural para


realizar esta operacin?
Cmo cambia el algoritmo si n fuese igual a:
5
100 ** 2
2 ** 35?
2

Fundamentos de Computacin y
Programacin

Universidad de Santiago de Chile

INTRODUCCIN
Hemos visto hasta el momento como definir y utilizar
variables, constantes y operadores para resolver
clculos complejos.
Muchas veces, esto implica repetir instrucciones que ya
fueron escritas anteriormente, pero que ahora hacen
clculos sobre distintos datos.
Una de las ventajas del computador es la posibilidad de
programarlo para realizar clculos repetitivos sin
necesidad de escribir instrucciones repetidas.
Para ello vamos a ver una de las formas de repetir
instrucciones, llamada iteracin.
3

OBJETIVOS
Conocer el funcionamiento bsico de la iteracin en
Python
Comprender la semntica y sintaxis de las sentencias
iterativas
Tomar conciencia de las tautologas dentro de
programas iterativos
Utilizar la iteracin para repetir un proceso n veces
Realizar trazas para predecir la salida del cdigo
Utilizar sentencias print para depurar el cdigo

Fundamentos de Computacin y
Programacin

Universidad de Santiago de Chile

SENTENCIAS ITERATIVAS
Flujo de una sentencia
iterativa (while)

FUNCIONES ITERATIVAS
Estructura de la sentencia while:
<Sentencias previas>
while <condicin>:
<sentencias a repetir>
<sentencias despus del ciclo>

Fundamentos de Computacin y
Programacin

Universidad de Santiago de Chile

SENTENCIAS ITERATIVAS
Una funcin iterativa tiene como base una condicin
que detiene la iteracin.
Supongamos que se quieren sumar los nmeros del 1
al 10
Alguna idea?

SENTENCIAS ITERATIVAS
Solucin uno: Escribir las sumas necesarias para
llegar al resultado:
suma = 1+2+3++10
print La suma de los primeros
10 nmeros es:, suma
Solucin dos: Utilizar una frmula:
n = 10
suma = n*(n+1)/2
print La suma de los primeros, n,
nmeros es:, suma
8

Fundamentos de Computacin y
Programacin

Universidad de Santiago de Chile

Ambas soluciones son correctas


Pero la primera es demasiado
engorrosa para nmeros grandes
Y la segunda requiere recordar la
frmula, lo cul no funcionar
para todos los casos!

SENTENCIAS ITERATIVAS
Tercera opcin: Escribir un programa iterativo:
# ENTRADA
numero = 10
# PROCESAMIENTO
i = 0

suma = 0
while i <= numero :
suma = suma + i
i = i + 1
# SALIDA
print "La suma de los primeros", numero,
print "nmeros, es: ", suma
10

Fundamentos de Computacin y
Programacin

Universidad de Santiago de Chile

SENTENCIAS ITERATIVAS
Analicemos el programa
# ENTRADA
numero = 10
# PROCESAMIENTO
i = 0
suma = 0
while i <= numero :
suma = suma + i
i = i + 1
# SALIDA
print "La suma de los primeros", numero,
print "nmeros, es: ", suma
11

SENTENCIAS ITERATIVAS
Analicemos el programa
# ENTRADA
numero = 10
# PROCESAMIENTO
i = 0

suma = 0
while i <= numero :

Condicin

suma = suma + i
i = i + 1
# SALIDA
print "La suma de los primeros", numero,
print "nmeros, es: ", suma
12

Fundamentos de Computacin y
Programacin

Universidad de Santiago de Chile

SENTENCIAS ITERATIVAS
Analicemos el programa
# ENTRADA
numero = 10
# PROCESAMIENTO
i = 0

NO DEBE SER
TAUTOLOGA

suma = 0
while i <= numero :

Condicin

suma = suma + i
i = i + 1
# SALIDA
print "La suma de los primeros", numero,
print "nmeros, es: ", suma
13

SENTENCIAS ITERATIVAS
Analicemos el programa
# ENTRADA
numero = 10
# PROCESAMIENTO
i = 0

suma = 0
while i <= numero :

La variable suma
almacena el resultado
parcial de cada iteracin

suma = suma + i

A este tipo de variables


se les llama
# SALIDA
acumuladores
print "La suma de los primeros", numero,
i = i + 1

print "nmeros, es: ", suma


14

Fundamentos de Computacin y
Programacin

Universidad de Santiago de Chile

SENTENCIAS ITERATIVAS
Analicemos el programa
# ENTRADA
numero = 10
# PROCESAMIENTO
i = 0
suma = 0
while i <= numero :

Se aumenta en 1 el valor
de i para que este se
vaya acercando al valor
de nmero en cada paso

suma = suma + i
i = i + 1
# SALIDA

print "La suma de los primeros", numero,


print "nmeros, es: ", suma

15

La variable i hace que el ciclo

avance
SENTENCIAS ITERATIVAS

Sin embargo, el aumento en 1 es

Analicemos el programapor el problema, habr casos donde


# ENTRADA

numero = 10

la variable deba incrementarse,


decrementarse o ir multiplicndose

# PROCESAMIENTO
i = 0

suma = 0
while i <= numero :
suma = suma + i
i = i + 1

Se aumenta en 1 el valor de i para


que este se vaya acercando al valor
de nmero en cada paso

# SALIDA

A estas variables se les llama


comnmente iteradores

print "La suma de los primeros", numero,


print "nmeros, es: ", suma

16

Fundamentos de Computacin y
Programacin

Universidad de Santiago de Chile

TRAZAS
Analicemos el programa, ahora con numero = 5
# ENTRADA
numero = 5

Inicio

numero

suma

10 15

# PROCESAMIENTO
i = 0
suma = 0

Iteracin

Variable\Valor

while i <= numero :

suma = suma + i
i = i + 1
# SALIDA
print "La suma de los primeros", numero,
print "nmeros, es: ", suma
17

TRAZAS
Analicemos el programa, ahora con numero = 5
# ENTRADA
numero = 5

Inicio

numero

suma

10 15

# PROCESAMIENTO
i = 0

suma = 0

Iteracin

Variable\Valor

while i <= numero :

suma = suma + i

Al proceso
de revisar manualmente el comportamiento del
i = i + 1
cdigo en base a las variables involucradas, se le conoce como
# SALIDA
realizar una traza del programa
print "La suma de los primeros", numero,
print "nmeros, es: ", suma

Y es una herramienta vital para entender que es lo que hace un


cdigo
18

Fundamentos de Computacin y
Programacin

Universidad de Santiago de Chile

CONSIDERACIONES
Qu pasa si colocamos una tautologa como
condicin?
i = 0
while i < 10:
print Mensaje Original

El mensaje Mensaje Original se


repetir por siempre
El programa no se detendr a menos que se lo
digamos
En estos casos, podemos interrumpir la ejecucin de
un programa con el comando ctrl+c
19

CONSIDERACIONES
Es comn cometer errores cuando se comienza a escribir
programas iterativos
A veces el problema est en que el cdigo se queda atrapado
en el ciclo while por una tautologa
Otras veces no hemos declarado las variables correctamente en
el cdigo
Y a veces las instrucciones pueden estar en un orden que no
permiten a Python ejecutarlas correctamente
Es por ello que debemos realizar trazas para verificar que el cdigo
funciona e ir corrigiendo los errores que vayamos encontrando
Al proceso de encontrar y corregir errores se le conoce como
depuracin o debug y podemos hacerlo utilizando trazas y
poniendo print en lugares especficos para ver si el programa
20
est ejecutando un conjunto de sentencias

10

Fundamentos de Computacin y
Programacin

Universidad de Santiago de Chile

CONSULTAS?

11

You might also like