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.