Universidad Nacional del Litoral Facultad de Ingeniería y Ciencias Hídricas Departamento de Informática
Ingeniería Informática PROGRAMACIÓN ORIENTADA A OBJETOS
UNIDAD 2
Introducción a la Programación Orientada a Objetos 2009
Unidad 2
2
UNIDAD 2
Introducción a la Programación Orientada a Objetos
Material de estudio sugerido Para poder leer acerca de los contenidos referidos a los temas de esta Unidad 2, debe ingresar a la plataforma Moodle de nuestra asignatura y bajar el material de estudio sugerido en la Unidad 2. El material propuesto es el siguiente: •
Temas y conceptos: extraerlos de la presentación desarrollada en clase de teoría. Archivo: POO-Unidad2-2009.ppt
•
Libro: “Metodología de la Programación: POO”. Autor: desconocido. Dirección: http://www.pdfcoke.com/doc/13896316/Metodologia-de-la-programacionorientada-a-objetos-con-C+ . Comentario: Bueno, explicación clara y sencilla.
•
Libro: “Curso de C++”. Capítulos 28 al 32 (son capítulos muy cortos). Autor: Salvador Pozo Coronado. Comentario: Regular, ejemplos muy simples. http://tchefonsecalfaro.files.wordpress.com/2009/03/cursocpp_programacion_c.pdf
•
Tutorial: “Programación en C++”. Capítulo 14: “Clases y Objetos en C++”. Autor: Josué Díaz Cuenca. Comentario: Bueno. http://www.mailxmail.com/curso-programacion-c/objetos-clases-1
•
Libro: “Thinking in C++”. Volumen1-en Español. Autor: Bruce Eckel. Capítulo 1: “Introducción a los objetos”. Comentario: Muy bueno. Sugerencia: LEER EL CAP 1. DESPUES de completar las actividades de práctica. Es considerado el mejor libro de C++, pero empieza con C++ desde cero, partiendo del modelo de objetos. Archivo: Thinking in C++ - Volumen1-Español.pdf. .
Actividades
Ejercicios Ejercicio 2.1 Diseñe una clase cilindro que modele un cilindro. El objetivo es emplear esa clase para calcular el volumen del cuerpo conociendo el radio y la altura del mismo. ProFICH - UNL Programación Orientada a Objetos-2009
Unidad 2
3
ponga métodos para asignar los datos del problema a través de parámetros, calcular el volumen y mostrar el resultado. Ejercicio 2.2 Escriba un programa C++ que utilice la clase cilindro. Defina 2 instancias llamadas c1 y c2. El objeto c1 debe utilizar datos que se ingresan interactivamente; para c2, utilice 5.3cm y 10.2cm para el radio y la altura respectivamente. Ejercicio 2.3 Rescriba la clase y el programa del cilindro de forma de emplear un constructor para inicializar el radio y la altura. Ejercicio 2.4 Proponga un POO en C++ para resolver la ecuación cuadrática ax2+bx+c=0. Los datos son los coeficientes a, b y c. Si las raíces fueran complejas, mostrarlas en la forma binómica a+bi . Ejercicio 2.5 Escriba un programa C++ OO que permita leer una lista de alumnos y las calificaciones obtenidas por ellos en un curso. Determine la calificación promedio del curso, la mejor nota y el alumno que la obtuvo. Ejercicio 2.6 Modifique la clase cilindro del ejercicio 2.3 planteando un constructor sobrecargado que permita asignar valores por defecto en el caso de que se lo invoque sin parámetros. Pruebe esta clase en un programa. Ejercicio 2.7 Un objeto puede ser asignado a otro de la misma clase. En base a la afirmación anterior a) Determine la salida del siguiente programa; b) Pruebe el programa. // Copia de objetos #include class fecha { public: // constructor por defecto fecha( int = 1, int = 1, int = 2000 ); void mostrar(); private: int mes; int dia; int anio; }; // constructor fecha fecha::fecha( int d, int m, int y ) { dia = d; mes = m; anio = y; }
FICH - UNL Programación Orientada a Objetos-2009
Unidad 2
4
// Mostrar la Fecha con formato dd-mm-aaaa void fecha::mostrar() { cout << dia << mes<< '-' << anio; } int main() { fecha fecha1( 4, 7, 2003 ), fecha2; cout << "Fecha1 = "; fecha1.mostrar(); cout << "\nFecha2 = "; fecha2.mostrar(); fecha2 = fecha1; cout << "\n\nDespués de copia a nivel de miembros: cha2 = "; fecha2.mostrar(); cout << endl;
Fe-
return 0; } Ejercicio 2.8 Crear una clase CRectangulo que permita calcular el área y perímetro de un rectángulo. El diseño de la clase debe permitir crear objetos de este tipo conociendo indistintamente la base y la altura, o bien, las 4 coordenadas x,y de sus vértices. La clase debe disponer de un método EsCuadrado() que informe si el rectángulo conforma o no un cuadrado. Ejercicio 2.9 Observe el diseño de la clase Fecha del recuadro. class fecha { // constructor por defecto fecha( int = 1, int = 1, int = 2000 ); void mostrar(); int mes; int dia; int anio; }; Al compilar un programa que trate de instanciar un objeto de tipo fecha se produce un error. a) ¿Por qué?; b) Corrija el error.
FICH - UNL Programación Orientada a Objetos-2009