SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
Estructuras
Cíclicas II
Para
Jonatan Gomez Perdomo, Ph. D.
jgomezpe@unal.edu.co
Arles Rodríguez, Ph.D.
aerodriguezp@unal.edu.co
Camilo Cubides, Ph.D. (c)
eccubidesg@unal.edu.co
Carlos Andrés Sierra, M.Sc.
casierrav@unal.edu.co
Research Group on Articial Life
Grupo de investigación en vida artificial (Alife)
Computer and System Department
Engineering School
Universidad Nacional de Colombia
La estructura de control de ciclos para (for) Estructuras Cı́clicas II – 1 –
Agenda
1 La estructura de control de ciclos para (for)
2 Los ciclos para como versiones compactas de ciclos mientras
3 Los ciclos para (for) como iteradores de colecciones
4 La colección Rango (range)
5 Las colecciones range y los ciclos para (for)
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
La estructura de control de ciclos para (for) Estructuras Cı́clicas II – 2 –
La estructura de control de ciclos para (for)
Existe otra estructura cı́clica que es de uso frecuente en programación, el
ciclo para (for). Esta estructura de control tiene dos propositos
primordiales que no siempre son soportados por todo lenguaje de
programación:
1 Como una forma compacta de escribir un ciclo mientras (while).
2 Para iterar sobre los elementos de una colección de elementos.
Esta estructura es usualmente utilizada cuando se conocen los valores
inicial y final de la variable que es utilizada en la condición de parada.
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para como versiones compactas de ciclos mientras Estructuras Cı́clicas II – 3 –
Agenda
1 La estructura de control de ciclos para (for)
2 Los ciclos para como versiones compactas de ciclos mientras
3 Los ciclos para (for) como iteradores de colecciones
4 La colección Rango (range)
5 Las colecciones range y los ciclos para (for)
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para como versiones compactas de ciclos mientras Estructuras Cı́clicas II – 4 –
El ciclo para como versión del ciclo mientras I
En muchos lenguajes (lamentablemente en Python no es de esta manera),
el ciclo para (for) se usa para escribir de manera compacta un ciclo
mientras (while). Dada la representación gráfica mediante un diagrama
de flujo de un ciclo mientras (while), la cual es la siguiente.
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para como versiones compactas de ciclos mientras Estructuras Cı́clicas II – 5 –
El ciclo para como versión del ciclo mientras II
<bloque_prev>
<inicia>
<cond>
<bloque>
<actualiza>
<bloque_sigui>
V
F
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para como versiones compactas de ciclos mientras Estructuras Cı́clicas II – 6 –
El ciclo para como versión del ciclo mientras III
Y la sintaxis general de un ciclo mientras (while) en los lenguajes de
programación C++ o Java
<bloque_prev>
<inicia>
while(<cond>){
<bloque>
<actualiza>
}
<bloque_sigui>
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para como versiones compactas de ciclos mientras Estructuras Cı́clicas II – 7 –
El ciclo para como versión del ciclo mientras IV
Un esquema textual que en C++ o Java representa dicho ciclo mientras
(while) usando un ciclo para (for) es el que se da en el siguiente
fragmento de código.
<bloque_prev>
for(<inicia>; <cond>; <actualiza>){
<bloque>
}
<bloque_sigui>
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para como versiones compactas de ciclos mientras Estructuras Cı́clicas II – 8 –
El ciclo para como versión del ciclo mientras V
Ejemplo (La suma de los primeros n números naturales)
Las dos siguientes funciones en C++ o Java permiten calcular la suma de
los primeros n números naturales positivos, es decir, permiten calcular el
valor de la expresión
1 + 2 + 3 + · · · + (n − 1) + n, que abreviadamante se escribe como
n
X
i=1
i
int suma(int n){
int s = 0;
int i = 1;
while(i <= n){
s = s + i;
i++;
}
return s;
}
int suma(int n){
int s = 0;
for(int i = 1; i <= n; i++){
s = s + i;
}
return s;
}
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 9 –
Agenda
1 La estructura de control de ciclos para (for)
2 Los ciclos para como versiones compactas de ciclos mientras
3 Los ciclos para (for) como iteradores de colecciones
4 La colección Rango (range)
5 Las colecciones range y los ciclos para (for)
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 10 –
Ciclos para (for) como iteradores de colecciones I
Un ciclo para (for) puede ser usado (y en Python es su único uso) para
obtener uno a uno los elementos de una colección de elementos y poder
realizar con cada uno de ellos el mismo bloque de operaciones.
Un esquema textual que en Python representa dicho ciclo para (for) es el
que se da en el siguiente fragmento de código.
<bloque_prev>
for <elemento> in <coleccion>:
<bloque>
<bloque_sigui>
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 11 –
Ciclos para (for) como iteradores de colecciones II
en donde:
El fragmento <bloque_prev> es el bloque de instrucciones previas
que han sido ejecutadas antes del ciclo.
El fragmento <elemento> es la variable que se usa para ir recorriendo
(iterando) sobre los elementos de la colección (tomará como valor
cada uno de ellos en cada iteración).
El fragmento <coleccion> es la colección de elementos que será
recorrida (iterada) con el ciclo.
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 12 –
Ciclos para (for) como iteradores de colecciones III
El fragmento <bloque> es el bloque de instrucciones principal del
ciclo que se ejecuta con cada uno de los elementos de la colección.
El fragmento <bloque_sigui> es el bloque de instrucciones que se
ejecutan después de terminar de ejecutar el ciclo.
El ciclo para (for) se puede leer en castellano como: “Para cada elemento
en la colección realice las instrucciones en el <bloque>”.
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 13 –
Recorriendo una lista I
Ejemplo
Dada la lista† de frutas:
["Tomate de árbol", "Maracuyá ", "Guayaba"],
imprimir todos sus elementos.
Un programa que permite solucionar este problema es
frutas = ["Tomate de árbol", "Maracuyá ", "Guayaba"]
for f in frutas: # para cada elemento f
# en la lista de frutas
print(f)
†
Una lista es una colección de elementos que se puede definir en Python.
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 14 –
Recorriendo una lista II
Ejemplo (continuación)
El resultado de ejecutar este programa será entonces:
...
Tomate de árbol
Maracuyá
Guayaba
...
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 15 –
Forzando la detención del recorrido una lista I
Si se requiere detener el ciclo antes de iterar sobre toda la colección de
elementos se debe usar la sentencia break.
Ejemplo (Recorriendo una lista hasta encontrar un elemento especial)
Dada la lista de frutas
["Pera", "Maracuyá ", "Guayaba", "Lulo", "Granadilla"]
imprimir sus elementos hasta encontrar la fruta "Guayaba".
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 16 –
Forzando la detención del recorrido una lista II
Ejemplo (continuación) (Recorriendo una lista hasta encontrar un
elemento especial)
Un programa que permite solucionar este problema es
frutas = ["Pera", "Maracuyá ", "Guayaba", "Lulo",
"Granadilla"]
for f in frutas: # para cada elemento f
# en la lista de frutas
print(f)
if f == "Guayaba":
break
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 17 –
Forzando la detención del recorrido una lista III
Ejemplo (continuación)
El resultado de ejecutar este programa será entonces:
...
Pera
Maracuyá
Guayaba
...
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
La colección Rango (range) Estructuras Cı́clicas II – 18 –
Agenda
1 La estructura de control de ciclos para (for)
2 Los ciclos para como versiones compactas de ciclos mientras
3 Los ciclos para (for) como iteradores de colecciones
4 La colección Rango (range)
5 Las colecciones range y los ciclos para (for)
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
La colección Rango (range) Estructuras Cı́clicas II – 19 –
La colección Rango (range) I
Existen varias colecciones que se pueden iterar en Python, una de ellas es
la colección Rango (range). Una colección Rango (range) es una
colección de números en un intervalo (rango) semi-abierto, definido por
valor inicial (el lado cerrado del intervalo), un valor final (que no se incluye
en el rango, es decir el lado abierto del intervalo), y un valor de
incremento/decremento usado a partir del valor inicial para determinar que
valores quedan en el rango. Si no se da el valor de inicio, éste se fija en
cero (0) y si no se da valor de incremento/decremento, éste se fija en
uno (1).
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
La colección Rango (range) Estructuras Cı́clicas II – 20 –
La colección Rango (range) II
Las tres formas de crear un rango en Python se presentan a continuación:
range(N): La colección de enteros 0, 1, 2, . . . , N − 1, ésta es la
colección de enteros empezando en cero (0), y llegando
hasta N − 1 (no incluye N) incrementando de uno en uno. Si
N no es positivo genera el rango vacı́o.
range(C,F): La colección de enteros C, C + 1, C + 2, . . . , F − 1, ésta es
la colección de enteros empezando en C, y llegando hasta
F − 1 (no incluye F) incrementando de uno en uno. Si
F ≤ C genera el rango vacı́o.
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
La colección Rango (range) Estructuras Cı́clicas II – 21 –
La colección Rango (range) III
range(C,F,I): La colección de enteros C, C + I, C + 2I, . . . , C + kI,
hasta el k tal que C + (k + 1)I ≥ F si I > 0 o
C + (k + 1)I ≤ F si I < 0. Esta es la colección de enteros
empezando en C, y llegando hasta el más cercano C + kI a
F (no incluye F) incrementando/decrementando de I en I.
Dependiendo de los valores dados se puede generar el rango
vacı́o.
Nota
Tengan en cuenta que los valores C, F, I deben ser valores enteros, es
decir, C, F, I ∈ Z.
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
La colección Rango (range) Estructuras Cı́clicas II – 22 –
La colección Rango (range) IV
Ejemplos
El comando range(6) genera la secuencia [0, 1, 2, 3, 4, 5].
El comando range(10, 21) genera la secuencia
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20].
El comando range(-7, 8) genera la secuencia
[-7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7].
El comando range(2,11,2) genera la secuencia [2, 4, 6, 8, 10].
El comando range(11,20,2) genera la secuencia
[11, 13, 15, 17, 19].
El comando range(5,-1,-1) genera la secuencia
[5, 4, 3, 2, 1, 0].
El comando range(-2) genera la secuencia [ ].
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 23 –
Agenda
1 La estructura de control de ciclos para (for)
2 Los ciclos para como versiones compactas de ciclos mientras
3 Los ciclos para (for) como iteradores de colecciones
4 La colección Rango (range)
5 Las colecciones range y los ciclos para (for)
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 24 –
Las colecciones range y los ciclos para (for) I
Los rangos se combinan perfectamente con la instrucción para (for):
Se define una variable que se utilizará para recorrer cada número en el
rango. En castellano se podrı́a pensar como: “Para cada número i en el
rango dado”.
Esto se puede observar en los siguientes ejemplos:
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 25 –
Las colecciones range y los ciclos para (for) II
Ejemplo
El programa que se presenta a la izquierda permite imprimir de forma
creciente los números enteros desde −5 hasta 5, la salida de la ejecución
de este programa se muestra al lado derecho
for i in range(-5, 6, 1):
print(i)
...
-5
-4
-3
-2
-1
0
1
2
3
4
5
...
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 26 –
Las colecciones range y los ciclos para (for) III
Ejemplo
El programa que se presenta a la izquierda permite imprimir de forma
decreciente los números enteros desde 10 hasta 1, la salida de la ejecución
de este programa se muestra al lado derecho
for i in range(10, 0, -1):
print(i)
...
10
9
8
7
6
5
4
3
2
1
...
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 27 –
Las colecciones range y los ciclos para (for) IV
Ejemplo
El programa que se presenta a la izquierda permite imprimir de forma
creciente los múltiplos de 5 desde 0 hasta 50, la salida de la ejecución de
este programa se muestra al lado derecho
for i in range(0, 55, 5):
print(i)
...
0
5
10
15
20
25
30
35
40
45
50
...
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 28 –
Las colecciones range y los ciclos para (for) V
Ejemplo
El programa que se presenta a la izquierda permite imprimir de forma
creciente los números enteros desde 10 hasta 20, la salida de la ejecución
de este programa se muestra al lado derecho
for i in range(10, 21):
print(i)
...
10
11
12
13
14
15
16
17
18
19
20
...
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 29 –
Las colecciones range y los ciclos para (for) VI
Ejemplo
El programa que se presenta a la izquierda permite imprimir de forma
creciente los números enteros desde 0 hasta 10, la salida de la ejecución de
este programa se muestra al lado derecho
for i in range(11):
print(i)
...
0
1
2
3
4
5
6
7
8
9
10
...
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 30 –
La suma de los primeros n números naturales I
Ejemplo (La suma de los primeros n números naturales)
Dos funciones en Python, diferentes, que permiten calcular la suma de los
primeros n números naturales, es decir, permiten calcular la expresión
1 + 2 + 3 + · · · + (n − 1) + n, que abreviadamante se escribe como
n
X
i=1
i
def suma(n):
s = 0
i = 1
while(i <= n):
s += i
i += 1
return s
def suma(n):
s = 0
for i in range(1, n + 1):
s += i
return s
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 31 –
La suma de los primeros n números naturales II
Ejemplo (continuación) (La suma de los primeros n números naturales)
estas dos funciones son equivalentes, ya que ejecutan las mismas
modificaciones de las variables, pues se tiene que el fragmento de código:
<bloque_prev> corresponde a la instrucción
s = 0
<inicia> corresponde a la instrucción
i = 1
<cond> corresponde a la instrucción
i <= n
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 32 –
La suma de los primeros n números naturales III
Ejemplo (continuación) (La suma de los primeros n números naturales)
<bloque> corresponde a la instrucción
s += i
<actualiza> corresponde a la instrucción
i += 1
<bloque_sigui> corresponde a la instrucción
return s
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 33 –
La suma de los primeros n números naturales IV
Ejemplo (continuación) (La suma de los primeros n números naturales)
En la construcción de estas funciones aparecen dos variables que tienen
una connotación muy importante:
La variable i juega el rol de una variable contadora ya que ésta
permite llevar el conteo de cuantos ciclos se han efectuado.
La variable s juega el rol de una variable acumuladora pues en ésta se
acumula o almacena el valor parcial que se desea calcular utilizando el
ciclo.
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 34 –
La suma de los primeros n números naturales V
Ejemplo (continuación) (La suma de los primeros n números naturales)
La codificación en Python de una función que permite sumar los primeros
n números naturales positivos junto con su programa principal es
def suma(n):
s = 0
for i in range(1, n + 1):
s += i
return s
def main():
n = int(input("n? = "))
print("La suma de los primeros n números es:", end=" ")
print(suma(n))
main()
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 35 –
La suma de los primeros n números naturales VI
Ejemplo (continuación) (La suma de los primeros n números naturales)
Si se ejecuta el anterior programa y como entrada se ingresa el valor n = 6
(por ejemplo el número de caras de un dado + + + + + ), el
resultado que se obtiene es el siguiente
n? = 6
La suma de los primeros n números es: 21
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 36 –
La suma de los primeros n números naturales VII
Ejemplo (continuación) (La suma de los primeros n números naturales)
En general es fácil comprobar si el resultado que se obtiene utilizando la
función suma(n) es correcto, pues existe una fórmula muy sencilla para
calcular la suma de los primeros n números naturales positivos sin
necesidad de realizar la suma exhaustiva. Esta fórmula es
n
X
i=1
i =
n(n + 1)
2
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 37 –
Problemas varios I
Problemas
1 Imprimir un listado con los números del 1 al 100 cada uno con su
respectivo cuadrado.
2 Imprimir un listado con los números impares desde 1 hasta 999 y
seguidamente otro listado con los números pares desde 2 hasta 1000.
3 Imprimir los números pares en forma descendente hasta 2 que son
menores o iguales a un número natural n ≥ 2 dado.
4 Imprimir los números de 1 hasta un número natural n dado, cada uno
con su respectivo factorial.
5 Calcular el valor de 2 elevado a la potencia n.
6 Leer un número natural n, leer otro dato de tipo real x y calcular xn.
7 Diseñe un programa que muestre las tablas de multiplicar del 1 al 9.
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 38 –
Problemas varios II
Problemas
8 Diseñar una función que permita calcular una aproximación de la
función exponencial alrededor de 0 para cualquier valor x ∈ R,
utilizando los primeros n términos de la serie de Maclaurin
exp(x, n) ≈
n
X
i=0
xi
i!
.
9 Diseñar una función que permita calcular una aproximación de la
función seno alrededor de 0 para cualquier valor x ∈ R (x dado en
radianes), utilizando los primeros n términos de la serie de Maclaurin
sin(x, n) ≈
n
X
i=0
(−1)i x2i+1
(2i + 1)!
.
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 39 –
Problemas varios III
Problemas
10 Diseñar una función que permita calcular una aproximación de la
función coseno alrededor de 0 para cualquier valor x ∈ R (x dado en
radianes), utilizando los primeros n términos de la serie de Maclaurin
cos(x, n) ≈
n
X
i=0
(−1)i x2i
(2i)!
.
11 Diseñar una función que permita calcular una aproximación de la
función logaritmo natural alrededor de 0 para cualquier valor x ∈ R+,
utilizando los primeros n términos de la serie de Maclaurin
ln(x, n) ≈
n
X
i=0
1
2i + 1
x2 − 1
x2 + 1
!2i+1
.
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 40 –
Problemas varios III
Problemas
12 Diseñar una función que permita calcular una aproximación de la
función arco tangente para cualquier valor x ∈ [−1, 1], utilizando los
primeros n términos de la serie de Maclaurin (al evaluar esta función
el resultado que se obtiene está expresado en radianes)
arctan(x, n) ≈
n
X
i=0
(−1)i x2i+1
(2i + 1)
.
J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN

Más contenido relacionado

Similar a SEMANA 3 - PRESENTACION _10_CiclosPara.pdf

Similar a SEMANA 3 - PRESENTACION _10_CiclosPara.pdf (20)

mprogintc++.pdf
mprogintc++.pdfmprogintc++.pdf
mprogintc++.pdf
 
CURSO C ++ (1).pdf
CURSO C ++ (1).pdfCURSO C ++ (1).pdf
CURSO C ++ (1).pdf
 
CURSO C ++ (1).pdf
CURSO C ++ (1).pdfCURSO C ++ (1).pdf
CURSO C ++ (1).pdf
 
Lifo round robín informatica
Lifo round robín informatica Lifo round robín informatica
Lifo round robín informatica
 
Graficas especiales
Graficas especialesGraficas especiales
Graficas especiales
 
09 rendimiento cpu (1)
09 rendimiento cpu (1)09 rendimiento cpu (1)
09 rendimiento cpu (1)
 
Programación estructurada
Programación  estructuradaProgramación  estructurada
Programación estructurada
 
Proyecto final MODELADO DE ROBOTS UPC TABASCO
Proyecto final MODELADO DE ROBOTS UPC TABASCOProyecto final MODELADO DE ROBOTS UPC TABASCO
Proyecto final MODELADO DE ROBOTS UPC TABASCO
 
Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)
 
Prog estruct
Prog estructProg estruct
Prog estruct
 
Programación estructurada
Programación  estructuradaProgramación  estructurada
Programación estructurada
 
Rendimiento del CPU
Rendimiento del CPURendimiento del CPU
Rendimiento del CPU
 
SEMANA 3 -PRESENTACION _11_Cadenas.pdf
SEMANA 3 -PRESENTACION _11_Cadenas.pdfSEMANA 3 -PRESENTACION _11_Cadenas.pdf
SEMANA 3 -PRESENTACION _11_Cadenas.pdf
 
Fundamentos de programacion ss14
Fundamentos de programacion ss14Fundamentos de programacion ss14
Fundamentos de programacion ss14
 
2do parcial c
2do parcial c2do parcial c
2do parcial c
 
Recursividad y Cola (Estructura de Datos)
Recursividad y Cola (Estructura de Datos)Recursividad y Cola (Estructura de Datos)
Recursividad y Cola (Estructura de Datos)
 
Fundamentos de programacion ss14
Fundamentos de programacion ss14Fundamentos de programacion ss14
Fundamentos de programacion ss14
 
Fundamentos de programacion ss14
Fundamentos de programacion ss14Fundamentos de programacion ss14
Fundamentos de programacion ss14
 
So procesos-planif
So procesos-planifSo procesos-planif
So procesos-planif
 
Programación en C
Programación en CProgramación en C
Programación en C
 

Último

El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 

Último (20)

El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 

SEMANA 3 - PRESENTACION _10_CiclosPara.pdf

  • 1. Estructuras Cíclicas II Para Jonatan Gomez Perdomo, Ph. D. jgomezpe@unal.edu.co Arles Rodríguez, Ph.D. aerodriguezp@unal.edu.co Camilo Cubides, Ph.D. (c) eccubidesg@unal.edu.co Carlos Andrés Sierra, M.Sc. casierrav@unal.edu.co Research Group on Articial Life Grupo de investigación en vida artificial (Alife) Computer and System Department Engineering School Universidad Nacional de Colombia
  • 2. La estructura de control de ciclos para (for) Estructuras Cı́clicas II – 1 – Agenda 1 La estructura de control de ciclos para (for) 2 Los ciclos para como versiones compactas de ciclos mientras 3 Los ciclos para (for) como iteradores de colecciones 4 La colección Rango (range) 5 Las colecciones range y los ciclos para (for) J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 3. La estructura de control de ciclos para (for) Estructuras Cı́clicas II – 2 – La estructura de control de ciclos para (for) Existe otra estructura cı́clica que es de uso frecuente en programación, el ciclo para (for). Esta estructura de control tiene dos propositos primordiales que no siempre son soportados por todo lenguaje de programación: 1 Como una forma compacta de escribir un ciclo mientras (while). 2 Para iterar sobre los elementos de una colección de elementos. Esta estructura es usualmente utilizada cuando se conocen los valores inicial y final de la variable que es utilizada en la condición de parada. J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 4. Los ciclos para como versiones compactas de ciclos mientras Estructuras Cı́clicas II – 3 – Agenda 1 La estructura de control de ciclos para (for) 2 Los ciclos para como versiones compactas de ciclos mientras 3 Los ciclos para (for) como iteradores de colecciones 4 La colección Rango (range) 5 Las colecciones range y los ciclos para (for) J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 5. Los ciclos para como versiones compactas de ciclos mientras Estructuras Cı́clicas II – 4 – El ciclo para como versión del ciclo mientras I En muchos lenguajes (lamentablemente en Python no es de esta manera), el ciclo para (for) se usa para escribir de manera compacta un ciclo mientras (while). Dada la representación gráfica mediante un diagrama de flujo de un ciclo mientras (while), la cual es la siguiente. J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 6. Los ciclos para como versiones compactas de ciclos mientras Estructuras Cı́clicas II – 5 – El ciclo para como versión del ciclo mientras II <bloque_prev> <inicia> <cond> <bloque> <actualiza> <bloque_sigui> V F J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 7. Los ciclos para como versiones compactas de ciclos mientras Estructuras Cı́clicas II – 6 – El ciclo para como versión del ciclo mientras III Y la sintaxis general de un ciclo mientras (while) en los lenguajes de programación C++ o Java <bloque_prev> <inicia> while(<cond>){ <bloque> <actualiza> } <bloque_sigui> J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 8. Los ciclos para como versiones compactas de ciclos mientras Estructuras Cı́clicas II – 7 – El ciclo para como versión del ciclo mientras IV Un esquema textual que en C++ o Java representa dicho ciclo mientras (while) usando un ciclo para (for) es el que se da en el siguiente fragmento de código. <bloque_prev> for(<inicia>; <cond>; <actualiza>){ <bloque> } <bloque_sigui> J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 9. Los ciclos para como versiones compactas de ciclos mientras Estructuras Cı́clicas II – 8 – El ciclo para como versión del ciclo mientras V Ejemplo (La suma de los primeros n números naturales) Las dos siguientes funciones en C++ o Java permiten calcular la suma de los primeros n números naturales positivos, es decir, permiten calcular el valor de la expresión 1 + 2 + 3 + · · · + (n − 1) + n, que abreviadamante se escribe como n X i=1 i int suma(int n){ int s = 0; int i = 1; while(i <= n){ s = s + i; i++; } return s; } int suma(int n){ int s = 0; for(int i = 1; i <= n; i++){ s = s + i; } return s; } J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 10. Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 9 – Agenda 1 La estructura de control de ciclos para (for) 2 Los ciclos para como versiones compactas de ciclos mientras 3 Los ciclos para (for) como iteradores de colecciones 4 La colección Rango (range) 5 Las colecciones range y los ciclos para (for) J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 11. Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 10 – Ciclos para (for) como iteradores de colecciones I Un ciclo para (for) puede ser usado (y en Python es su único uso) para obtener uno a uno los elementos de una colección de elementos y poder realizar con cada uno de ellos el mismo bloque de operaciones. Un esquema textual que en Python representa dicho ciclo para (for) es el que se da en el siguiente fragmento de código. <bloque_prev> for <elemento> in <coleccion>: <bloque> <bloque_sigui> J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 12. Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 11 – Ciclos para (for) como iteradores de colecciones II en donde: El fragmento <bloque_prev> es el bloque de instrucciones previas que han sido ejecutadas antes del ciclo. El fragmento <elemento> es la variable que se usa para ir recorriendo (iterando) sobre los elementos de la colección (tomará como valor cada uno de ellos en cada iteración). El fragmento <coleccion> es la colección de elementos que será recorrida (iterada) con el ciclo. J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 13. Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 12 – Ciclos para (for) como iteradores de colecciones III El fragmento <bloque> es el bloque de instrucciones principal del ciclo que se ejecuta con cada uno de los elementos de la colección. El fragmento <bloque_sigui> es el bloque de instrucciones que se ejecutan después de terminar de ejecutar el ciclo. El ciclo para (for) se puede leer en castellano como: “Para cada elemento en la colección realice las instrucciones en el <bloque>”. J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 14. Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 13 – Recorriendo una lista I Ejemplo Dada la lista† de frutas: ["Tomate de árbol", "Maracuyá ", "Guayaba"], imprimir todos sus elementos. Un programa que permite solucionar este problema es frutas = ["Tomate de árbol", "Maracuyá ", "Guayaba"] for f in frutas: # para cada elemento f # en la lista de frutas print(f) † Una lista es una colección de elementos que se puede definir en Python. J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 15. Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 14 – Recorriendo una lista II Ejemplo (continuación) El resultado de ejecutar este programa será entonces: ... Tomate de árbol Maracuyá Guayaba ... J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 16. Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 15 – Forzando la detención del recorrido una lista I Si se requiere detener el ciclo antes de iterar sobre toda la colección de elementos se debe usar la sentencia break. Ejemplo (Recorriendo una lista hasta encontrar un elemento especial) Dada la lista de frutas ["Pera", "Maracuyá ", "Guayaba", "Lulo", "Granadilla"] imprimir sus elementos hasta encontrar la fruta "Guayaba". J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 17. Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 16 – Forzando la detención del recorrido una lista II Ejemplo (continuación) (Recorriendo una lista hasta encontrar un elemento especial) Un programa que permite solucionar este problema es frutas = ["Pera", "Maracuyá ", "Guayaba", "Lulo", "Granadilla"] for f in frutas: # para cada elemento f # en la lista de frutas print(f) if f == "Guayaba": break J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 18. Los ciclos para (for) como iteradores de colecciones Estructuras Cı́clicas II – 17 – Forzando la detención del recorrido una lista III Ejemplo (continuación) El resultado de ejecutar este programa será entonces: ... Pera Maracuyá Guayaba ... J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 19. La colección Rango (range) Estructuras Cı́clicas II – 18 – Agenda 1 La estructura de control de ciclos para (for) 2 Los ciclos para como versiones compactas de ciclos mientras 3 Los ciclos para (for) como iteradores de colecciones 4 La colección Rango (range) 5 Las colecciones range y los ciclos para (for) J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 20. La colección Rango (range) Estructuras Cı́clicas II – 19 – La colección Rango (range) I Existen varias colecciones que se pueden iterar en Python, una de ellas es la colección Rango (range). Una colección Rango (range) es una colección de números en un intervalo (rango) semi-abierto, definido por valor inicial (el lado cerrado del intervalo), un valor final (que no se incluye en el rango, es decir el lado abierto del intervalo), y un valor de incremento/decremento usado a partir del valor inicial para determinar que valores quedan en el rango. Si no se da el valor de inicio, éste se fija en cero (0) y si no se da valor de incremento/decremento, éste se fija en uno (1). J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 21. La colección Rango (range) Estructuras Cı́clicas II – 20 – La colección Rango (range) II Las tres formas de crear un rango en Python se presentan a continuación: range(N): La colección de enteros 0, 1, 2, . . . , N − 1, ésta es la colección de enteros empezando en cero (0), y llegando hasta N − 1 (no incluye N) incrementando de uno en uno. Si N no es positivo genera el rango vacı́o. range(C,F): La colección de enteros C, C + 1, C + 2, . . . , F − 1, ésta es la colección de enteros empezando en C, y llegando hasta F − 1 (no incluye F) incrementando de uno en uno. Si F ≤ C genera el rango vacı́o. J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 22. La colección Rango (range) Estructuras Cı́clicas II – 21 – La colección Rango (range) III range(C,F,I): La colección de enteros C, C + I, C + 2I, . . . , C + kI, hasta el k tal que C + (k + 1)I ≥ F si I > 0 o C + (k + 1)I ≤ F si I < 0. Esta es la colección de enteros empezando en C, y llegando hasta el más cercano C + kI a F (no incluye F) incrementando/decrementando de I en I. Dependiendo de los valores dados se puede generar el rango vacı́o. Nota Tengan en cuenta que los valores C, F, I deben ser valores enteros, es decir, C, F, I ∈ Z. J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 23. La colección Rango (range) Estructuras Cı́clicas II – 22 – La colección Rango (range) IV Ejemplos El comando range(6) genera la secuencia [0, 1, 2, 3, 4, 5]. El comando range(10, 21) genera la secuencia [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]. El comando range(-7, 8) genera la secuencia [-7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]. El comando range(2,11,2) genera la secuencia [2, 4, 6, 8, 10]. El comando range(11,20,2) genera la secuencia [11, 13, 15, 17, 19]. El comando range(5,-1,-1) genera la secuencia [5, 4, 3, 2, 1, 0]. El comando range(-2) genera la secuencia [ ]. J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 24. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 23 – Agenda 1 La estructura de control de ciclos para (for) 2 Los ciclos para como versiones compactas de ciclos mientras 3 Los ciclos para (for) como iteradores de colecciones 4 La colección Rango (range) 5 Las colecciones range y los ciclos para (for) J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 25. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 24 – Las colecciones range y los ciclos para (for) I Los rangos se combinan perfectamente con la instrucción para (for): Se define una variable que se utilizará para recorrer cada número en el rango. En castellano se podrı́a pensar como: “Para cada número i en el rango dado”. Esto se puede observar en los siguientes ejemplos: J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 26. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 25 – Las colecciones range y los ciclos para (for) II Ejemplo El programa que se presenta a la izquierda permite imprimir de forma creciente los números enteros desde −5 hasta 5, la salida de la ejecución de este programa se muestra al lado derecho for i in range(-5, 6, 1): print(i) ... -5 -4 -3 -2 -1 0 1 2 3 4 5 ... J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 27. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 26 – Las colecciones range y los ciclos para (for) III Ejemplo El programa que se presenta a la izquierda permite imprimir de forma decreciente los números enteros desde 10 hasta 1, la salida de la ejecución de este programa se muestra al lado derecho for i in range(10, 0, -1): print(i) ... 10 9 8 7 6 5 4 3 2 1 ... J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 28. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 27 – Las colecciones range y los ciclos para (for) IV Ejemplo El programa que se presenta a la izquierda permite imprimir de forma creciente los múltiplos de 5 desde 0 hasta 50, la salida de la ejecución de este programa se muestra al lado derecho for i in range(0, 55, 5): print(i) ... 0 5 10 15 20 25 30 35 40 45 50 ... J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 29. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 28 – Las colecciones range y los ciclos para (for) V Ejemplo El programa que se presenta a la izquierda permite imprimir de forma creciente los números enteros desde 10 hasta 20, la salida de la ejecución de este programa se muestra al lado derecho for i in range(10, 21): print(i) ... 10 11 12 13 14 15 16 17 18 19 20 ... J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 30. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 29 – Las colecciones range y los ciclos para (for) VI Ejemplo El programa que se presenta a la izquierda permite imprimir de forma creciente los números enteros desde 0 hasta 10, la salida de la ejecución de este programa se muestra al lado derecho for i in range(11): print(i) ... 0 1 2 3 4 5 6 7 8 9 10 ... J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 31. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 30 – La suma de los primeros n números naturales I Ejemplo (La suma de los primeros n números naturales) Dos funciones en Python, diferentes, que permiten calcular la suma de los primeros n números naturales, es decir, permiten calcular la expresión 1 + 2 + 3 + · · · + (n − 1) + n, que abreviadamante se escribe como n X i=1 i def suma(n): s = 0 i = 1 while(i <= n): s += i i += 1 return s def suma(n): s = 0 for i in range(1, n + 1): s += i return s J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 32. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 31 – La suma de los primeros n números naturales II Ejemplo (continuación) (La suma de los primeros n números naturales) estas dos funciones son equivalentes, ya que ejecutan las mismas modificaciones de las variables, pues se tiene que el fragmento de código: <bloque_prev> corresponde a la instrucción s = 0 <inicia> corresponde a la instrucción i = 1 <cond> corresponde a la instrucción i <= n J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 33. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 32 – La suma de los primeros n números naturales III Ejemplo (continuación) (La suma de los primeros n números naturales) <bloque> corresponde a la instrucción s += i <actualiza> corresponde a la instrucción i += 1 <bloque_sigui> corresponde a la instrucción return s J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 34. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 33 – La suma de los primeros n números naturales IV Ejemplo (continuación) (La suma de los primeros n números naturales) En la construcción de estas funciones aparecen dos variables que tienen una connotación muy importante: La variable i juega el rol de una variable contadora ya que ésta permite llevar el conteo de cuantos ciclos se han efectuado. La variable s juega el rol de una variable acumuladora pues en ésta se acumula o almacena el valor parcial que se desea calcular utilizando el ciclo. J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 35. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 34 – La suma de los primeros n números naturales V Ejemplo (continuación) (La suma de los primeros n números naturales) La codificación en Python de una función que permite sumar los primeros n números naturales positivos junto con su programa principal es def suma(n): s = 0 for i in range(1, n + 1): s += i return s def main(): n = int(input("n? = ")) print("La suma de los primeros n números es:", end=" ") print(suma(n)) main() J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 36. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 35 – La suma de los primeros n números naturales VI Ejemplo (continuación) (La suma de los primeros n números naturales) Si se ejecuta el anterior programa y como entrada se ingresa el valor n = 6 (por ejemplo el número de caras de un dado + + + + + ), el resultado que se obtiene es el siguiente n? = 6 La suma de los primeros n números es: 21 J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 37. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 36 – La suma de los primeros n números naturales VII Ejemplo (continuación) (La suma de los primeros n números naturales) En general es fácil comprobar si el resultado que se obtiene utilizando la función suma(n) es correcto, pues existe una fórmula muy sencilla para calcular la suma de los primeros n números naturales positivos sin necesidad de realizar la suma exhaustiva. Esta fórmula es n X i=1 i = n(n + 1) 2 J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 38. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 37 – Problemas varios I Problemas 1 Imprimir un listado con los números del 1 al 100 cada uno con su respectivo cuadrado. 2 Imprimir un listado con los números impares desde 1 hasta 999 y seguidamente otro listado con los números pares desde 2 hasta 1000. 3 Imprimir los números pares en forma descendente hasta 2 que son menores o iguales a un número natural n ≥ 2 dado. 4 Imprimir los números de 1 hasta un número natural n dado, cada uno con su respectivo factorial. 5 Calcular el valor de 2 elevado a la potencia n. 6 Leer un número natural n, leer otro dato de tipo real x y calcular xn. 7 Diseñe un programa que muestre las tablas de multiplicar del 1 al 9. J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 39. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 38 – Problemas varios II Problemas 8 Diseñar una función que permita calcular una aproximación de la función exponencial alrededor de 0 para cualquier valor x ∈ R, utilizando los primeros n términos de la serie de Maclaurin exp(x, n) ≈ n X i=0 xi i! . 9 Diseñar una función que permita calcular una aproximación de la función seno alrededor de 0 para cualquier valor x ∈ R (x dado en radianes), utilizando los primeros n términos de la serie de Maclaurin sin(x, n) ≈ n X i=0 (−1)i x2i+1 (2i + 1)! . J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 40. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 39 – Problemas varios III Problemas 10 Diseñar una función que permita calcular una aproximación de la función coseno alrededor de 0 para cualquier valor x ∈ R (x dado en radianes), utilizando los primeros n términos de la serie de Maclaurin cos(x, n) ≈ n X i=0 (−1)i x2i (2i)! . 11 Diseñar una función que permita calcular una aproximación de la función logaritmo natural alrededor de 0 para cualquier valor x ∈ R+, utilizando los primeros n términos de la serie de Maclaurin ln(x, n) ≈ n X i=0 1 2i + 1 x2 − 1 x2 + 1 !2i+1 . J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN
  • 41. Las colecciones range y los ciclos para (for) Estructuras Cı́clicas II – 40 – Problemas varios III Problemas 12 Diseñar una función que permita calcular una aproximación de la función arco tangente para cualquier valor x ∈ [−1, 1], utilizando los primeros n términos de la serie de Maclaurin (al evaluar esta función el resultado que se obtiene está expresado en radianes) arctan(x, n) ≈ n X i=0 (−1)i x2i+1 (2i + 1) . J. Gómez, A. Rodrı́guez, C. Cubides & C. Sierra Programación de Computadores – UN