9. Programación con Objetos y Clases

Introducción

En esta sección encontrarás problemas básicos relacionados con clases y tipos.

Ejemplo 1

En este ejemplo crearemos un nuevo tipo llamado NumeroComplejo. Este tipo tiene un atributo x para la coordenada en x e y para la coordenada en y. Representa un número complejo de la forma (x, y).

Ejemplo 2

Definir para la clase NumeroComplejo un método que permita imprimir una instancia de la clase. Recordemos que al intentar imprimir un tipo definido por nosotros, se imprime la dirección de memoria.

Ejemplo 3

En este ejemplo definiremos la función __str__ para la clase NumeroComplejo para poder imprimir usando la función print.

Ejemplo 4

En este ejemplo definiremos una función que compara dos números complejos, ya que si dos objetos distintos tienen sus atributos iguales, no se consideran iguales.

Ejemplo 5

En este ejemplo haremos un método que sume dos numeros complejos sin modificiar los objetos originales, ya que se retorna un nuevo numero NumeroComplejo.

Ejercicio 1

Extiende la clase NumeroComplejo con el método resta, que retorna la resta de dos complejos.

Ejercicio 2

Crea los métodos get_x y get_y. El primero retorna el valor de x para un número complejo. El segundo retorna el valor de y

Ejercicio 3

Implementa la clase Recta. Esta clase debe tener dos atributos m y n que representan la pendiente y el coeficiente de posición respectivamente. Implementa además la función __str__ que imprima la recta. La recta es de la forma y = mx + n.

Ejercicio 4

Para la clase definida en el ejercicio anterior, implementar el método evaluar(self, x) que entrega el valor de y asociado a ese x. Debes copiar tu código de la respuesta anterior.

Ejercicio 5

Para la clase definida en el ejercicio anterior, implementar el método esta_en(self, x, y) que retorna True si el punto (x,y) es parte de la recta. False en caso contrario. Recuerda pegar el código de tu programa anterior.

Introducción 2

En esta sección encontrarás problemas relacionados con clases y tipos.

Ejemplo 1

Crea una clase persona. Sus atributos deben ser su nombre y su edad. Además crea un método cumpleaños, que aumente en 1 la edad de la persona.

Ejemplo 2

Para la clase anterior definir el método __str__. Debe retornar al menos el nombre de la persona.

Ejemplo 3

Extender la clase persona agregando un atributo saldo y un método transferencia(self, persona2, monto). El saldo representa el dinero que tiene la persona. El método transferencia hace que la Persona que llama el método le transfiera la cantidad monto al objeto persona2. Si no tiene el dinero suficiente no se ejecuta la acción.

Ejemplo 4

En este ejemplo extenderemos el programa anterior con una clase Bus. Como atributo tiene un arreglo de pasajeros (inicialmente vacío), una capacidad (se ingresa en el constructor) y un chofer. Debes implementar el método ingresar_chofer(self, persona), que recibe una persona y queda como chofer del Bus si es mayor de 18 años. Cabe destacar que el chofer no se ingresa en el constructor.

Ejemplo 5

Extender la clase Bus con el método subir_pasajero(self, persona). Este método sube a la persona al bus (i.e. La agrega al arreglo de asientos) siempre que el número de pasajeros en el Bus sea menor que la capcidad total.

Ejercicio 1

Crear una clase Vector, que recibe como atributo una lista de números que representa un vector. Implementa el método sumar_vector(self, vector2), que retorna un nuevo vector equivalente a la suma del vector que representa el objeto que llama al método y el vector representado por el objeto que es recibido como parámetro. En caso de no ser del mismo largo, se debe retornar None.

Ejercicio 2

Para la clase del ejercicio anterior implementar un método que retorne un número que representa el producto punto de dos vectores. Uno es quien llama al método, y el otro es el que se ingresa como parámetro. Recuerda volver a pegar el código de tu programa.

Ejercicio 3

Implementar una clase Matriz que como atributo posea una lista de listas de números. Debe contener un método sumar matrices que retorne un objeto de clase Matriz que sume dos matrices.

Ejercicio 4

Para la clase anterior, implementar un método iguales(self, m2) que determina si la Matriz que llama al método y la que es entregada como argumento representan la misma matriz. Recuerda pegar el programa de la pregunta anterior

Ejercicio 5

Para el programa del ejemplo de Personas y Buses (Que se encuentra abajo), se ha añadido un costo al Bus, que representa el costo del pasaje. Modifica el método subir_pasajero para que solo puedan subir personas con el dinero suficiente. El costo del pasaje se debe descontar del saldo.

Next Section - 10. Búsqueda y Ordenamiento