Você está na página 1de 18

Primera Prctica

Profesor: Oswaldo Velez Ramo: Tecnologas de Orientacin en Objetos Alumnos: Juan Candia, Pablo Perez

Tabla de contenido
Ejercicio N 1 Grabadora Digital ...................................................................................................... 3 Enunciado: ................................................................................................................................. 3 Desarrollo: ................................................................................................................................. 4 .................................................................................................................................................. 4 .................................................................................................................................................. 5 Implementacin: ........................................................................................................................ 8 Ejercicio N 2 ................................................................................................................................ 11 Enunciado: ............................................................................................................................... 11 Desarrollo: ............................................................................................................................... 11 Ejercicio N 3 Algoritmo Genrico Simple ..................................................................................... 13 Enunciado: ............................................................................................................................... 13 Desarrollo: ............................................................................................................................... 13 Resultados: .............................................................................................................................. 14 Conclusiones algoritmo gentico: ............................................................................................. 18

Ejercicio N 1 Grabadora Digital


Enunciado: Una grabadora digital de sonido es un aparato electrnico diseado para
grabar y reproducir mensajes. Los mensajes ingresan por un micrfono incorporado, se graban y se guardan en una memoria digital. El usuario puede reproducir rpidamente cualquier mensaje y a cualquier momento, para lo cual utiliza un parlante colocado al frente del dispositivo. Debe ser pequeo, fcil de usar y debe operar con bateras. Las principales caractersticas consideradas para el diseo del producto son: Capacidad para diez mensajes diferentes. La longitud de cada mensaje est limitada por la memoria disponible. El men de las pantallas debe permitir un fcil manejo. Debe existir un acceso directo a cualquier mensaje. El reloj despertador debe poseer un calendario listo. El usuario puede configurar el valor de una alarma diaria. El funcionamiento de la alarma ser hasta que el usuario presione una tecla o despus de 60 segundos. Debe haber una funcin para manejar un Display LCD. La fecha actual y el tiempo siempre se visualizarn en el display. El display indica tambin las direcciones vacas. Debe existir un indicador del nivel de la batera. El sistema emite una seal sonora cuando la batera est baja. El modo de bajo consumo economiza la batera. El sistema apaga los perifricos cuando no estn en uso. El funcionamiento normal se reanuda cuando el usuario presiona una tecla. La calidad del sonido debe ser buena. El sonido se procesar a 6 KHz utilizando ocho bits por muestra.

Desarrollo:

DESCRIPCION DE CASOS DE USO Nombre: Actores: Funcin: Descripcin: Referencias: Escuchar Mensaje Usuario Permite escuchar mensajes almacenados El usuario selecciona del men , una de las grabaciones listadas en pantalla De requerimientos: R2, R9.

Nombre: Actores: Funcin:

Grabar mensaje Usuario Grabar mensaje en la memoria del dispositivo

Descripcin: El usuario selecciona la opcin grabar mensaje en el men , se grabar el mensaje con una duracin mxima de 3 minutos , se desplegar en pantalla la modulacin de voz. Referencias: De requerimientos: R1, R8,R10

Nombre: Actores: Funcin:

Borrar mensaje Usuario Permite al usuario borrar un mensaje de la memoria del dispositivo.

Descripcin: El usuario elige la opcin borrar mensaje en el men , se desplegar en la pantalla la lista de grabaciones de donde el debe elegir la grabacin a eliminar. Tambin se desplegar la opcin de borrado luego de escuchar un mensaje. Referencias: De requerimientos: R3, R10.

Nombre: Actores: Funcin:

Configurar alarma Usuario Permite que el usuario configure la alarma del dispositivo.

Descripcin: El usuario accesa a la opcin configurar alarma en el men , ah podra configurar su alarma colocando la hora de activacin de est (formato de hora 0- 24 horas / minutos). Referencias: De requerimientos: R5.

Nombre: Actores: Funcin:

Configurar Reloj Usuario Permite al usuario configurar la hora del dispositivo.

Descripcin: El usuario ingresa a la opcin a travs del men , luego puede configurar el reloj mediante el teclado del dispositivo con formato de hora 0- 24 horas / minutos. Referencias: De requerimientos: R4.

Nombre: Actores: Funcin:

Monitorear tiempo Usuario Ver la hora en el display de la pantalla.

Descripcin: El usuario puede ver constantemente la hora en la esquina superior derecha del display , adems puede ver la carga de batera en la esquina superior izquierda. Referencias: De requerimientos R6 ,R4

Implementacin:
Para dar solucin a este est ejercicio transformamos los requisitos necesarios para la funcionalidad de la Grabadora Digital y las traducimos a clases, que es lo que se supone en la prctica que es trabajar en orientacin de objetos. Y escribimos las siguientes clases: y Display y Interfaz de usuario y Teclado y Batera y Alarma de reloj y Control de audio y Memoria de mensajes y Mensajes y Entrada de audio y Salida de audio y Micrfono y Parlante

Donde cada clase tiene los siguientes mtodos: y Display: 1. 2. public: 3. 4. 5. bool encendido(int OnOff); void fecha(); void hora();
8

6. 7. 8. 9. 10. 11.

void mensajesVacias(char mensajes[10]); void usuario(char nombre, int clave); void reproduccion(char nombreMensaje, int tiempoMensaje); int nivelBateria(); bool alarmaBateria(int nivelBateria); void menuMensajes();

y Interfaz de usuario: 1. public: 2. 3. 4. 5. y Teclado: 1. public: 2. 3. 4. 5. 6. 7. 8. y Batera : 1. public:


9

void ingresarUsuario(char nombre, char apellido, int clave); void editarUsuario(char nombre, int clave); void borrarUsuario(char nombre, int clave); void mensajeUsuario(char mensaje, char nombre);

void derecha(int OnOff); void izquierda(int OnOff); void arriba(int OnOff); void abajo(int OnOff); void enter(int OnOff); void retroceder(int OnOff); void grabar(int OnOff);

2. 3. 4.

int nivelBateria(); int alarmaBateria(int nivelBateria); bool cargandoBataria(int OnOff);//si esta conectado al cargador se activa esta funcion y calcula el porcentaje de carga bool descargaBateria(int OnOff);// si no esta conectado al cargador calcula el porcentaje de carga restante a usar bool ahorroBateria(int OnOff);

5.

6. y Tiempo:

1. public: 2. 3. 4. void hora(int horas, int min, char PM-AM); void fecha(int dia, int mes, int ao); int alarma(int horas, int min, char PM-AM, char dias, int OnOff);

y Control de audio: 1. public: 2. 3. 4. 5. int nivelAudio(int nivel); bool muteAudio(int OnOff); void balanceAudio(int LeftRigth); int ecualizador(int hertz, int nivelHertz);

y Memoria de mensajes y Mensajes y Entrada de audio y Salida de audio y MicrfonoParlante

10

Ejercicio N 2
Enunciado: Se pide escribir un programa con una clase padre que contenga un el
nombre de un cliente, direccin, ciudad y regin y clases derivadas que aadan informacin sobre el nmero de puntos acumulados en un supermercado dado y kilmetros que ha rodado en una renta de autos.

Desarrollo: Para dar solucin a este ejercicio se implementa 3 clases, una clase padre y
dos clases herederas. La clase padre tiene por nombre ClassCliente, en esta clase es donde se encuentran los estructurados los datos de nuestro cliente. La segunda clase herenciaClienteSuper es una clase que hereda desde ClassCliente los datos del cliente y se le agregan los datos de este cliente de un supermercado dado y los puntos que lleva acumulado en este supermercado. La tercera clase herenciaClienteAutomotora tambin es una clase hereda desde ClassCliente los datos del cliente y se le agregan datos de la automotora y los kilmetros recorridos de el arriendo de vehculos. Para la implementacin de este programa se usan dos archivos ClassCliente.cpp y ClassCliente.h. En el archivo ClassCliente.h es el archivo de cabecera donde declaramos las 3 clases y una estructura llamada persona, que es donde se da el formato por decirlo as a la informacin necesaria para mostrar de l cliente. En el archivo ClassCliente.cpp es donde implementamos nuestro programa principal. En la clase ClassCliente se implementaron dos mtodos set y mostrar. El mtodo set es donde se agregan los datos a la estructura declarada en la clase padre con el nombre de objeto. En el mtodo mostrar es donde simplemente imprime los datos del cliente. Estos dos mtodos trabajan igual para las clases derivadas con sus nombres respectivos (setSuper, setAutomotora)

11

La salida para este programa se mostrara as:

12

Ejercicio N 3 Algoritmo Genrico Simple


Enunciado: debe realizarse un Algoritmo Genrico Simple con el enfoque orientado a
objetos.

Desarrollo:
Se us una poblacin esttica de 40 individuos. La clase Individuo define al elemento bsico de la poblacin , sta clase posee dos atributos llamados Gen : es el arreglo de cromosomas del individuo , se utilizan cromosomas binarios (1 y 0) donde 1 es el cromosoma deseado . Fitness : es la suma de todos los cromosomas deseados. Funciones y mtodos: El constructor de individuo inicializa al individuo con un gen aleatorio para cada uno de sus cromosomas adems calcula el fitness del individuo.

La clase poblacin es la que maneja todo el algoritmo genetico y contiene 3 atributos principales : Conjunto : atributo de tipo individuo , el cual es un arreglo de 40 individuos que representa el total de la poblacin. fitnessPoblacion : es el fitness promedio de toda la poblacin. Funciones y mtodos: El constructor de Poblacin inicializa una poblacin de 40 individuos , se utiliza la funcion wait ya que sin ella dada la rapidez de las computadoras actuales generara una poblacin con genes iguales . Adems se calcula el fitness inicial y se inicializa la cantidad de mutaciones en la poblacin en cero. Calcula fitness : funcin que calcula el fitness de la poblacin luego de un proceso de seleccin Seleccin : es el proceso que selecciona a los individuos mas aptos , consta de 4 etapas 1. Torneo se realiza la eliminacin de los menos aptos por torneo (fitness mas alto gana) 2. Cruza :se cruzan los pares consecutivos del conjunto de ganadores del torneo generando dos hijos por cruza (20 hijos en total).

13

Mutacin : se establece un 5% de probabilidad de que un hijo presente una mutacin , si es as se elige un hijo aleatorio de la cruza y se realiza una mutacin a un cromosoma aleatorio de este individuo. 4. Nueva poblacin : se actualiza la poblacin con los ganadores del torneo y sus hijos colocndolos intercaladamente en la nueva poblacin.

3.

Funcin objetivo : establece el fitness deseado a buscar y comienza la seleccin hasta obtener el fitness deseado en la poblacin.

Resultados:

14

El algoritmo fue probado para todos los fitness en los rangos (5-8) 20 veces , el algoritmo fue ejecutado en una mquina con las siguientes caracteristicas : Procesador: e5300 2,6 dual core Intel Memoria :2,5 gb ddr2 frec 667 Cabe destacar que la velocidad del algoritmo no fue medida en base a tiempo continuo sino en base a los ciclos de seleccin que demoraban en lograr el fitness necesario. Los resultados obtenidos se especifican en las siguientes tablas:

Tabla para fitness objetivo = 5


fitness inicial 3.9 3.95 3.975 4.05 3.925 3.9 3.95 3.95 4.1 3.925 4.05 3.875 4 4.025 4.075 3.85 3.95 4.025 3.9 3.95 4.025 promedios 3.9690 27.2381 0.2381 5.2000 selecciones 2 37 3 21 121 1 79 77 1 2 2 2 2 2 6 41 47 81 1 2 42 mutaciones 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 fitness final 5.1 5 5 5.275 5.275 5.275 5 5.275 5.075 5.175 5.575 5.35 5.075 5.1 5.375 5 5.325 5.1 5.25 5.425 5.175

15

Tabla para fitness objetivo = 6


fitness inicial 4.175 3.95 3.9 3.95 3.95 3.925 4.1 3.95 4.05 4.05 3.95 3.825 3.875 4.125 4 3.95 4.075 4 3.95 3.95 3.85 promedios 3.9786 362.8571 0.7619 6.1288 selecciones 216 311 703 317 105 355 1141 551 520 648 2 431 24 298 2 79 669 460 278 282 228 mutaciones 2 1 1 0 1 1 3 2 0 1 0 0 0 0 0 1 1 1 0 0 1 fitness final 6.025 6.1 6.075 6.15 6.375 6.05 6 6.075 6.1 6.025 6.125 6 6.125 6.425 6.4 6.2 6 6.15 6.125 6.05 6.05

16

Tabla para fitness objetivo = 7


fitness inicial 4 4.05 4 3.95 3.975 4.025 4.025 4.075 3.9 3.9 4.025 3.8 3.95 4.15 4.025 3.875 4 3.825 3.9 4 promedio 3.9725 3693.8 4.5 7.055 selecciones 7096 9493 5029 9 14354 2238 932 4199 3634 1458 1185 1725 1670 3832 2606 915 5654 1906 2895 3046 mutaciones 6 14 4 0 20 3 1 4 4 2 3 2 3 2 3 2 6 4 5 2 fitness final 7 7.025 7.2 7.075 7.175 7 7 7.025 7.05 7 7 7.2 7 7 7.025 7 7.1 7.1 7.05 7.075

Tabla para fitness objetivo = 8

fitness inicial 4.05 4.025 3.925 3.975 3.9 3.95 4.1 3.925

selecciones 15639 45112 * * * * * *

mutaciones 17 43 * * * * * *

fitness final 8 8 * * * * * *

* cancelada la ejecucin despus de 2 horas sin resultados


17

Conclusiones algoritmo gentico:


Las mutaciones aumentan a medida que se requiere mayor fitness ya que implica ms ciclos de seleccin lograr el fitness adecuado, no se puede decir con certeza si las mutaciones influyen de gran en la cantidad de ciclos necesarios para lograr el fitness objetivo , pero si se puede aseverar que al momento de buscar el fitness perfecto 8 stas representan una limitante que muchas veces impedan la conclusin del algoritmo. En conclusin el algoritmo trabaja bastante bien y rpido para las soluciones , pero las mutaciones afectan a la hora de buscar resultados mas perfectos (fitness 8) .

18

Você também pode gostar