Programación Orientada a Objetos EIF200 FUNDAMENTOS DE INFORMÁTICA Compilado por: Mag. Sonia Mora. Dra. Mayela Coto. Proyecto UNA – Mora & Coto,

Slides:



Advertisements
Presentaciones similares
Introducción a C++ Sistemas Operativos
Advertisements

Los meses del año.
Ejemplo de Programa C++
SOBRECARGA DE FUNCIONES
Español conversacional 7º grado Señor Manning.
Introducción a clases Programación Orientada a Objetos.
Patrón Observador Un patrón de diseño es una descripción de clases y objetos comunicándose entre si adaptada para resolver un problema de diseño general.
3.  Recursividad.
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
Estructuras de Repetición (Hacer-Mientras)
Estructuras de control condicional
laboutiquedelpowerpoint.
Calendario escolar Puede imprimir esta plantilla para usarla como calendario de pared o copiar la página correspondiente a cualquiera de los.
CALENDARIO2007 Para mis amigos. ENERO 2007 D S T Q Q S S
Algoritmo.
Arreglos Ejemplo paso a paso. Planteamiento Como estudiante de ingeniería, quieres usar tus habilidades de programador para llevar un registro de tus.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
¿Cuál es la fecha hoy? ¿Qué fecha/día es hoy?
Desarrollador Profesional de Juegos Programación III Unidad I El manejador universal.
CONSTANTES DENTRO DE UN CÁLCULO O EN LOS PASOS PARA SOLUCIONAR UN PROBLEMA, EXISTIRÁN VALORES QUE NUNCA VAN A CAMBIAR Y SE LOS CONOCE COMO CONSTANTES.
Paso de Parámetros a una Función Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de.
2012 Calendario mensual Puede imprimir esta plantilla para usarla como calendario de pared o copiar la página del mes que desee y agregarla a su propia.
PARA MIS AMIGOS CALENDÁRIO 2011 Hélicoptères de Combate.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Introducción al Lenguaje C (II) Cadenas de caracteres, archivos de cabecera, lectura y escritura Fundamentos de Programación Departamento de Lenguajes.
Tratamientos secuenciales I Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 8 Versión
UNIVERSIDAD DIEGO PORTALES Facultad de Ingeniería Programación Avanzada HERENCIA Tema: HERENCIA Ing. Javier Chamorro Cerón.
¿En qué mes es tu cumpleaños?.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
2015-BM5A. ¿Qué estructuras de Programación conocemos? Condicional: If … { } … Else …{ } Condicional por Casos: Switch (opcion) { } Repetitiva exacta:
Programación Orientada a Objetos EIF200 FUNDAMENTOS DE INFORMÁTICA Proyecto UNA – Mora & Coto, 2015 Compilado por: Mag. Sonia Mora. Dra. Mayela.
Introducción a la Programación Multimedial
Estructuras de Control.
Programación Orientada a Objetos
Árboles binarios. Algoritmos básicos
BREVE INTRODUCCION A LA PROGRAMACION
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Las estaciones del año.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Diseño y Programación Orientada a Objetos
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
CALENDARIO DE CUMPLEAÑOS
Manejo de Excepciones Agustín J. González ELO329.
Programación Avanzada
UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE CIENCIAS ADMINISTRATIVAS
Fundamentos del lenguaje de programación Condicionales, ciclos, Métodos, enumeraciones Escuela Técnica Superior Kinal Instructor Edwin Tumax.
Paul Leger Uso de Condicionales Paul Leger
Manejo de Excepciones Agustín J. González ELO329.
Unidad 3. Introducción a la programación
PARA MIS AMIGOS CALENDÁRIO 2011 Para los cazadores.
Manejo de Excepciones Agustín J. González ELO329.
Manejo de Excepciones Agustín J. González ELO329.
 Función cuadrática Definición Es de la forma: f(x) = ax2 + bx + c
2009 Calendario.
Enero 2010 DOMINGO LUNES MARTES MIÉRCOLES JUEVES VIERNES SÁBADO 1 2 3
Agosto 2009 LUNES MARTES MIÉRCOLES JUEVES VIERNES SÁBADO DOMINGO 1 2 3
Departamento de Asistencia al Usuario
Manejo de Excepciones en C++
Enero 2010 DOMINGO LUNES MARTES MIÉRCOLES JUEVES VIERNES SÁBADO 1 2 3
IPOO 2 cuatrimestre 2018 Departamento de Ciencias e Ingeniería
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Número de solicitudes de información presentadas en el Periodo de Septiembre 2017 – Octubre 2017
SON 12 LOS MESES DE AÑO. enero 1 febrero 2 marzo 3.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Los meses del año Las estaciones del año. ¿Cuáles son los meses de la primavera?  Marzo  Abril  Mayo.
Enero 2010 LUNES MARTES MIÉRCOLES JUEVES VIERNES SÁBADO DOMINGO 1 2 3
Transcripción de la presentación:

Programación Orientada a Objetos EIF200 FUNDAMENTOS DE INFORMÁTICA Compilado por: Mag. Sonia Mora. Dra. Mayela Coto. Proyecto UNA – Mora & Coto, 2015

Ejemplo  Un programa de matemática básico desea realizar operaciones con números y poder determinar que tipo de número es: primo, par, impar, etc.  ¿Qué atributos debería tener una clase Número que permita esto? Defina la clase Número Constructor con y sin parámetros Métodos set y get Método destructor Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA

Ejemplo: clase número #include using namespace std; class Numero { private: int valor; public: Numero () { valor = 0; } Numero (int valor) { this->valor = valor; } // métodos set void setValor (int valor) { this->valor = valor; } // métodos get int getValor ( ) { return(valor); } ~ Numero (){ // se elimina el numero } // métodos cálculo }; EIF200 FUNDAMENTOS DE INFORMÁTICA

Número impar  Escriba un método que permita determinar si un número es impar Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA

Número impar  Opción #2 string esImpar () { if (valor %2 != 0) return “impar"; }  Opción #1 bool esImpar () { if (valor %2 != 0) return true; } ¿qué pasa si es par? class Numero { private: int valor; ….. EIF200 FUNDAMENTOS DE INFORMÁTICA

Número impar  Opción #2 string esImpar () { if (valor %2 != 0) return “impar"; else return "par"; }  Opción #1 bool esImpar () { if (valor %2 != 0) return true; else return false ; } class Numero { private: int valor; ….. bool esImpar () {return (valor%2!=0);} bool esImpar () {return (valor%2!=0);} Otra forma……… EIF200 FUNDAMENTOS DE INFORMÁTICA

Ejemplo: clase número  Escriba dos segmentos del main() que cree un objeto numero con un valor dado por el usuario y que determine e imprima si dicho número es par o impar (usando cada una de las versiones de los métodos anteriores). Es decir: Cuando los métodos devuelven valores booleanos Cuando los métodos devuelven un valor tipo string EIF200 FUNDAMENTOS DE INFORMÁTICA

int main() { int a; cout<<"Valor del numero: "<<endl<<endl; cin>>a; Numero num1(a) ; cout<<"El numero es "<<num1.esImpar()<<endl; …..} int main() { int a; cout >a; Numero num1(a) ; if (num1.esImpar()) cout<<"El numero es impar"<<endl<<endl; else cout<<"El numero es par"<<endl<<endl; ……. } CASO#1 El método devuelve True si el número es impar y False si es par CASO#2 El método devuelve una hilera de caracteres EIF200 FUNDAMENTOS DE INFORMÁTICA

Ejercicio: clase Numero  En la clase Numero escriba un método que retorne el valor absoluto del número class Numero { private: int valor; ….. Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA

Ejercicio: clase Numero  En la clase Numero escriba un método que retorne el valor absoluto del número int absoluto() { if(valor>=0) return valor; else return (-valor); } class Numero { private: int valor; ….. Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA

x + 5 = 0 Ejercicio: Ecuación Lineal  Dadas las siguientes ecuaciones de primer grado identifique que elementos las caracterizan y defina: Una clase que represente una ecuación de primer grado y Los atributos que las caracterizan, use el diagrama UML correspondiente. 3x-2=0 -x + 3 = 0 ax+b= 0 EIF200 FUNDAMENTOS DE INFORMÁTICA

Clase EcuLineal EIF200 FUNDAMENTOS DE INFORMÁTICA

Ejercicio: Ecuación Lineal  Defina para esa clase los métodos básicos: Un método constructor sin/con parámetros. Los métodos públicos set/ get para cada uno de los atributos que los requieran. EIF200 FUNDAMENTOS DE INFORMÁTICA

Ejercicio: Ecuación Lineal #include using namespace std; class EcuLineal{ private: float a; float b; public: EcuLineal(){//constructor sin parámetros a=1; b=1; } EcuLineal(float pA,float pB){//constructor con parámetros a=pA; b=pB; } EIF200 FUNDAMENTOS DE INFORMÁTICA

Ejercicio: Ecuación Lineal float getA(){ return(a); } float getB(){ return(b); } void setA(int pA){ a= pA; } void setB(int pB){ b= pB; } EIF200 FUNDAMENTOS DE INFORMÁTICA

Ejercicio: Ecuación Lineal  Una ecuación lineal de la forma ax+b=0 para tener solución debe cumplir que a sea distinta de cero  Por lo tanto se debe considerar el análisis del valor de a. EIF200 FUNDAMENTOS DE INFORMÁTICA

Ejercicio: Ecuación Lineal private: // método privado bool esEcuacion() { return (a!=0); } private: bool esEcuacion() { // evalúa la condición de a if (a != 0) return true; else return false; } Versión mejorada Note que el método esEcuacion() realiza una operación interna al método que encuentra la solución de la ecuación. Por lo tanto puede crearse como un método privado EIF200 FUNDAMENTOS DE INFORMÁTICA

Ejercicio: Ecuación Lineal public: void solucion() { if(esEcuacion()) //la evaluación da true o false cout<<"La ecuacion " << a << "x +" <<b<<" = 0 es:"<<-b/a; else cout<<"No es ecuacion"<<endl; } }; // fin de la clase EIF200 FUNDAMENTOS DE INFORMÁTICA

Ejercicio: Ecuación Lineal int main() { float a1,b1; cout<<"Digite los valores de a y b "<<endl; cin>>a1>>b1; EcuLineal ecuacionA(a1,b1); ecuacionA.solucion(); return 0; } EIF200 FUNDAMENTOS DE INFORMÁTICA

x = 9 Ejercicio: Ecuación Cuadratica  Dadas las anteriores ecuaciones de segundo grado identifique que elementos las caracterizan y defina: Una clase que las represente y Los atributos que las caracterizan, use el diagrama UML correspondiente. Impleméntela 3 x 2 - x-2= 25 - x 2 + 3x = 0 ax 2 +bx+c= 0 EIF200 FUNDAMENTOS DE INFORMÁTICA

Clase: Ecuación Cuadrática EIF200 FUNDAMENTOS DE INFORMÁTICA

Ecuación Cuadrática #include using namespace std; class EcuCuadratica{ private: int a; int b; int c; public: EcuCuadratica(){//constructor sin parámetros a=1; b=1; c=1; } EcuCuadratica(int a,int b,int c){//constructor con parámetros this->a=a; this->b=b; this->c=c; } EIF200 FUNDAMENTOS DE INFORMÁTICA

Ecuación Cuadrática int getA(){ return(a); } int getB(){ return(b); } int getC(){ return(c); } void setA(int pA){ a= pA; } void setB(int pB){ b= pB; } void setC(int pC){ c= pC; } EIF200 FUNDAMENTOS DE INFORMÁTICA

Ecuación Cuadrática private: // métodos privados bool esEcuacion() { return (a!=0); } float discriminante(){ return ( b*b-4*a*c); } EIF200 FUNDAMENTOS DE INFORMÁTICA

Ecuación Cuadrática: Método Solucion() EIF200 FUNDAMENTOS DE INFORMÁTICA

Ecuación Cuadrática: Método Solucion() public: void Solucion(){ float dis; if(esEcuacion()){ dis = discriminante(); if (dis > 0) { cout<<"x1 : "<<(-b+sqrt(dis))/(2*a)<<endl; cout<<"x2 : "<<(-b-sqrt(dis))/(2*a)<<endl; } else if (dis == 0) cout<<"x1 : "<<(-b)/(2*a)<<endl; else cout<<"No tiene solucion en R"<<endl; } else cout<<"No es ecuacion cuadratica"<<endl; } }; EIF200 FUNDAMENTOS DE INFORMÁTICA

Ecuación Cuadrática int main() { EcuCuadratica ecuacionA(2,2,-12); cout<< "La solucion a la ecuacion es"<<endl; ecuacionA.Solucion(); EcuCuadratica ecuacionB(1,-10,25); cout<< "La solucion a la ecuacion es"<<endl; ecuacionB.Solucion(); EcuCuadratica ecuacionC(0,-10,25); cout<< "La solucion a la ecuacion es"<<endl; ecuacionC.Solucion(); return 0; } EIF200 FUNDAMENTOS DE INFORMÁTICA

Ejemplo: clase Fecha  Suponga que tiene una clase Fecha definida de la siguiente manera : class Fecha { private: int dia; int mes; int anyo; … }  Se quiere un método que imprima la fecha de la forma “22 de junio de 1983”.  Es necesario un método que sea capaz de devolver el nombre del mes Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA

Ejemplo: clase Fecha string mesAnyo() {switch (mes) { case 1: return "enero"; case 2: return "febrero"; case 3: return "marzo"; ……… case 12: return "diciembre"; default: return "mes invalido"; } void imprimeFecha (){ cout << dia<< "de "<<mesAnyo() << "de " << anyo << endl;} class Fecha { private: int dia; int mes; int anyo; ….. Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA

Clase Fecha: método diasMes()  Escriba un método que determine el número de días de cada mes Debe considerar los días de cada mes según:  Enero, marzo, mayo, julio, agosto, octubre y diciembre (meses: 1,3,5,7,8,10,12)  31 días  Febrero (mes 2)  depende de si es o no bisiesto  Abril, junio, setiembre, noviembre (meses: 4,6,9,11)  30 días  Suponga que existe el método bool bisiesto() que devuelve verdadero si el año es bisiesto EIF200 FUNDAMENTOS DE INFORMÁTICA

Clase Fecha: método diasMes() bool bisiesto () {// metodo que determina si el año es bisiesto } int diasMes() {/* metodo que determina el número de días de un mes */ if (mes == 4 || mes == 6 || mes == 9 || mes == 11) return 30; else if (mes == 2) if ( bisiesto( ) ) return 29; else return 28; else return 31; } }; Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA

Clase Fecha: uso del switch int diasMes() { switch (mes) { case 4: return 30; case 6: return 30; case 9: return 30; case 11: return 30; case 2 : if( bisiesto( )) return 29; else return 28; default: return 31; } Al ser return no requiere break; int diasMes() { switch (mes) { case 4: case 6: case 9:case 11: return 30; case 2 : if( bisiesto( )) return 29; else return 28; default: return 31; } EIF200 FUNDAMENTOS DE INFORMÁTICA

Clase Fecha: método incrementaDias()  Escriba un método que incremente la fecha en 1 día.  Ejemplo dia=31 mes=8 anyo=2016 dia=1 mes=9 anyo=2016 dia=31 mes=12 anyo=2020 dia=1 mes=1 anyo=2021 Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA

Clase Fecha: método incrementaDias() void incrementaDia() { if (dia < diasMes()) dia++; else { // dia = 1; if (mes < 12) mes++; else { mes = 1; anyo++; } Imágenes en esta diapositiva son de dominio público EIF200 FUNDAMENTOS DE INFORMÁTICA

Uso didáctico curso EIF 200 Escuela de Informática Universidad Nacional Costa Rica EIF200 FUNDAMENTOS DE INFORMÁTICA Proyecto UNA – Mora & Coto, 2015