SlideShare une entreprise Scribd logo
1  sur  2
Télécharger pour lire hors ligne
Algoritmos y Programas – Año 2012


                                          Práctica 5
1) Codifique en Python la jerarquía de clases descripta en el diagrama UML dado a continuación, en
   un modulo llamado modelo. Considere que la implementación del método comer() en las distintas
   subclases de Animal consiste en imprimir en pantalla el tipo de alimento que ingiere el animal. Por
   ejemplo, en la clase Araña imprime “La araña come insectos”.
   Nota: los métodos getPatas() y setPatas() son concretos o sea tiene implementación.

                                                  Animal

                                           - patas : int

                                           + Animal(patas: int)
                                           + comer()
                                           + getPatas : int
                                           +setPatas(patas :int)




                Pez                                Araña                                    Gato



         + Pez()                             + Araña ()
         + comer() :void                     + comer() : void                           + Gato()
                                                                                        + comer() :void



2) Cree una clase llamada TestAnimales en un módulo llamado test, con las siguientes
   características:
   a) Defina un método de clase llamado main(), en el cual crea una instancia de Araña, otra de
       Gato y una de Pez.
   b) Declara un método de clase llamado muestraQueCome(animal) que recibe como argumento
       un objeto de tipo Animal. Este método simplemente invoca al método comer() del objeto que
       recibe como argumento.
   c) Desde el método main() invoque al método muestraQueCome(animal) enviándole como
       argumento cada una de las instancias creadas en el punto a.
   d) Implemente el código necesario para que se ejecute el método main() de la clase
       TestAnimales.
   e) ¿Qué métodos comer() fueron invocados en cada caso? ¿Se aplicó el concepto de
       Polimorfismo?

3) Defina las siguientes clases con los siguientes atributos y métodos:

                                                                             Jefe
                        Empleado
                                                       - nombre: String
     - nombre: String
                                                       - domicilio: String
     - domicilio: String
                                                       - legajo: String
     - legajo: String
                                                       - departamentoAcargo: String
     - cargo: String
                                                       - cantidadEmpleados: int
     +getNombre(): String
     +setNombre(String n): void                        +getNombre(): String
                                                       +setNombre(String n): void



  Agregue los métodos getters y                            Agregue los métodos getters y
  setters para cada uno de sus                             setters para cada uno de sus
  atributos.                                               atributos.
Algoritmos y Programas – Año 2012


4) Redefina las clases Empleado y Jefe de modo que Jefe sea una subclase de Empleado y esta
   última sea subclase de Persona, codificada en la práctica anterior. Implemente en todas las clases
   el método __str__() de modo que retorne un texto con la información correspondiente al objeto.
   Nota: Tenga en cuenta aspectos de reutilización de código utilizando la sobre-escritura.

5) Implemente un programa que lea del teclado el datos de 5 empleados y 5 jefes, cree las instancias
   necesarias de cada clase, las complete con los datos leídos anteriormente y luego imprima todas
   las ellas usando la sentencia print.

6) Declare la clase Mascota en un módulo llamado domestico, dada la siguiente definición:

                     Mascota                                                          Persona

          - propietario: Persona                                     - nombre: String
                                                                     - domicilio: String
          + getNombre(): String                                      - ocupacion: String
          + setNombre(nom : String): void                            - edad: int
          + jugar(): void

                                                                     + getApellido(): String
                                                                     + setApellido(ape : String): void
                                                                     + getNombre(): String
                                                                     + setNombre(nom : String): void
                                                                     + getOcupacion(): String
                                                                     + setOcupacion(ocu : String): void
                                                                     + getEdad(): int
                                                                     + setEdad(edad : int): void


   a) Modifique las clases Gato y Pez para que sean subclases de Mascota.
   b) El método jugar() imprimirá en pantalla el tipo de animal está invocando al método (por ejemplo:
      Gato.jugar() o Pez.jugar()).

7) Codifique la clase TestAnimalesDomesticos para probar las implementaciones de Mascota, de
   acuerdo a las siguientes indicaciones:
   a) Codifique un método de clase llamado miMascota(Mascota) que recibe como parámetro un
      objeto de tipo Mascota. La implementación de este método consiste en invocar al método
      getNombre() y jugar() del objeto que recibe como parámetro. Imprima en pantalla el nombre de
      la mascota.
   b) El método main() crea un arreglo de tipo Mascota que contiene 2 instancias de Pez, y 2 de
      Gato. Luego, recorre iterativamente el arreglo e invoca al método miMascota() pasándole como
      parámetro cada uno de los elementos del arreglo.
   c) El método jugar() es polimórfico ¿porqué?

8) Defina una superclase de nombre FiguraGeometrica para Linea, Circulo y Rectangulo del
   ejercicio 9 de la práctica anterior. Dicha clase contendrá los aspectos comunes a las tres figuras
   geométricas y aspectos propios de dicha clase.

9) Modifique la aplicación que grafica figuras geométricas codificada en el ejercicio 10 de la práctica
   anterior, de tal manera que el dibujo de las mismas sea polimórfico.

10) Responda las siguientes preguntas acerca de la sobrecarga de operadores:
   a) ¿Qué es la sobrecarga de operadores?
   b) ¿En Python cuáles son los métodos que hay que implementar para proveer sobrecarga de
      operadores?
   c) ¿Es posible implementar una solución para la aritmética imaginaria con sobrecarga de
      operadores en Python? En caso afirmativo impleméntela.

Contenu connexe

Tendances (8)

Clase2_Python-CTIC
Clase2_Python-CTICClase2_Python-CTIC
Clase2_Python-CTIC
 
Taller de introduccion a python con turtle
Taller de  introduccion a python  con  turtleTaller de  introduccion a python  con  turtle
Taller de introduccion a python con turtle
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltos
 
CLASES STRING MATH TIME
CLASES STRING MATH TIMECLASES STRING MATH TIME
CLASES STRING MATH TIME
 
Practicas prolog2011
Practicas prolog2011Practicas prolog2011
Practicas prolog2011
 
String
StringString
String
 
Ejercicios resueltos con Python
Ejercicios resueltos con PythonEjercicios resueltos con Python
Ejercicios resueltos con Python
 
De Cero A Python En 45 Min
De Cero A Python En 45 MinDe Cero A Python En 45 Min
De Cero A Python En 45 Min
 

En vedette

Practica repaso pilas y colas con archivos
Practica repaso pilas y colas   con archivosPractica repaso pilas y colas   con archivos
Practica repaso pilas y colas con archivosJorge Gamez
 
Practica repaso 4 5 2da
Practica repaso 4 5 2daPractica repaso 4 5 2da
Practica repaso 4 5 2daJorge Gamez
 
Curso de Nivelación de Algoritmos - Clase 2
Curso de Nivelación de Algoritmos - Clase 2Curso de Nivelación de Algoritmos - Clase 2
Curso de Nivelación de Algoritmos - Clase 2Ernesto Mislej
 
Algoritmos programacion-python
Algoritmos programacion-pythonAlgoritmos programacion-python
Algoritmos programacion-pythonLUIS COAQUIRA
 
Inmersión en Python 3.0.11
Inmersión en Python 3.0.11Inmersión en Python 3.0.11
Inmersión en Python 3.0.11Erik Gur
 
Practica repaso 1 3-2
Practica repaso 1 3-2Practica repaso 1 3-2
Practica repaso 1 3-2Jorge Gamez
 
Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientesalexis ibarra
 
Clase 6 excepciones
Clase 6   excepcionesClase 6   excepciones
Clase 6 excepcionesJorge Gamez
 
Lección No. 1 de Python
Lección No. 1 de PythonLección No. 1 de Python
Lección No. 1 de PythonVictor Pando
 
Cuentas usuarios grupos LINUX
Cuentas usuarios grupos LINUXCuentas usuarios grupos LINUX
Cuentas usuarios grupos LINUXjuanhuapaya
 
Algoritmos y Lenguaje de Programación - Ejercicios de: case
Algoritmos y Lenguaje de Programación - Ejercicios de: caseAlgoritmos y Lenguaje de Programación - Ejercicios de: case
Algoritmos y Lenguaje de Programación - Ejercicios de: caseNianko Madara
 
Revista Linux Latino No.1
Revista Linux Latino No.1Revista Linux Latino No.1
Revista Linux Latino No.1wozgeass
 

En vedette (20)

Practica repaso pilas y colas con archivos
Practica repaso pilas y colas   con archivosPractica repaso pilas y colas   con archivos
Practica repaso pilas y colas con archivos
 
Practica repaso 4 5 2da
Practica repaso 4 5 2daPractica repaso 4 5 2da
Practica repaso 4 5 2da
 
Curso de Nivelación de Algoritmos - Clase 2
Curso de Nivelación de Algoritmos - Clase 2Curso de Nivelación de Algoritmos - Clase 2
Curso de Nivelación de Algoritmos - Clase 2
 
Algoritmos programacion-python
Algoritmos programacion-pythonAlgoritmos programacion-python
Algoritmos programacion-python
 
Inmersión en Python 3.0.11
Inmersión en Python 3.0.11Inmersión en Python 3.0.11
Inmersión en Python 3.0.11
 
Practica repaso 1 3-2
Practica repaso 1 3-2Practica repaso 1 3-2
Practica repaso 1 3-2
 
Python05
Python05Python05
Python05
 
Python02
Python02Python02
Python02
 
Python03
Python03Python03
Python03
 
Python04
Python04Python04
Python04
 
Linux02
Linux02Linux02
Linux02
 
Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientes
 
Clase1
Clase1Clase1
Clase1
 
Clase 6 excepciones
Clase 6   excepcionesClase 6   excepciones
Clase 6 excepciones
 
Lección No. 1 de Python
Lección No. 1 de PythonLección No. 1 de Python
Lección No. 1 de Python
 
Cuentas usuarios grupos LINUX
Cuentas usuarios grupos LINUXCuentas usuarios grupos LINUX
Cuentas usuarios grupos LINUX
 
Algoritmos y Lenguaje de Programación - Ejercicios de: case
Algoritmos y Lenguaje de Programación - Ejercicios de: caseAlgoritmos y Lenguaje de Programación - Ejercicios de: case
Algoritmos y Lenguaje de Programación - Ejercicios de: case
 
Folleto de ejemplos_programacion_xo
Folleto de ejemplos_programacion_xoFolleto de ejemplos_programacion_xo
Folleto de ejemplos_programacion_xo
 
Revista Linux Latino No.1
Revista Linux Latino No.1Revista Linux Latino No.1
Revista Linux Latino No.1
 
GNU/Linux-Debian
GNU/Linux-Debian GNU/Linux-Debian
GNU/Linux-Debian
 

Similaire à Practica 5

Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12jack_corvil
 
Tema 0 Repaso Programación en Java
Tema 0 Repaso Programación en JavaTema 0 Repaso Programación en Java
Tema 0 Repaso Programación en JavaCarlos A. Iglesias
 
Ejercicios en Python
Ejercicios en PythonEjercicios en Python
Ejercicios en PythonGuiru Xd
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Javazousbabastre
 
Tema 4 - Tipos datos avanzados (I)
Tema 4 - Tipos datos avanzados (I)Tema 4 - Tipos datos avanzados (I)
Tema 4 - Tipos datos avanzados (I)Pablo Haya
 
Metodo constructor de una clase JAVA
Metodo constructor de una clase JAVAMetodo constructor de una clase JAVA
Metodo constructor de una clase JAVAMANUEL RAMIREZ
 
Semana03 prog ii
Semana03 prog iiSemana03 prog ii
Semana03 prog iiPropia
 
Utp pti_s5_arreglos
 Utp pti_s5_arreglos Utp pti_s5_arreglos
Utp pti_s5_arreglosjcbenitezp
 
Utp pti_s5_arreglos 2012-2
 Utp pti_s5_arreglos 2012-2 Utp pti_s5_arreglos 2012-2
Utp pti_s5_arreglos 2012-2jcbenitezp
 
Herencia encapsulación polimorfismo
Herencia encapsulación polimorfismoHerencia encapsulación polimorfismo
Herencia encapsulación polimorfismoFernando Solis
 
Entrega de reporte no 1, lab 1
Entrega de reporte no 1, lab 1Entrega de reporte no 1, lab 1
Entrega de reporte no 1, lab 1Antares Zehcnas
 
Ejercicios Python - con soluciones.pdf
Ejercicios Python - con soluciones.pdfEjercicios Python - con soluciones.pdf
Ejercicios Python - con soluciones.pdfCriszehroReviewer
 

Similaire à Practica 5 (20)

Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12
 
Tema 0 Repaso Programación en Java
Tema 0 Repaso Programación en JavaTema 0 Repaso Programación en Java
Tema 0 Repaso Programación en Java
 
Guia n2 tam 2009 1
Guia n2 tam 2009 1Guia n2 tam 2009 1
Guia n2 tam 2009 1
 
Ejercicios en Python
Ejercicios en PythonEjercicios en Python
Ejercicios en Python
 
[Sesion03] introduccion python
[Sesion03] introduccion python[Sesion03] introduccion python
[Sesion03] introduccion python
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Java
 
Python workshop
Python workshopPython workshop
Python workshop
 
colasEjeRe_1_2022.pdf
colasEjeRe_1_2022.pdfcolasEjeRe_1_2022.pdf
colasEjeRe_1_2022.pdf
 
Tema 4 - Tipos datos avanzados (I)
Tema 4 - Tipos datos avanzados (I)Tema 4 - Tipos datos avanzados (I)
Tema 4 - Tipos datos avanzados (I)
 
Introduccion lenguaje java
Introduccion lenguaje javaIntroduccion lenguaje java
Introduccion lenguaje java
 
Metodo constructor de una clase JAVA
Metodo constructor de una clase JAVAMetodo constructor de una clase JAVA
Metodo constructor de una clase JAVA
 
Semana03 prog ii
Semana03 prog iiSemana03 prog ii
Semana03 prog ii
 
Utp pti_s5_arreglos
 Utp pti_s5_arreglos Utp pti_s5_arreglos
Utp pti_s5_arreglos
 
Utp pti_s5_arreglos 2012-2
 Utp pti_s5_arreglos 2012-2 Utp pti_s5_arreglos 2012-2
Utp pti_s5_arreglos 2012-2
 
Herencia encapsulación polimorfismo
Herencia encapsulación polimorfismoHerencia encapsulación polimorfismo
Herencia encapsulación polimorfismo
 
Entrega de reporte no 1, lab 1
Entrega de reporte no 1, lab 1Entrega de reporte no 1, lab 1
Entrega de reporte no 1, lab 1
 
Practica 3
Practica  3Practica  3
Practica 3
 
Applets.pdf
Applets.pdfApplets.pdf
Applets.pdf
 
Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
Ejercicios Python - con soluciones.pdf
Ejercicios Python - con soluciones.pdfEjercicios Python - con soluciones.pdf
Ejercicios Python - con soluciones.pdf
 

Plus de Jorge Gamez

Plus de Jorge Gamez (13)

Python i
Python iPython i
Python i
 
Practica repaso pilas y colas
Practica repaso pilas y colasPractica repaso pilas y colas
Practica repaso pilas y colas
 
Practica 4
Practica  4Practica  4
Practica 4
 
Practica 2
Practica  2Practica  2
Practica 2
 
Practica 1
Practica  1Practica  1
Practica 1
 
Practica repaso 1 3-2
Practica repaso 1 3-2Practica repaso 1 3-2
Practica repaso 1 3-2
 
Clase5
Clase5Clase5
Clase5
 
Clase4
Clase4Clase4
Clase4
 
Clase3
Clase3Clase3
Clase3
 
Clase2
Clase2Clase2
Clase2
 
Clase archivos
Clase   archivosClase   archivos
Clase archivos
 
2 da clase la ingeniería
2 da clase  la ingeniería2 da clase  la ingeniería
2 da clase la ingeniería
 
Presentación clase 3
Presentación clase 3Presentación clase 3
Presentación clase 3
 

Practica 5

  • 1. Algoritmos y Programas – Año 2012 Práctica 5 1) Codifique en Python la jerarquía de clases descripta en el diagrama UML dado a continuación, en un modulo llamado modelo. Considere que la implementación del método comer() en las distintas subclases de Animal consiste en imprimir en pantalla el tipo de alimento que ingiere el animal. Por ejemplo, en la clase Araña imprime “La araña come insectos”. Nota: los métodos getPatas() y setPatas() son concretos o sea tiene implementación. Animal - patas : int + Animal(patas: int) + comer() + getPatas : int +setPatas(patas :int) Pez Araña Gato + Pez() + Araña () + comer() :void + comer() : void + Gato() + comer() :void 2) Cree una clase llamada TestAnimales en un módulo llamado test, con las siguientes características: a) Defina un método de clase llamado main(), en el cual crea una instancia de Araña, otra de Gato y una de Pez. b) Declara un método de clase llamado muestraQueCome(animal) que recibe como argumento un objeto de tipo Animal. Este método simplemente invoca al método comer() del objeto que recibe como argumento. c) Desde el método main() invoque al método muestraQueCome(animal) enviándole como argumento cada una de las instancias creadas en el punto a. d) Implemente el código necesario para que se ejecute el método main() de la clase TestAnimales. e) ¿Qué métodos comer() fueron invocados en cada caso? ¿Se aplicó el concepto de Polimorfismo? 3) Defina las siguientes clases con los siguientes atributos y métodos: Jefe Empleado - nombre: String - nombre: String - domicilio: String - domicilio: String - legajo: String - legajo: String - departamentoAcargo: String - cargo: String - cantidadEmpleados: int +getNombre(): String +setNombre(String n): void +getNombre(): String +setNombre(String n): void Agregue los métodos getters y Agregue los métodos getters y setters para cada uno de sus setters para cada uno de sus atributos. atributos.
  • 2. Algoritmos y Programas – Año 2012 4) Redefina las clases Empleado y Jefe de modo que Jefe sea una subclase de Empleado y esta última sea subclase de Persona, codificada en la práctica anterior. Implemente en todas las clases el método __str__() de modo que retorne un texto con la información correspondiente al objeto. Nota: Tenga en cuenta aspectos de reutilización de código utilizando la sobre-escritura. 5) Implemente un programa que lea del teclado el datos de 5 empleados y 5 jefes, cree las instancias necesarias de cada clase, las complete con los datos leídos anteriormente y luego imprima todas las ellas usando la sentencia print. 6) Declare la clase Mascota en un módulo llamado domestico, dada la siguiente definición: Mascota Persona - propietario: Persona - nombre: String - domicilio: String + getNombre(): String - ocupacion: String + setNombre(nom : String): void - edad: int + jugar(): void + getApellido(): String + setApellido(ape : String): void + getNombre(): String + setNombre(nom : String): void + getOcupacion(): String + setOcupacion(ocu : String): void + getEdad(): int + setEdad(edad : int): void a) Modifique las clases Gato y Pez para que sean subclases de Mascota. b) El método jugar() imprimirá en pantalla el tipo de animal está invocando al método (por ejemplo: Gato.jugar() o Pez.jugar()). 7) Codifique la clase TestAnimalesDomesticos para probar las implementaciones de Mascota, de acuerdo a las siguientes indicaciones: a) Codifique un método de clase llamado miMascota(Mascota) que recibe como parámetro un objeto de tipo Mascota. La implementación de este método consiste en invocar al método getNombre() y jugar() del objeto que recibe como parámetro. Imprima en pantalla el nombre de la mascota. b) El método main() crea un arreglo de tipo Mascota que contiene 2 instancias de Pez, y 2 de Gato. Luego, recorre iterativamente el arreglo e invoca al método miMascota() pasándole como parámetro cada uno de los elementos del arreglo. c) El método jugar() es polimórfico ¿porqué? 8) Defina una superclase de nombre FiguraGeometrica para Linea, Circulo y Rectangulo del ejercicio 9 de la práctica anterior. Dicha clase contendrá los aspectos comunes a las tres figuras geométricas y aspectos propios de dicha clase. 9) Modifique la aplicación que grafica figuras geométricas codificada en el ejercicio 10 de la práctica anterior, de tal manera que el dibujo de las mismas sea polimórfico. 10) Responda las siguientes preguntas acerca de la sobrecarga de operadores: a) ¿Qué es la sobrecarga de operadores? b) ¿En Python cuáles son los métodos que hay que implementar para proveer sobrecarga de operadores? c) ¿Es posible implementar una solución para la aritmética imaginaria con sobrecarga de operadores en Python? En caso afirmativo impleméntela.