Professional Documents
Culture Documents
CURSO:
Gua/Antologa 2001
CONTENIDO
Introduccin Mdulo 1 Evolucin de las tcnicas de desarrollo de Software. Mdulo 2 El modelado de objetos, tcnicas y mtodos avanzados. Mdulo 3 Desarrollo de dos Aplicaciones con la metodologa orientada a objetos.
Presentacin
El presente curso de Programacin Orientada a Objetos , impartido para la carrera de informtica, se inscribe dentro del rea de formacin bsica particular obligatoria, con un valor de 11 crditos y con clave de materia CC200 impartida en el Centro Universitario de los Valles Ameca, Jalisco. Este curso tiene como prerrequisito el curso de introduccin a la programacin con clave de materia CC102 y el mismo es prerrequisito para el curso de Lenguajes de programacin comparados inscrito en el rea de formacin bsica particular obligatoria, con clave de materia CC208, as como tambin para el curso de Programacin de sistemas multimedia inscrito en el rea de formacin optativa abierta, con clave de materia CC401.
El presente material te ayudar a comprender las tcnicas y conceptos que envuelven el paradigma de la Programacin Orientada a Objetos y su utilizacin eficiente en la creacin de programas. En l, podrs realizar lecturas, resolver dudas, encontrar cada uno de los temas propuestos para el curso desarrollados, etc.. Lo cual implica que tienes en tus manos una herramienta ms, para salir adelante en el curso, ampliar tus conocimientos y sobre todo para auxiliarte ms all del aula.
APROVCHALO!!
Introduccin
Dentro del mundo de la programacin as como en otros campos, es de vital importancia contar con una diversidad de tcnicas formas para hacer las cosas, pero esto no termina aqu, es necesario conocerlas, entender sus fundamentos, ventajas y desventajas para poder elegir la mejor en el momento de solucionar un problema o tratar de alcanzar un objetivo dado, o en su caso, podra ser necesario combinar el conjunto de tcnicas que consideremos necesarias para alcanzar el objetivo de la mejor forma, a un bajo costo y en el menor tiempo posible, es decir, de una forma eficiente. En lo que concierne a los paradigmas de programacin, han surgido y evolucionado formas diferentes de programar los equipos de computo para alcanzar la solucin a los problemas, este avance se debe en gran parte a los esfuerzos que diferentes empresas han realizado para reducir la distancia en trminos gnoseolgicos1 que existe entre el hombre y maquina, es decir, incrementando los alcances de un conjunto de abstracciones en relacin a datos e instrucciones. El curso Programacin Orientada a Objetos se centra en el estudio de un conjunto de conceptos y tcnicas que surgen para proporcionar una forma natural e intuitiva de ver el proceso de programacin. La intencin del curso es proporcionar la informacin necesaria para que los participantes adquieran conciencia de la evolucin de los diferentes paradigmas de programacin, y para establecer un adecuado abordaje sobre la Programacin Orientada a Objetos, as como estimular y desarrollar la habilidad necesaria en los participantes para estructurar de la manera mas conveniente la concepcin que se tiene del problema a resolver con el conjunto de tcnicas que ofrece el paradigma de la Programacin Orientada a Objetos. La metodologa para el curso considera el anlisis documental, solucin de ejercicios y la interaccin de los participantes en clase con el profesor para que este asesore y supervise personalmente el proceso de formacin educativo de cada alumno, haciendo nfasis en proporcionar los ejercicios y ejemplos necesarios para que los participantes adquieran la habilidad suficiente para identificar cada una de las partes que se implican en un problema determinado, asimilando los elementos para las mismas y simplificando la solucin y complejidad inherente al mismo con el conjunto de tcnicas de la Programacin Orientada a Objetos. Al final del curso el participante tendr en claro el significado de los conceptos comprendidos en el estudio de la Programacin Orientada a Objetos, as como una idea de la utilidad, entendimiento y conocimiento de las tcnicas que envuelven al paradigma de la
Gnoseolgico haciendo alusin ha las diferencias que existen para comunicarnos y entender las cosas, hablando de las maquinas y el hombre.
Programacin Orientada a Objetos, lo cual se ver reflejado en el desarrollo de una solucin para una aplicacin determinada. Para el desarrollo de la solucin se contemplar un anlisis de la especificacin de problema, esquematizacin del mismo en funcin de sus partes y las tcnicas de la programacin orientada a objetos, finalizando con la integracin de las partes con los elementos tcnicos que intervienen en la codificacin final para esta forma de programacin. Para dar seguimiento a las acciones de aprendizaje se utilizarn las siguientes modalidades de evaluacin: Participacin presencial y/o en lnea, aplicaciones, manual electrnico de la materia, aplicacin autoevaluativa, y autoevaluacin final
Las habilidades de formacin que se pretenden estimular son: la lectura, comprensin de la misma, elaboracin de resmenes, redaccin y estructuracin de exposiciones, trabajo en equipo, hablar en publico, y todo esto con la finalidad de que el alumno comprenda a fondo tanto los principios tericos como sus implicaciones y las refuerce mediante la participacin y aplicaciones prcticas. El curso: Programacin Orientada a Objetos consta de cuatro mdulos y cada uno est conformado por los siguientes aspectos: o o o o o Objetivo de aprendizaje Contenidos curriculares Actividad preliminar Actividad de Aprendizaje Actividad Integradora
1
MDULO
CONTENIDOS CURRICULARES:
1.1. Tcnicas Ad hoc. 1.2. Programacin estructurada. 1.3. Diseo descendente y modularidad. 1.4. Modelos dirigidos por datos. 1.5. Un nuevo paradigma la programacin orientada a objetos ( POO) 1.5.1- Una manera de ver el mundo 1.5.2- Computacin como simulacin 1.5.3- Complejidad 1.5.4- Mecanismo de abstraccin 1.5.5- Utilidad.
Reconocer la evolucin de los paradigmas de desarrollo de software, para dar a la metodologa orientada a objetos una correcta ubicacin en la historia, recalcando la importancia que ha y sigue adquiriendo la misma, en el mundo de la programacin.
OBJETIVO DE APRENDIZAJE:
ACTIVIDAD PRELIMINAR
A continuacin tenemos que realizar las actividades que se sealan en los siguientes puntos: Responder en su cuaderno: Cmo se programaban los equipos de cmputo de la primer generacin? Responder en su cuaderno: Por que surge la programacin de sistemas?
Esquematice el equipo de computo en los diferentes niveles o capas (software) por las cuales tiene que pasar un mensaje antes de llegar a la maquina(hardware). Cules son los elementos de un programa estructurado? Cules son las reglas o bases que sigue la programacin estructurada? Cmo y porque surge la programacin estructurada? Mencione el numero de estructuras de control que tiene el lenguaje C y clasifquelas. Investigar cual es la principal diferencia entre la programacin Estructurada y modular. Investigar que relacin tiene el diseo descendente con la programacin modular. Tenemos un problema: una gotera en nuestro cuarto, justo en sima de la cama. Escriba en su cuaderno los pasos que lo llevaran a su solucin.
ACTIVIDAD DE APRENDIZAJE No 1
Con el fin de reforzar o aclarar los puntos realizados en la actividad preliminar es importante que realicemos lo siguiente: o Realizar la lectura No. 1 ELEMENTOS DE COMPUTACIN GUILLERMO LEVINE p.p. 5-9,47-62 o Investigue Cmo, a partir de qu y para qu surge el modelo de John Von Newmann?
En este momento has adquirido reforzado tu nocin de la evolucin que han tenido las primeras tcnicas de programacin, mas sin embargo esto no es todo, en el siguiente punto analizaremos una etapa ms de la evolucin que han sufrido las tcnicas de programacin, dicha etapa es muy importante, puesto que las bases que surgen en la misma, se siguen implementando aun dentro de la programacin orientada a objetos, Sabes de que tcnica de programacin estoy hablando?.
Ahora sabemos que las bases de la programacin estructurada (Estructuras de control bsicas) se siguen utilizando en la programacin orientada a objetos (POO) y que la programacin estructurada surge como respuesta para reducir la crisis del software en la dcada de los 60s, ms sin embargo esta sigue teniendo algunas desventajas que se buscan eliminar con las siguientes tcnicas de programacin, Conoces que tcnica de programacin tiene mejor rendimiento absoluto durante la ejecucin que la programacin estructurada ?, y Sabes por qu?. ACTIVIDAD INTEGRADORA No. 3
A) Qu facilidades presenta un sistema modular dbilmente acoplado? B) Investigar en las lecturas recomendadas alguna otra fuente de informacin la clasificacin del acoplamiento de mdulos. C) Investigar en las lecturas recomendadas alguna otra fuente de informacin la clasificacin de cohesin de mdulos. D) Agregar al glosario: 1) Modularidad 2) Cohesin 3) Acoplamiento
Hasta este momento hemos estado estudiando una de las lneas de la evolucin de las tcnicas de desarrollo de software, los modelos imperativos, estos modelos de procesamiento de informacin se rigen por las instrucciones, ms que por los datos en cuestin, en el siguiente punto nos introduciremos en una forma diferente de procesar la informacin, donde los resultados dependen de un estado, es decir la informacin en cuestin almacenada: los modelos dirigidos por datos. Sabes a que nos referimos?
ACTIVIDAD DE INTEGRADORA No 4
A) 1) 2) 3) Agregar al glosario: Base de datos Tupla SQL
B) Qu representa un conjunto de tablas? D) Qu son las tuplas ? E) Cuntas tuplas tienes en la tabla que realizaste en tu cuaderno?
De forma breve pero sustancial hemos estado analizando las diferentes etapas de la evolucin del desarrollo de software, a continuacin, comenzaremos a analizar como a partir de la experiencia adquirida con las diferentes formas de programar que hemos estudiado y a partir de la idea, de hacer a la programacin un proceso mucho ms sencillo y ms confiable, surgen los conceptos y tcnicas que envuelven a la programacin orientada a objetos. ACTIVIDAD DE INTEGRADORA No. 5
A) B) C) D) Retomar los puntos de la Actividad Preliminar y rescribir sus respuestas de serlo necesario. Mencionar el nombre que recibe el proceso que se realizo para el segundo y tercer punto de la actividad de aprendizaje. Mencionar las caractersticas bsicas que presenta un programa orientado a objetos. Cul es la diferencia entre la POO y la PBO (Programacin Basada en O.)?
Felicidades! en este momento ya puedes apreciar las ventajas que ofrece el paradigma de la POO para reducir algunos de los obstculos en el desarrollo de Software, as como su principal diferencia con relacin a la programacin estructurada, entre otras cosas interesantes que seguiremos abordando en los siguientes mdulos.
2
MDULO
ACTIVIDAD PRELIMINAR
Realizar las actividades sealadas en los siguientes puntos: 1) Describir en trminos de abstraccin lo que es un programa. 2) Cul es el rol de la abstraccin? 3) Cules son las categoras de abstraccin que se presentan en los lenguajes de programacin? 4) Mencionar 2 caractersticas propias de cualquier objeto 5) Cmo se identifican los objetos a partir de la especificacin de un problema? 6) Cul es la diferencia entra la programacin estructurada y la POO? 7) A que nos referimos cuando hablamos de enlace Esttico? 8) A que nos referimos cuando hablamos de enlace dinmico? A) B) C) D) Mencionar una ventaja que ofrecen los diagramas de clases Mencionar una ventaja que ofrecen los diagramas de objetos Qu representan los diagramas de clases? Qu representan los diagramas de objetos?
Cmo se identifican, a partir de la especificacin de un problema, las relaciones entre objetos y clases? Cul es la caracterstica que esencialmente diferencia la POO de la programacin tradicional? Cul es el smbolo que se utiliza para representar una relacin de agregacin con la notacin OMT? Qu significa OMT?
1) 2) 3) 4)
Qu tipo de relacin se presenta en la herencia? Cul es el principio del concepto de herencia en la POO? Qu es la herencia en la programacin orientada a objetos? Qu es una clase abstracta? Y Qu una clase concreta?
5) 6) 7) 8)
Cmo se presenta el overriding en la herencia? Qu es la sobrecarga? Qu son las funciones virtuales? Qu es el polimorfismo?
Qu relacin existen entre la abstraccin y un lenguaje de programacin? Cul fue el primer lenguaje que mezcl datos y procedimientos? Realizar un programa que te permita manipular los nmeros complejos.
PROGRAMACIN ORIENTADA A OBJETOS SEGUNDA EDICIN LUIS JOYANES AGUILAR SEGUNDA EDICIN p. p. 91-98, 350-363
o Concluir con el punto numero dos de la Actividad de Aprendizaje de la unidad didctica 2.4 ACTIVIDAD DE APRENDIZAJE No. 6
o Realizar la lectura No. 11 PROGRAMACIN ORIENTADA A OBJETOS SEGUNDA EDICIN LUIS JOYANES AGUILAR SEGUNDA EDICIN p. p. 98-108, 376-387 o Realizar la segunda parte del ejercicio 11.1 Pg. 386
Como te habrs dado cuenta la abstraccin es un herramienta muy poderosa que utilizas todos los das para reducir la complejidad en el proceso de entendimiento, y esta herramienta ha sido y seguir siendo el elemento y/o razn de la evolucin de los lenguajes de programacin. Sabes cual es el concepto complejo que implica una abstraccin tanto de datos como de mtodos y se refleja en un paquete que oculta informacin al exterior?. Te invito a continuar estudiando la siguiente unidad curricular de este segundo mdulo, ah podrs encontrar la respuesta.
B) Agregar al glosario los conceptos de: Objeto, Clase, Ligadura (Enlace), Enlace esttico, Enlace dinmico, Constructor, Destructor, Encapsulamiento, Mensajes, Estado, Comportamiento.
Ahora sabemos la diferencia entre clases y objetos, y muchas caractersticas sobre estos conceptos, toma en cuenta que este conocimiento que has adquirido es muy valioso pues son las bases para entender los siguientes puntos unidades curriculares de nuestro curso.
En la unidad 2.2 se pudieron apreciar varias notaciones graficas, en este punto se recalca su importancia y a travs del curso aprenderemos nuevas notaciones graficas y apreciaremos de una forma ms palpable la importancia de los diagramas mediante ejercicios, y as como el hecho de que representan un formalismo para representar los modelos de objetos muy necesario en el desarrollo de software. ACTIVIDAD INTEGRADORA No. 4
A) Retomar los puntos de la Actividad Preliminar y rescribir sus respuestas de serlo necesario. B) Cul es el smbolo que se utiliza para representar una relacin de generalizacin con la notacin OMT ? C) Realizar la unidad didctica 2.5 D) Agregar al glosario 1) Generalizacin / Especializacin 2) Agregacin 3) Asociacin 4) OMT
5) Enlaces y asociaciones
Las relaciones entre objetos como indica Booch2 pueden representar comparaciones o conexiones semnticas, y mucho de esto an no se ha abordado por lo tanto te recomiendo que contines estudiando y retomes las siguientes unidades didcticas para que te queden mucho mas claras las relaciones. ACTIVIDAD INTEGRADORA No. 5
Realizar la primer parte del Ejercicio 11.1 del libro: PROGRAMACIN ORIENTADA A OBJETOS SEGUNDA EDICIN LUIS JOYANES AGUILAR SEGUNDA EDICIN pag. 386 (lectura 11). Retomar los puntos de la Actividad Preliminar y rescribir sus respuestas de serlo necesario. Agregar al glosario: 1) Operador resolucin de mbito 2) Herencia simple 3) Herencia mltiple 4) Herencia 5) Clase abstracta y clase concreta Partiendo de los siguientes sustantivos: Animales, mamferos, ovparos, reptiles, ballenas, hombres, cocodrilos, pjaros, palomas y halcones, y utilizando la notacin OMT represente la relacin que existe entre los mismos e indique cual es el nombre de la misma.
Recuadro Informativo: Es importante que tengas presente que la caracterstica que esencialmente diferencia a la POO de la programacin tradicional es la herencia, la herencia es un mecanismo de reutilizacin de software que por ende acarrea otros caractersticas de la POO como lo es el polimorfismo.
Debes estar contento, en estos momentos conoces las caractersticas que caracterizan a la programacin orientada a objetos (Encapsulacin y ocultacin de la informacin que representan el concepto avanzado de objeto, herencia y polimorfismo), as como otros conceptos que se relacionan fuertemente con las caractersticas mencionadas anteriormente como lo son: clases, generalizacin, asociaciones, etc... En el siguiente mdulo reforzaremos lo que ya conocemos y ampliaremos esa gama de conceptos relacionados con la POO que ya entiendes. Mucho animo, que ya has visto ms de la mitad de tu curso.
3
MDULO
CONTENIDOS CURRICULARES:
3.1. Presentacin de la primer aplicacin (bloques) 3.2. Desarrollo completo de la segunda aplicacin reutilizando clases elaboradas para la primer aplicacin (Damas).
Con el objeto de reforzar los conceptos y relaciones vistos en el mdulo No. 2 se presenta el siguiente planteamiento de problema que deber resolverse con la metodologa orientada a objetos:
La academia de informtica necesita un programa que de forma aleatoria genere 10 bloques en pantalla. Los bloques pueden ser de texto o simplemente un marco, los bloques marco pueden o no tener relleno. La letra que se elija para construir un bloque texto deber ser elegida de forma aleatoria, los bloques pueden ser de diferentes colores y el color se elige de forma aleatoria, el ancho de los bloques como mximo ser de 24 unidades en modo texto 80,24 y como mnimo de 5 unidades modo texto 80,24 (espacios ), y lo alto de los bloques como mximo ser de 14 unidades y como mnimo de 5 unidades, estas dimensiones se asignan de forma aleatoria. Una vez ejecutado (corriendo)el programa con la tecla tabulador puedes elegir cualquier bloque impreso en pantalla, y cuando ests en algn bloque determinado este blinqueara (aparecer y desaparecer como un foco que se prende y apaga simultneamente un numero consecutivo de veces), para salirte del programa puedes presionar la s o la tecla Esc. Cuando ests sobre un bloque marco con las flechas (arriba, derecha, abajo, izquierda) podrs moverlo en toda la pantalla, si presionas Enter refrescaras la pantalla imprimindose nuevamente todos los bloques, si ests sobre un bloque texto con las flechas arriba y derecha modificaras la letra de forma ascendente y con las flechas abajo e izquierda modificaras la letra de la que esta hecho el bloque texto de forma descendente. Los siguientes son ejemplos de bloques marco:
ACTIVIDAD DE APRENDIZAJE
o Identificar los objetos del problema de bloques. o Por cada objeto identificado, escribir un prrafo muy preciso que contenga todos los hechos acerca de dicho objeto segn el planteamiento de problema. o Extraer del planteamiento de problema todos los hechos o Agrupar por clase todos los hechos. Esto nos servir para darnos cuenta que se han identificado correctamente las clases (objetos). o Separar en dos grupos los hechos de cada clase (Atributos y otros hechos)
ACTIVIDAD INTEGRADORA
En la actividad de aprendizaje realizamos las primeras dos fases de un diseo orientado a objetos: la identificacin de las clases necesarias para su implementacin y la identificacin de los atributos de dichas clases. o A cada clase agregaremos un tercer grupo de hechos nombrado comportamientos (acciones que se le indican a la clase para que realice algo) o Por cada comportamiento identificado y asignado a una clase, dar una breve descripcin de lo que deber hacer, listar cualquier cambio de atributos que provoque el comportamiento, as como todos los mensajes que dicho comportamiento les enviar a los objetos de otras clases. o Consulta con tu profesor si has encontrado correctamente las clases y agrupado correctamente sus componentes (atributos y comportamientos). o Codificar la aplicacin de bloques en base a la informacin rescatada del planteamiento de problema a travs de las actividades anteriores (puedes consultar el Apndice A para auxiliarte).
Una vez terminada la codificacin de la aplicacin bloques te pudiste percatar que implementaste la herencia jerrquica, has apreciado como se presenta el polimorfismo con funciones virtuales, etc.. es decir, en resumen, se ha logrado el objetivo, reforzar los conceptos y las abstracciones que has creado para el paradigma en programacin orientado a objetos en el mdulo No. 2 FELICIDADES!!!.
3.2 Desarrollo completo de la segunda aplicacin reutilizando clases elaboradas para la primer aplicacin (Damas). ACTIVIDAD PRELIMINAR
1) Conocer el mbito del problema que implica la segunda aplicacin.
se presenta la informacin del juego de Damas y el planteamiento de problema que deber resolverse con la metodologa orientada a objetos:
Juego de damas, juego de tablero cuyo objetivo es capturar el mayor nmero de fichas posible del oponente o inmovilizarlas. El juego se desarrolla sobre un tablero de 64 cuadrados, normalmente blancos y negros. Cada jugador tiene doce fichas en forma de disco, blancas o negras que se mueven slo sobre los cuadrados negros y las negras siempre empiezan. En las damas inglesas, las fichas se mueven hacia adelante un cuadrado cada vez y en diagonal. Una ficha puede saltar sobre una o ms fichas enemigas que son capturadas, siempre que exista un cuadrado vacante donde tocar para saltar de nuevo. Si un jugador alcanza la lnea de atrs de su oponente se convierte en un rey (se pone una ficha encima de otra) y el movimiento termina. Despus, un rey puede moverse hacia atrs igual que hacia adelante, tantos cuadros como le sea posible. Un jugador con varias posibilidades de movimientos puede hacer uno pequeo en vez de uno grande, pero si comienza un movimiento debe de ser completado capturando todas las piezas posibles. Hay muchas variantes: la italiana, espaola, polaca, alemana, rusa, turca y china son las ms importantes. El juego se origin en el siglo XII en Europa, probablemente en el sur de Francia. En los primeros tiempos la captura de fichas era opcional, pero alrededor de 1535 se introdujo en Francia una regla de captura obligatoria: si no se realizaba la captura, existiendo esa posibilidad, se perda la ficha. En el actual juego de las damas inglesas es obligatorio capturar cuando existe la posibilidad; esta fue la modalidad que llevaron los colonos ingleses a Estados Unidos.
Planteamiento de problema El objetivo es sencillo y claro en base a la informacin correspondiente al juego de damas vamos a realizar un tablero, donde las fichas tengan todas las posibilidades anteriormente mencionadas, y puesto que esta ser la primer versin de nuestro juego de damas lo haremos en modo texto (80,24) y como en los primeros tiempos del juego, la captura de fichas ser opcional. Nuestra aplicacin tendr dos indicadores de turno que aparecern y desaparecern en funcin del turno presente , tambin tendr un controlador por cada jugador (2) que podr desplazarse por todo el tablero y le permita al jugador en turno elegir una ficha y una posicin siguiente para la ficha, los indicadores de turno tambin en su caso indicaran quien es el ganador en funcin de que se eliminen todas las fichas de un bando y despus de un Enter se le preguntara a los jugadores que si desean salir o seguir jugando, el juego se puede terminar en cualquier estado de la partida presionando Esc la tecla s.
ACTIVIDAD INTEGRADORA
En la actividad de aprendizaje realizamos las primeras dos fases de un diseo orientado a objetos tal y como lo hicimos para la primer aplicacin: la identificacin de las clases necesarias para su implementacin y la identificacin de los atributos de dichas clases. o A cada clase agregaremos un tercer grupo de hechos nombrado comportamientos (acciones que se le indican a la clase para que realice algo) o Por cada comportamiento identificado y asignado a una clase, dar una breve descripcin de lo que deber hacer, listar cualquier cambio de atributos que provoque el comportamiento, as como todos los mensajes que dicho comportamiento les enviar a los objetos de otras clases. o Consulta con tu profesor si has encontrado correctamente las clases y agrupado correctamente sus componentes (atributos y comportamientos).
o Codificar la aplicacin de damas en base a la informacin rescatada del planteamiento de problema a travs de las actividades anteriores (puedes consultar el Apndice B para auxiliarte).
Al desarrollar esta segunda aplicacin has reforzado la habilidad que adquiriste en la unidad didctica 3.1 para estructurar de la manera mas conveniente la concepcin que se tiene del problema a resolver con el paradigma en Programacin Orientado a Objetos y sobretodo has reutilizado software que como ya sabemos es el principal objetivo de la programacin orientada a objetos: la reutilizacin.
En el libro de: MODELADO Y DISEO ORIENTADO A OBJETOS de RUMBAUGH Puedes estudiar otras especificaciones de problemas, analizar el diseo de los mismos, conocer parte de su implementacin, etc.. en los Cp.: 18,19 y 20. tambin en el libro de C++ CMO PROGRAMAR DE DEITELY DEITEL te encontraras con una especificacin de problema en el Cp. 2 .22 y una serie de actividades en los Cp. 3, 4 y 5 necesarias de realizar para la implementacin a dicho problema. COMO VERAS ESTO ES EL PRINCIPIO, EXISTEN MUCHAS OTRAS COSAS QUE HACER, PROBLEMAS QUE RESOLVER, ETC.. ESPERAMOS QUE EL CURSO HAYA SIDO DE TU AGRADO Y SEPAS APROVECHARLO. MUCHO XITO!!!