Materia
Ejercicios


Tarea 1: Caleidosturtle

Objetivos de aprendizaje

Después de resolver la tarea 1, usted será capaz de:

  • Implementar un programa que requiera de entradas y salidas.
  • Diseñar e implementar programas simples usando algunas sentencias elementales de Python (asignaciones, if y While).
  • Entender el proceso de desarrolar y probar un programa en el computador usando las herramientas de desarrollo del lenguaje (Intérprete, consola, IDE).
  • Usar el módulo Turtle para hacer dibujos sencillos.
  • Implementar funciones básicas para evitar repetir código dentro de un programa.

Enunciado

La tarea consiste en programar con el módulo turtle, una tortuga que haga polígonos regulares concentricos inscritos, imitando un diseño de caleidoscopio. Para comenzar a utilizar el módulo recomendamos leer la documentación que preparamos.

La tortuga debe recibir instrucciones para armar los dibujos o recibir un 0 para detener el programa. Al preguntar por instrucciones estas deben ser un string con la siguiente estructura:

(Círculo - Número de círculo - [Lados de Figura - Color de figura]
                                *por cada figura)* por cada círculo a usar

Por ejemplo:

../../_images/2015-2_tarea1_imagen1.JPG

Como se ve en la imagen, las C verde significan el inicio de un circulo para dibujar, al lado de la C esta el numero de unidades de radio que tendra el circulo. Luego de esto vienen las figuras que se escriben de forma \(Lados Color\), cada color queda a criterio de ustedes según la lista de colores que soporta turtle (lista de colores). El dibujo formado corresponde a:

../../_images/2015-2_tarea1_captura1.JPG

Para secuencias más grandes como C25F4V9F3Z6Z7ZC37A9M3S8S4FC48Z5G9M6G4GC59S6A3Z7G8s5M4ZC63T9S7A6F8A5ZC73F8T4V9A6s7S5AC87s3V5G6T9T8T4S, con radios pequeños se forman figuras como:

../../_images/2015-2_tarea1_captura2.JPG

Antes de comenzar a dibujar debe solicitar una unidad de radio para turtle, esta será la unidad que indican las instrucciones. Para dibujos con muchos circulos se recomienda un valor pequeño y un valor grande para dibujos con pocos circulos.

Al finalizar la ejecución, tras ingresar el valor 0, el programa debe mostrar en pantalla cuantos dibujos hizo, cuantos lados tenía el dibujo más grande (según distancia recorrida) y el numero de pixeles que recorrio la tortuga (al principio de cada dibujo se definen los pixeles por unidad de radio).

../../_images/2015-2_tarea1_captura3.JPG

Consideraciones

El programa debe avisar que la linea de instrucciones está erronea al encontrar un color que no esté soportado y en el caso de que se ponga una cantidad de lados mayor a 9, se debe considerar solo el dígito de la unidad.

Algunos ejemplos de instrucciones que puede seguir la tortuga son

C27A5A9GC38M3S5Z6Z4GC45F7T4T6T9A3M8sC56A9S4V5s
C28SC35G4M6TC45F6s7F4s9sC56M8S9M3FC65T3S7S4A9s8G
C29T5G3G8F7sC37F3F5TC43s6M9V5AC54M7G3T8M9G5F6TC69G6M
C23A5G7s9s6A4V8ZC33A9A
C23s6V5V4s9MC33V9s7G4AC49G3F4T6S
C24V7G9G8A5A6V3T
C26G3G8G4TC39T4ZC43F5G4T8T6M9GC55A4V7S8AC68G7G5T4Z9s3SC73V5s4s8Z6s9FC89T4T7A8T
C27S4G6S8S3G9AC38V9Z6V5Z7S3GC46Z7A8G5V9A3TC54S3G5FC65T8S7M3s4sC73T4F
C26Z5A9s8T7s3M4ZC38Z6A7AC46F8s5sC53V5M8M7A9S4GC66F9SC79G5F6Z7T
C23F8F9S7S5A4SC39A5S4SC45A3T7S4Z8s
C24MC37V5A6Z3A8s9TC48M3G9G4Z7T5TC58s6G9s3MC63Z9A7Z4T5s8A6s
C29Z6Z5V3M4TC36V3T5s8VC48Z5T9M6VC59s7F3M6T8MC68S3Z6S5S
C24T6VC39G6F8A3T4Z5MC49F6V4G8T3T5VC59V8G5M7A6TC69S5Z3G6A
C26A7T4T8A5M9ZC35A4G3Z8G6T7ZC49A8T5V3GC56F5S7s8s9s4ZC64G
C28AC38S7Z6M9V4ZC48F5AC56M3T5s9G4F8FC67T6V4V
C28G7S6T4TC33F6Z4G8V5S7AC45VC58S4F5F9s6V7s3GC65T4A9MC79Z5GC89T

Nota

Considerando Z=Azul, R=Rojo, A=Amarillo, V=Verde, M=Morado, F=Cafe, G=Magenta, T=Turquesa, S=AzulAcero, s=Salmón

Para resolver la tarea sólo debe utilizar materia del primer certamen y comandos del módulo Turtle.

Entrega

La tarea debe ser resuelta en equipos de dos o tres personas. De lo contrario habrá penalización en la nota.

Sólo uno de los integrantes del equipo debe subir la tarea en la sección Tareas de la plataforma Aula, en el ramo de Programación IWI131.

Se debe entregar un archivo con el nombre tarea-1-RUT.py, reemplazando RUT por el RUT del integrante que subirá la tarea. Sólo debe ir el RUT sin el dígito verificador. Por ejemplo: tarea-1-18000123.py.

Al principio del archivo se debe poner un comentario indicando los RUT de los integrantes del equipo, como en el siguiente ejemplo:

# Integrantes:
# 18000123-0 Perico Los Palotes
# 18000456-7 Fulanita de Tal
# 18000890-k Federico Santa Maria

No se puede subir ningún archivo adicional.

Revise la fecha de entrega en Aula. Evite dejar para última hora la entrega de la tarea. Cerca del plazo final, la plataforma seguramente estará sobrecargada.

Se recibirán tareas con máximo un día de retraso, pero serán sancionadas.

Políticas de copia

Usted puede discutir la tarea con compañeros de otros grupos, pero bajo ningún motivo puede compartir o copiar el código de su tarea. Cada equipo debe escribir su propio código.

Las políticas de copia de la asignatura rigen para la tarea.

En caso de tener problemas con el desarrollo de la tarea, asista a las ayudantías o consulte en el grupo de facebook.