Diferencia entre revisiones de «Curso Python DGA 2011/inmersion python/ejercicios clase/ejercicios poo»
De WikiEducator
m (Página creada con '{{Actividad| Title=Primeros ejercicios| tip=Descarga los archivos del repositorio gitghub del curso.| # }}') |
|||
(3 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
{{Actividad| | {{Actividad| | ||
− | Title= | + | Title=Ejercicios iniciales con Clases| |
− | + | # Crea una clase '''Alumno''' | |
− | # | + | #* Un alumno tendrá tres atributos: '''nombre, apellido y una lista de notas''', inicialmente vacía. |
+ | #* Crea un método para que cuando imprimas un objeto alumno, muestre su nombre y apellido con el formato: '''APELLIDO, Nombre''' | ||
+ | #* Crea un método '''pon_nota''', que añada una nota a la lista de notas. | ||
+ | #* Crea un método '''nota_media''', que devuelva la nota media del alumno. | ||
+ | #* Crea un método '''imprime_ficha''', que muestre en pantalla todos los datos del alumno: Nombre, apellido, lista de notas y nota media. | ||
+ | #* Crea un método '''cmp_nombre''', que permita compare dos alumnos por su apellido y nombre. Lo usaremos para ordenar una lista de alumnos. | ||
+ | #* Crea un método '''cmp_notas''', que permita compare dos alumnos por su nota media. Lo usaremos para ordenar una lista de alumnos. | ||
+ | # Crea un objeto '''clase''', que sea una lista de 5 alumnos. | ||
+ | #* Ordena la clase por orden alfabético. | ||
+ | #* Ordena la clase por nota media, de mejor a peor nota. | ||
+ | # Crea una clase '''Alumno_en_practicas''' que herede de alumno y tenga además el atributo de la '''empresa''' en la que hace las prácticas. | ||
+ | #* Modifica su método '''imprime_ficha''' para que imprima también el nombre de la empresa donde hace/hará las prácticas. | ||
+ | }} | ||
+ | |||
+ | {{Actividad| | ||
+ | Title=Ejercicios con '''graphics'''| | ||
+ | Actividad basada en la actividad [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2011/assignments/MIT6_189IAP11_hw4.pdf Homework 4] del curso [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2011/assignments/ 6-189-a-gentle-introduction-to-programming-using-python] | ||
+ | <br />'''PREVIO''': Prepara un directorio para realiza el ejercicio y descarga dentro el archivo [http://mcsp.wartburg.edu/zelle/python/graphics.py graphics.py] de J. Zelle. | ||
+ | <br />'''SOPORTE''': Aquí tienes ayuda para manejar graphics: [[Curso_Python_DGA_2011/inmersion_python/ayuda_graphics | Ayuda Graphics]] | ||
+ | <ol> | ||
+ | <li> | ||
+ | Descarga la plantilla: [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2011/assignments/wheel.py plantilla ejercicio] | ||
+ | </li> | ||
+ | <li> | ||
+ | Revisa la plantilla que crea una rueda. | ||
+ | </li> | ||
+ | <li>Añade el método '''animate''': | ||
+ | <source lang="python"> | ||
+ | class Wheel: | ||
+ | def animate(self, win, dx, dy, n): | ||
+ | if n > 0: | ||
+ | self.move(dx, dy) | ||
+ | win.after(100, self.animate, win, dx, dy, n-1) | ||
+ | </source> | ||
+ | El método tiene 4 parámetros: | ||
+ | * un objeto ventana | ||
+ | * las unidades a donde mover el objeto en las direcciones x e y | ||
+ | * el número de veces que hay que llamar al método '''animate''' | ||
+ | *: El primer parámetro de '''animate''' son los milisegundos que hay que esperar entre llamadas. | ||
+ | </li> | ||
+ | <li> | ||
+ | Escribe un programa que use la nueva clase Wheel y cree un objeto rueda y lo mueva 1 unidad en la dirección x 100 veces. | ||
+ | <br/> | ||
+ | Recuerda que tienes que dibujar la rueda antes de moverla | ||
+ | </li> | ||
+ | <li>Crea un archivo coche.py con el siguiente contenido: | ||
+ | <source lang="python"> | ||
+ | from graphics import * | ||
+ | new_win = GraphWin("A Car", 300, 300) | ||
+ | rect = Rectangle( Point( 10,10), Point(200, 100 ) ) | ||
+ | rect.setFill( "blue" ) | ||
+ | rect.draw( new_win ) | ||
+ | new_win.mainloop() | ||
+ | </source> | ||
+ | </li> | ||
+ | <li>Crea una clase '''Car''' que haga posible que funcione el siguiente código: | ||
+ | <source lang="python"> | ||
+ | new_win = GraphWin(’A Car’, 700, 300) | ||
+ | # create a car object | ||
+ | # 1st wheel centered at 50,50 with radius 15 | ||
+ | # 2nd wheel centered at 100,50 with radius 15 | ||
+ | # rectangle with a height of 40 | ||
+ | |||
+ | car1 = Car(Point(50, 50), 15, Point(100,50), 15, 40) | ||
+ | car1.draw( new_win ) | ||
+ | # color the wheels grey with black tires, and the body pink | ||
+ | car1.set_color(’black’, ’grey’, ’pink’ ) | ||
+ | # make the car move on the screen | ||
+ | car1.animate(new_win, 1, 0, 400) | ||
+ | new_win.mainloop() | ||
+ | </source> | ||
+ | </li> | ||
+ | </ol> | ||
}} | }} |
Última revisión de 21:08 5 sep 2011
|
Actividad basada en la actividad Homework 4 del curso 6-189-a-gentle-introduction-to-programming-using-python
|