Ver índice de contenidos del libro

14.7. Ejercicios

Ejercicio 14.7.1. Modificar el método __cmp__ de Hotel para poder ordenar de menor a mayor las listas de hoteles según el criterio: primero por ubicación, en orden alfabético y dentro de cada ubicación por la relación calidad-precio.

Ejercicio 14.7.2. Escribir una clase Caja para representar cuánto dinero hay en una caja de un negocio, desglosado por tipo de billete (por ejemplo, en el quiosco de la esquina hay 5 billetes de 10 pesos, 7 monedas de 25 centavos y 4 monedas de 10 centavos).

Se tiene que poder comparar cajas por la cantidad de dinero que hay en cada una, y además ordenar una lista de cajas de menor a mayor según la cantidad de dinero disponible.

Ejercicio 14.7.3. Fracciones

  1. Crear una clase Fraccion, que cuente con dos atributos: dividendo y divisor, que se asignan en el constructor, y se imprimen como X/Y en el método __str__.
  2. Crear un método sumar que recibe otra fracción y devuelve una nueva fracción con la suma de ambas.
  3. Crear un método multiplicar que recibe otra fracción y devuelve una nueva fracción con el producto de ambas.
  4. Crear un método simplificar que modifica la fracción actual de forma que los valores del dividendo y divisor sean los menores posibles.

Ejercicio 14.7.4. Vectores

  1. Crear una clase Vector, que en su constructor reciba una lista de elementos que serán sus coordenadas. En el método __str__ se imprime su contenido con el formato [x,y,z]
  2. Crear un método escalar que reciba un número y devuelva un nuevo vector, con los elementos multiplicados por ese número.
  3. Crear un método sumar que recibe otro vector, verifica si tienen la misma cantidad de elementos y devuelve un nuevo vector con la suma de ambos. Si no tienen la misma cantidad de elementos debe levantar una excepción.

Ejercicio 14.7.5. Botella y Sacacorchos

  • Escribir una clase Corcho, que contenga un atributo bodega (cadena con el nombre de la bodega).
  • Escribir una clase Botella que contenga un atributo corcho con una referencia al corcho que la tapa, o None si está destapada.
  • Escribir una clase Sacacorchos que tenga un método destapar que le reciba una botella, le saque el corcho y se guarde una referencia al corcho sacado. Debe lanzar una excepción en el caso en que la botella ya esté destapada, o si el sacacorchos ya contiene un corcho.
  • Agregar un método limpiar, que saque el corcho del sacacorchos, o lance una excepción en el caso en el que no haya un corcho.

Ejercicio 14.7.6. Modelar una clase Mate que describa el funcionamiento de la conocida bebida tradicional argentina. La clase debe contener como miembros:

  1. Un atributo para la cantidad de cebadas restantes hasta que se lava el mate (representada por un número).
  2. Un atributo para el estado (lleno o vacío).
  3. El constructor debe recibir como parámetro n, la cantidad máxima de cebadas en base a la cantidad de yerba vertida en el recipiente.
  4. Un método cebar, que llena el mate con agua. Si se intenta cebar con el mate lleno, se debe lanzar una excepción que imprima el mensaje ¡Cuidado! ¡Te quemaste!
  5. Un método beber, que vacía el mate y le resta una cebada disponible. Si se intenta beber un mate vacío, se debe lanzar una excepción que imprima el mensaje. El mate está vacío!
  6. Es posible seguir cebando y bebiendo el mate aunque no haya cebadas disponibes. En ese caso la cantidad de cebadas restantes se mantendrá en 0, y cada vez que se intente beber se debe imprimir un mensaje de aviso: Advertencia: el mate está lavado., pero no se debe lanzar una excepción.
Copyright (c) 2011-2014 Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano, Nicolás Paez. La copia y redistribución de esta página se permite bajo los términos de la licencia Creative Commons Atribución - Compartir Obras Derivadas Igual 3.0 siempre que se conserve esta nota de copyright.