Diferencia entre revisiones de «Curso Python DGA 2011/inmersion python/ejercicios clase/ejercicios poo»

De WikiEducator
Saltar a: navegación, buscar
Línea 14: Línea 14:
 
# 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.
 
# 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.
 
#* 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'''|
 +
tip=Documentación de Graphics: [[Curso_Python_DGA_2011/inmersion_python/ayuda_graphics]] |
 +
Actividad basada en [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]
 +
<ol>
 +
<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>
 
}}
 
}}

Revisión de 03:46 16 ago 2011


Icon activity.jpg

Ejercicios iniciales con Clases

  1. 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.
  2. 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.
  3. 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.






Icon activity.jpg

Ejercicios con graphics

Actividad basada en 6-189-a-gentle-introduction-to-programming-using-python

  1. Revisa la plantilla que crea una rueda.
  2. Añade el método animate:
    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)

    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.
  3. 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.
    Recuerda que tienes que dibujar la rueda antes de moverla
  4. Crea un archivo coche.py con el siguiente contenido:
    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()
  5. Crea una clase Car que haga posible que funcione el siguiente código:
    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()


Icon present.gif