Está en la página 1de 2

Tarea 1 Computacin I

Prof: Patricio Inostroza Primavera 2014




Parte A: Moneda al Aire (1.0 punto)

Una persona necesita un moneda de 3 caras, de manera que cuando la lance pueda
conocer si cae cara, sello o de canto, con igual probabilidad. Para simular el
lanzamiento de la moneda, se pide crear la funcin lanzar() que entrega valores (1, 2
3) representando las tres caras de la moneda.

Para validar dicha funcin, cree un lanzador de monedas, que arroja la moneda un
nmero finito de veces. Para representar a este lanzador ser necesario construir una
segunda funcin lanzador(n) que recibe el nmero de lanzamiento n y
escribe en pantalla los resultados que obtuvo al llamar n veces a lanzar(). lanzador()
no retorna valores ni tiene test de validacin.

Finalmente, cree un programa que pida al usuario cuntas veces desea arrojar la
moneda y, usando las funciones anterior, se muestre los lanzamiento que pidi el
usuario.

Parte B: Punto en la pantalla (1.0 punto)

El modulo Turtle de Python permite, levantar y bajar el lpiz a la tortuga
turtle.penup(), turtle.pendown() poner un punto en la pantalla turtle.dot() o ir
a una posicin determinada turtle.setpos(x, y) .

Cree la funcin puntoEn(x, y) que mueve a la tortuga al punto (x, y) y dibuja un
punto en ese lugar. Para validar esta funcin, cree la funcin muchoPuntos(n) la
cual dibuja n puntos, en una posicin aleatoria, dentro de la pantalla. muchosPuntos()
no retorna valores ni tiene test de validacin.

Finalmente, cree un programa que pida al usuario cuntos puntos desea dibujar y,
usando las funciones anterior, se muestre los n puntos que indic el usuario.


Parte C: Triangulo de Sierpinski (4.0 puntos)

Hay diversas formas de dibujar el triangulo de sierpinski,
siendo la ms simple usar un comportamiento catico.
Bsicamente, la idea es definir un triangulo cualquiera,
donde p1, p2 y p3 son sus vrtices con coordenadas
enteras. A cada vrtice se asocia un lado de la moneda
de tres caras. Luego, se toma un cuarto punto p4
cualquiera incluso fuera de la pantalla! y a partir de
all se comienza a iterar.

La iteracin consiste en lanzar la moneda de tres caras y ver qu vrtice sali elegido.
Por ejemplo, si sali cara, se toma el punto medio pm entre p1 y p4. En pm se
dibuja un punto. Luego, p4 toma el valor de pm. Nuevamente se lanza la moneda al
aire. Si, por ejemplo, esta vez la moneda sali canto, se toma el punto medio pm
entre p3 y p4. En pm se dibuja un punto. Luego, p4 toma el valor de pm y esto se
repite n veces.

Construya el tringulo de Sierpinski usando, el algoritmo y las funciones bases descrita
al inicio de este enunciado: lazar() y puntoEn.

Preguntas a responder en su entrega (u-cursos).
Para que valor aproximado de n se comienza a ver el triangulo de Sierpinski?
Observar que, si las coordenadas del punto p4 inicial estn fuera del triangulo,
es probable que algunos puntos ensucien el dibujo. Aproximadamente
cuntas iteraciones iniciales sin dibujar son necesarias para que esto no ocurra?

IMPORTANTE:
La tarea es individual
Cree las funciones que necesite.
Recuerden que deben ser funciones simple y de tareas especficas.
Los dos primeros problemas le ayudarn a resolver el tringulo de Sierpinski
Todas la funciones tienes que seguir el patrn de diseo visto en clases
Para resolver los problemas, siga los siguientes pasos:
1. Lea el problema.
2. Lea el problema (si de nuevo!).
3. Lea el problema y desglose el problema.
4. Busque los elementos que son parte del problema y descarte lo que no
es til.
5. Busque los elementos que son parmetros de entrada o salida.
6. Busque y descomponga, cada parte del problema, en funciones simples!
7. Vuelva al paso 1 !.

Notas para el desarrollo:
Lamentablemente las llamadas recursivas tiene un limite en python.
Puede que sufra un error como el siguiente: RuntimeError: maximum recursion
depth exceeded while calling a Python object
Si aparece, entonces se excedi el lmite de llamadas.
En las pruebas realizadas, con 500 iteraciones funciona bien, pero con 1000
falla.

También podría gustarte