Beruflich Dokumente
Kultur Dokumente
Lapso 2012-1
Programacin de Funciones
Funcin
Contiene una o ms sentencias y se crean generalmente para realizar una nica tarea. En la Programacin Orientada a Objetos, las funciones se utilizan para definir los mtodos de las clases. Implementacin de una Funcin:
Programacin de Funciones
Parmetros de una Funcin
Se conocen como Argumentos. Una funcin puede utilizar parmetros por valor y parmetros por referencia, o puede no tener parmetros.
Programacin de Funciones
Parmetros de una Funcin segn Ubicacin
Parmetros Formales Estn en la definicin de la funcin (cabecera).
Regla Compatibilidad
Misma cantidad
Mismo tipo
Para N parmetros formales deben haber N parmetros actuales. Ej: si hay 3 parmetros en los formales, deben haber 3 en los actuales Deben ser parmetros del mismo tipo. Ej: Si en los formales hay un char y un int, igualmente deben haber un char y un int en los actuales Deben estar en el mismo orden. Ej: si en los formales hay un char y un int, y en los actuales hay un int y un char, ambos pares de parmetros tienen el mismo tipo pero no estn en el mismo orden.
Mismo orden
Programacin de Funciones
Ejemplos de Funciones
void ImprimirMensaje (string mensaje) { cout << mensaje << endl; } Llamado de la funcin ImprimirMensaje ImprimirMensaje (Ingrese los siguientes datos:);
void LimpiarPantalla () { system (cls); } void DetenerPantalla () { system (pause); } Llamado de las funciones anteriores LimpiarPantalla (); DetenerPantalla ();
void intercambio(int& m, int& n) { int i=3, j =50; int aux=m; cout<< i = << i << y j = << j << endl; m= n; n= aux; intercambio (&i, &j); } cout<< i = << i << y j = << j << endl;
Es una forma especial de programar, ms cercana a como expresaramos las cosas en la vida real.
Se basa en la idea natural de la existencia de un mundo lleno de objetos, de modo que la resolucin del problema se realiza en trminos de objetos.
Clase Persona
Nombre Cdula BsEfectivo BsDebe TotalCapital TotalDeudas TotalPatrimonio
LA CLASE BASE Persona con sus componentes (Propiedades: Nombre, Cedula, BsEfectivo, BsDebe, Comportamiento: clculos de Totales) ASUMIREMOS de la manera ms elemental, que el TotalCapital de cualquier persona es el dinero en efectivo que tiene, y TotalDeudas es lo que debe en efectivo; as, TotalPatrimonio es la diferencia entre los totales anteriores CON ESTAS FLECHAS queremos denotar que hay una herencia entre las clases sealadas UN PROFESOR es una persona; componentes adicionales: ValorCarro y ValorCasa
Clase Estudiante
- ValorComputador - ValorCelular - TotalCapital
PARA CADA CLASE DERIVADA tambin cuenta BsEnBanco PARA ESTUDIANTE hay que sumarle Computador y Celular PARA PROFESOR hay que sumarle Carro y Casa
Clase Profesor
- ValorCarro - ValorCasa - TotalCapital
Segn Booch
Es algo que tiene estado, un comportamiento y una identidad.
Mtodos
Son las funcionalidades asociadas a los objetos, es decir, describen el comportamiento asociado a un objeto. Las funciones (mtodos) residen en el objeto y determinan como actuar ste cuando reciba un mensaje.
UML
FECHA
- dia : int - mes : int - anno : int + + + + + + + + Fecha () Fecha (d:int, m:int, a:int) SetDia (d:int) SetMes (d:int) SetAnno (d:int) GetDia () :int GetMes () :int GetAnno () :int
ATRIBUTOS
PRIVADO (-)
PBLICO (+)
OPERACIONES (MTODOS)
PROTEGIDO (#)
Identificacin de Objetos
Una tcnica a seguir para lograr la identificacin de los objetos es subrayar cada sustantivo (nombre) presente en el planteamiento del problema. Ejemplo: En una organizacin laboran varios trabajadores que tienen un sueldo base, asignaciones y deducciones. Se desea determinar el sueldo neto de cada trabajador.
IDENTIFICACIN
OBJETOS CANDIDATOS: organizacin, trabajadores, trabajador, empresa
DE OBJETOS Y SUS COMPONENTES
En una organizacin laboran varios trabajadores que tienen un sueldo base, asignaciones y deducciones. Se desea determinar el sueldo neto de cada trabajador y el total a pagar por la empresa.
REQUERIMIENTOS: determinar el sueldo neto de cada trabajador IMPORTANTE: en ocasiones la informacin de entrada est implcita
Ejemplificacin de Requerimientos
IDENTIFICACIN
DE OBJETOS Y MIEMBROS POR EJEMPLIFICACIN TABULADA
TODA LA TABLA representa la informacin del objeto Organizacin CADA REGISTRO muestra la informacin de un objeto trabajador
DATOS GENERALES DE ENTRADA seran atributos de la organizacin. Para este ejemplo, podra ser el total que dispone la empresa para pagar sueldos. As, si se pide el restante luego del pago, tendramos otro mtodo para organizacin: TOTALRESTANTE.
Organizacin - totPagarOrg : float - bsDisponeParaSueldos : float + SetBsDisponeParaSueldos (Bs : float) + GetBsDisponeParaSueldos () : float +ProcesarTrab (Nomb...) : void + DetTotPagarOrg () : float ::::::::::::
El diagrama de clases muestra todas las clases que participan en la solucin del problema y las relaciones entre ellas.
Trabajador - nombre : string - sueldoBase : float - asignaciones : float - deducciones : float +Sets... +Gets... +CalcularSueldoNeto () : float ::::::::::::
Objetos C++
Un Programa Orientado a Objetos en C++, est compuesto por: Varias libreras de uso genrico, bien sea incorporadas al lenguaje o programadas por el usuario. Una carpeta en el disco duro (o pendrive) con el nombre del proyecto.
Clases propias para el programa. Cada clase se almacena en 2 archivos: uno para la interfaz (extensin .h) y otro para la implementacin (extensin .cpp). Estos archivos van dentro de la carpeta del proyecto
Cada clase que se disea tendr 2 partes: La interfaz: contiene solamente la declaracin de los componentes de la clase, siguiendo la sintaxis de C++. La implementacin: contiene la programacin de los mtodos de la clase
Nuestro ejemplo de la organizacin requerir al menos 5 archivos: Organizacin.h, Organizacin.cpp, Trabajador.h, Trabajador.cpp y Principal.cpp
Trabajador.h
Trabajador.cpp
Organizacion.h
Organizacion.cpp
Principal.cpp
Consideraciones
Se denominan exactamente igual que la clase. Pueden haber varios constructores en una clase, con la diferenciacin entre ellos de los argumentos que reciben (sobrecarga de mtodos). Para efectos de este curso, principalmente se usarn 2 constructores: (valores predeterminados, y otro que recibe los argumentos de inicializacin). En la interfaz de la clase, solamente colocars al encabezado. En la implementacin, entonces declaras la implementacin. En caso de que sea un constructor de inicializacin predeterminada, colocars valores base.
Consideraciones
Por cada atributo debera existir un Set y un Get. Con frecuencia podrs solamente implementar los Sets y Gets de los atributos que necesites para resolver el problema que se te plantea. Queda a discrecin del profesor si te permite esto. Los Sets constituyen un mtodo cuya nica funcin ser asignarle un valor a un atributo en particular, el cual viene por parmetro. Dado que no tiene que retornar valor, los Sets son procedimientos, o funciones void. Los Gets son mtodos que se invocarn para que retornen el valor de una atributo en particular, de manera que el tipo de retorno de cada Get depender del tipo del atributo que retorna.
Trabajador.h
Trabajador.cpp
Metodologa de Desarrollo
EJEMPLO 1 Planteamiento del problema
DE APLICACIN DE METODOLOGA
Programar con POO: Dado el saldo actual de una cuenta bancaria, el tipo de una nueva operacin que se realiz y el monto de la misma, determinar el nuevo saldo de la cuenta.
1- Comprende: resalta las entidades que participan y los datos que te dan; la clase final est subrayada
Dado el saldo actual de una cuenta bancaria, el tipo de una nueva operacin que se realiz y el monto de la misma, determinar el nuevo saldo de la cuenta.
2- Ejemplo: Este proceso de anlisis te llevar a la solucin final. El cliente puede decirte rpidamente si vas bien. 2- Abstraccin: Este razonamiento es una excelente abstraccin del problema Los nombres de variables (en parntesis) puedes idearlos una vez aprobado el ejemplo 3- Clases: Observa que los componentes vienen desde el ejemplo: con el nombre que ideaste!... si es dato de entrada, ser atributo, los clculos son mtodos...
Si tengo 2000 Bs en el banco (saldo_actual) Las operaciones??? Retiro depsito (tipo_op) Ok!, si deposito 1000... (monto) Entonces tendr 3000 Bs (nvo_saldo) Pero si retiro 1500 (monto)... me quedan 500 Bs Ta fcil: al saldo actual le sumo si es deposito o le resto si es retiro (DetNvoSaldo)
CtaBanco saldo_actual : float tipo_op : char monto : float DetNvoSaldo () : float Recuerda que todos los mtodos llevan parntesis as no tengan argumentos.