Ciclos Python
Ciclos Python
Introduccin a la Programacin
semestre de 2012
Introduccin a la Programacin
Prctica 3 Ciclos
Versin del 28 de marzo de 2012
1.
Ciclos
Una de las cosas para las cuales suelen usarse las computadoras es para la automatizacin
de tareas repetitivas. Repetir tareas idnticas o similares sin cometer errores es algo que las
computadoras hacen muy bien y las personas no.
Este tipo de repeticin se llama
1.1.
while(mientras)
for(para).
while,
true
while
while
o
es el siguiente:
false.
sentencia.
3. Si la condicin es verdadera, ejecutar cada una de las sentencias que estn tabuladas a
continuacin.
A este tipo de ujos se los llama
1. Not que si la condicin es falsa la primera vez, las sentencias dentro del ciclo no se ejecutan
nunca. Las sentencias dentro del ciclo son usualmente llamadas el
El cuerpo del ciclo debe cambiar el valor de una o ms variables para que, eventualmente,
la condicin se haga falsa y el ciclo termine. Si no, el ciclo se repetir por siempre, lo cual es
conocido como un ciclo
innito.
En el caso de nuestra cuenta regresiva, podemos probar que el ciclo terminar ya que sabemos
que el valor de
Pgina 1 de 11
1er
Introduccin a la Programacin
semestre de 2012
n != 1,
falsa la condicin.
En cada iteracin, el programa imprime el valor de
par, el valor de
secuencia)
3n + 1.
Por ejemplo,
8, 4, 2, 1.
Como
alcance alguna vez 1, o de que el programa vaya a terminar. Para algunos valores particulares de
n,
podemos probar que termina. Por ejemplo, si el valor inicial es una potencia de dos, entonces
el valor de
ser par cada vez que pase por el ciclo hasta llegar a valer 1. El ejemplo anterior
todo
refutarlo!
1.2.
La funcin range()
Esta funcin de Python nos da un rango de valores y es ideal para iterar con la sentencia
for
range(0, 10, 1)
representa el rango que incluye a los valores: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9.
range(4, 12, 2)
representa el rango que incluye a los valores: 4, 6, 8 y 10.
range(5)
representa el rango que incluye a los valores: 0, 1, 2, 3 y 4.
range(-2, 2)
representa el rango que incluye a los valores: -2, -1, 0 y 1.
En caso de que usemos un PASO negativo, el rango ser decreciente, es decir, de mayor a
menor.
Ejemplo:
range(10, 1, -1)
representa el rango que incluye a los valores: 10, 9, 8, 7, 6, 5, 4, 3 y 2.
Pgina 2 de 11
1er
Introduccin a la Programacin
1.3.
semestre de 2012
Los ciclos que hemos escrito hasta ahora tienen una cierta cantidad de elementos en comn.
Todos ellos comienzan inicializando una variable; tienen una condicin, o test, que depende de
esa variable; y dentro del ciclo hacen algo con esa variable, como incrementarla.
Otra forma de escribir ciclos de forma ms concisa es utilizando la sentencia
for
(para).
for:
for i in range(1,101):
print(i)
esto se lee: Para i desde 1 hasta 101, mostrar i.
los valores del rango. Estos valores se le van asignando automticamente en cada iteracin.
Como cualquier otra sentencia
con una sentencia
for.
1.4.
while.
Sin em-
en cada iteracin.
Acumuladores
Los acumuladores son variables que suelen utilizarse en los ciclos para ir guardando el resultado parcial de algn clculo.
Por ejemplo, si quisieramos hacer un programa que calcule la suma de los primeros
naturales, podramos hacerlo de la siguiente manera con una sentencia
for:
n nmeros
suma
2.
suma acumula
de acumulador
i.
Cadenas
Hasta ahora hemos dicho que las cadenas sirven para guardar texto en variables. Cualquier
cosa que escribamos entre comillas es una cadena. Algo que no dijimos es que las cadenas estn
hechas de piezas ms pequeas: los caracteres. Un caracter es simplemente una letra o smbolo.
Pgina 3 de 11
1er
Introduccin a la Programacin
2.1.
semestre de 2012
Longitud
La funcin
len
fruta = "banana"
longitud = len(fruta)
print(longitud)
Esto muestra un 6.
2.2.
Recorrido
Algo comn para hacer con una cadena es comenzar desde el principio, seleccionar cada
caracter por vez, hacer algo con l, y continuar hasta el n. Este patrn de procesamiento se
llama
recorrido. Una forma natural de codicar un recorrido es mediante una sentencia for:
char
Pgina 4 de 11
1er
Introduccin a la Programacin
semestre de 2012
Notas preliminares
Los ejercicios marcados con el smbolo
resto.
Ejercicio 1 F
a) Hacer un programa que muestre, mediante un ciclo, los primeros 5 nmeros naturales
(1, 2, 3, 4
5).
primeros
nmeros naturales
(1, 2, , n).
Ejercicio 2 F
a) Hacer un programa que muestre, mediante un ciclo, los nmeros desde el 4 hasta el
7
(4, 5, 6
7).
m y un n y luego
n (m, m + 1, m + 2, , n 1, n). Qu pasa
es menor que
m?
Ejercicio 3 F
a) Hacer un programa que muestre, mediante un ciclo, los 5 nmeros naturales que le
siguen al 10
c)
Ejercicio 4 F
a) Hacer un programa que muestre, mediante un ciclo, los nmeros desde el 5 hasta el
11 salteando de a 2 elementos
(5, 7, 9
11)
n,
y un
y luego
2, 5, 8, 11, 14.
c) Hacer un programa que permita al usuario elegir un nmero
luego muestre todos los naturales entre
n,
n,
pero salteando de a
un
y un
nmeros. Por
2, 6, 10, 14.
Pgina 5 de 11
1er
Introduccin a la Programacin
semestre de 2012
Ejercicio 5 F
a) Hacer un programa que muestre, mediante un ciclo, los nmeros desde el 8 hasta el
3
(8, 7, 6, 5, 4, 3).
Ejercicio 6 F
a) Hacer un programa que muestre, mediante un ciclo, los nmeros desde el 15 hasta
el 6 pero salteando de a tres
Ejercicio 7 F
Hacer todos los ejercicios anteriores de nuevo, pero esta vez utilizando la sentencia
lugar de
while en
Ejercicio 8
a) Hacer un programa que reciba un nmero
menores a
n.
20,
el programa mostrar: 1 2 4 8
while o for.
n. Por ejemplo,
1 2 3 4
decir, 1 2 3 4 .
potencias de
256.
Es
si el usuario ingresa
Ejercicio 9
a) Hacer un programa que permita al usuario elegir un nmero positivo
muestre en pantalla todos los divisores de
y luego
y luego
divisores de
c y n y luego
n.
y luego
n.
n.
y luego
n.
n.
n.
Pgina 6 de 11
c y n y luego
1er
Introduccin a la Programacin
semestre de 2012
Ejercicio 10
a) Hacer un programa que permita al usuario elegir un nmero positivo
muestre en pantalla los
an = 2n.
y luego
Es decir
2, 4,
6...
b) Idem anterior para la sucesin
c) Idem anterior para la sucesin
d) Idem anterior para la sucesin
e) Idem anterior para la sucesin
an
an
an
an
= 2n 1.
= n2 .
= n3 n2 .
= n12 .
Ejercicio 11
n y luego
muestre en pantalla las n primeras sumas parciales de la sucesin an = 2n. Es decir,
2 6 12 20...
2
Idem anterior para la sucesin an = n .
3
2
Idem anterior para la sucesin an = n n .
1
Idem anterior para la sucesin an = 2 .
n
b)
c)
d)
Ejercicio 12
n y luego
n primeras sumas parciales de la sucesin an = 2n. Es decir,
2 6 12 20...
b) Idem anterior para la sucesin
c) Idem anterior para la sucesin
d) Idem anterior para la sucesin
an = n2 .
an = n3 n2 .
an = n12 .
n?
Ejercicio 13 F
El logaritmo natural de
2 (ln 2)
ln 2 = 1
1 1 1 1
+ + ...
2 3 4 5
Escribir un programa que le pregunte al usuario la cantidad de trminos a sumar y que muestre
la aproximacin de
ln 2
a) A partir de cuntos trminos el valor alcanzado est a menos de 0.1 del valor que
da la calculadora?
b) A partir de cuntos trminos el valor alcanzado est a menos de 0.01 del valor que
da la calculadora?
c) Modicar el programa para que en lugar de pedir la cantidad de trminos a sumar,
pida al usuario un nmero decimal
Pgina 7 de 11
||
1er
Introduccin a la Programacin
semestre de 2012
Ejercicio 14 F
El nmero
1
1 1 1 1
1
1
1
=1 + +
+
4
3 5 7 9 11 13 15
Escribir un programa que le pregunte al usuario la cantidad de trminos a sumar y que muestre
la aproximacin de
a) A partir de cuntos trminos el valor alcanzado est a menos de 0.1 del valor que
da la calculadora?
b) A partir de cuntos trminos el valor alcanzado est a menos de 0.01 del valor que
da la calculadora?
c) Modicar el programa para que en lugar de pedir la cantidad de trminos a sumar,
pida al usuario un nmero decimal
||
Ejercicio 15 F
Escribir un programa que solicite al usuario un nmero positivo y aproxime el valor del nmero
1
1
1
1
1
1
1
+ + + + + +
0! 1! 2! 3! 4! 5! 6!
a) A partir de cuntos trminos el valor alcanzado est a menos de 0.1 del valor que
da la calculadora?
b) A partir de cuntos trminos el valor alcanzado est a menos de 0.01 del valor que
da la calculadora?
c) Modicar el programa para que en lugar de pedir la cantidad de trminos a sumar,
pida al usuario un nmero decimal
||
Ejercicio 16
Hacer un programa que permita al usuario elegir un nmero positivo
pantalla el producto (es decir, la multiplicacin) de los numeros entre
n y
n.
luego muestre en
Ejercicio 17
Hacer un programa que reciba un nmero m y determine el primer n para el cual la suma
1+2+...+n > m. Por ejemplo, si el usuario ingresa 11 se deber retornar 5 ya que 1+2+3+4 =
10 < 11 y 1 + 2 + 3 + 4 + 5 = 15 > 11
Pgina 8 de 11
1er
Introduccin a la Programacin
semestre de 2012
Ejercicio 18
m y un n y muestre
(m, n)(m + 1, n 1)(m + 2, n 2) . . . (n
ingresa 5 y 10, 5 ser el complementario de
5 10
6 9
7 8
8 7
9 6
10 5
b) dem anterior pero deber frenarse cuando el lado izquierdo pase a ser ms grande
que el derecho.
Ejercicio 19 F
a) Escribir un programa que permita al usuario elegir un nmero
y un
y muestre
todos los pares de numeros que se pueden formar con los nmeros que estn entre
ellos. Por ej. si el usuario ingresara 4 y 6, el programa deber mostrar
4
4
4
5
5
5
6
6
6
4
5
6
4
5
6
4
5
6
Ejercicio 20
a) Escribir un programa que permita al usuario elegir un nmero
y un
y muestre
todos los pares de numeros que se pueden formar con los nmeros que estn entre
ellos, pero esta vez que lo haga sin repetir inversos. Por ej. si el usuario ingresara 4
y 6, el programa deber mostrar
4
4
4
5
5
6
4
5
6
5
6
6
Pgina 9 de 11
1er
Introduccin a la Programacin
semestre de 2012
Ejercicio 21 F
Hacer un programa que permita al usuario jugar al piedra, papel o tijera contra la computadora. Se debe jugar al mejor de 5, es decir, si uno de los participantes consigue 3 victorias el
juego termina.
Parte 2 Cadenas
Ejercicio 22 F
a) Escribir un programa que pida al usuario un nmero
asteriscos. Ejemplo, para
n = 8,
********
n y muestre n lneas de
n = 5, el programa deber
1, 2, 3, ...n
mostrar:
*
**
***
****
*****
c) Escribir un programa que pida al usuario un nmero
asteriscos respectivamente. Ejemplo, para
n = 5,
n y muestre n lneas de 2n 1
*
***
*****
*******
*********
Ejercicio 23 F
a) Sabiendo que la pantalla de la consola tiene 80 caracteres de ancho, hacer una
programa que, dada una palabra, la escriba en el centro de la pantalla.
b) Hacer una programa que, dada una palabra, la escriba pegada a la derecha de la
pantalla.
Ejercicio 24 F
Hacer una programa que, dada una palabra, la escriba recuadrada por asteriscos. Por ejemplo,
si la palabra es "Ganaste", el programa debera escribir:
***********
* Ganaste *
***********
Pgina 10 de 11
1er
Introduccin a la Programacin
semestre de 2012
Ejercicio 25
Hacer un programa que dada una palabra y una letra, imprima la cantidad de apariciones de
esa letra.
Ejercicio 26
Escribir un programa que pida al usuario dos cadenas e imprima la menor en orden alfabtico,
o son iguales si corresponde. Ayuda: probar si funciona el operador
Pgina 11 de 11
<
para cadenas.