Programación Avanzada

Slides:



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

Clases en C++.
Programación Interactiva Hilos
Ejemplo de Programa C++
LOGROS DEL PERÍODO Utiliza de forma correcta las funciones para entrada y salida de datos en c++. Utiliza los elementos básicos de un programa en c++.
Tipos de Datos Abstractos Vector de Racionales
MANEJO DE EXCEPCIONES EN C++
Curso de Java Estructura del Lenguaje
INFORMATICA I Funciones CLASE 13.
Herencia y Polimorfismo
Tema 4 Árboles. Árbol sobre matriz.
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
SOBRECARGA DE FUNCIONES
Estructuras de Datos Cont. C++ y Tipos de Datos. Ejemplo: Vector de Objetos #include class estudiante { private: int aCarne; char aNombre[20]; float aNota;
Programación II Colas Igor Santos Grueiro.
El concepto de clase Con frecuencia un término puede definirse de diferentes maneras según el enfoque. Desde el punto de vista del análisis y el diseño.
Genericidad Una clase genérica encapsula una estructura y brinda un conjunto de servicios cuya implementación no depende del tipo de las componentes.
Herencia e Interfaces.
Java. Objeto Es la instancia de una clase. Cada objeto se crea utilizando la palabra reservada new. Un objeto es conocido como una instancia. Ejemplo.
Realizado por: Bertha Palomeque A. Rodrigo Barzola J. Sensor de Temperatura utilizando el Starter Kit Javelin Stamp.
Herencia y Polimorfismo en JAVA
Igor Santos Grueiro. De este tipo de pilas NO vamos a hablar.
Programación orientada a objetos
Clase Teórica No. 4 Programación IV
Suponiendo que además en la clase U hay: import java.util.*; class U{ static Scanner teclado = new Scanner(System.in); static public int readInt(String.
ÁRBOLES BINARIOS DE BÚSQUEDA
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
Herramientas de polimorfismo y herencia en C++
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2008.
1 Ingeniería del Software Colecciones de objetos  Descripción general  Patrón iterador  Iteradores en Java: enumeration  Patrón diccionario  Diccionarios.
Entrada y Salida ES.leerChar (); ES.leerEntero (); ES.leerEnteroLargo (); ES.leerFloat (); ES.leerDouble (); System.out.print System.out.println.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Polimorfismo.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
Desarrollador Profesional de Juegos Programación III Unidad I El manejador universal.
Ing. Esp. Ricardo Cujar. Permite la ejecución de una sentencia, dada una determinada condición. If(condición){ sentencia(s) a ejecutar en caso de que.
Ejemplo Animales. Clase 1 Animal miVelocidad: int miNombre: String Animal(int vel, String nom) saluda (): void.
Fundamentos de Ingeniería de Software Facultad de Ingenieria Universidad Distrital Francisco José de Caldas PROGRAMACION ORIENTADA A OBJETOS Asignatura:
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Programación orientada a objetos Capítulo 3 Interacción de objetos.
Implementación de Iterables Construcción de Iterables virtuales o basados en otros iterables Fundamentos de Programación Departamento de Lenguajes y Sistemas.
RELACIONES ENTRE CLASES M.C. YOLANDA MOYAO MARTINEZ.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Iterables virtuales Concepto, Metodología de desarrollo y Ejemplos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión.
UNIVERSIDAD DIEGO PORTALES Facultad de Ingeniería Programación Avanzada HERENCIA Tema: HERENCIA Ing. Javier Chamorro Cerón.
UNIVERSIDAD DIEGO PORTALES Facultad de Ingeniería Programación Avanzada TIPOS ABSTRACTOS DE DATOS TAD Tema: TIPOS ABSTRACTOS DE DATOS TAD Subtema: LISTAS.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Dependencia.
2012-BM5A. Unos tips antes de empezar: C# es Case Sensitive (sensible a mayúsculas) Pepe ≠ pepe ≠ pEpE Las asignaciones se hacen con “=” y las comparaciones.
Programación Orientada a Objetos EIF200 FUNDAMENTOS DE INFORMÁTICA Compilado por: Mag. Sonia Mora. Dra. Mayela Coto. Proyecto UNA – Mora & Coto,
Programación Avanzada
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
EL MUNDO DE LOS OBJETOS PROGRAMANDO EN JAVA.
Diseño y Programación Orientada a Objetos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
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
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Vectors (Vectores)‏ e Iteradores
Vectors (Vectores)‏ e Iteradores
IPOO 2 cuatrimestre 2018 Departamento de Ciencias e Ingeniería
Vectors (Vectores)‏ Agustín J. González ELO329.
Templates (en español: Pantillas, modelos, patrones)‏
Manejo de Excepciones en C++
IPOO 2 cuatrimestre 2018 Departamento de Ciencias e Ingeniería
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Transcripción de la presentación:

Programación Avanzada Ejercicio sobre pasaje de Diseño a Implementación

Ejercicio Considere los siguientes diagramas de comunicación: Programación Avanzada - Curso 2017 Ejercicio: Pasaje de Diseño a Implementación

: B : A 1*:[for each] e:= next() «association» f (s: string, i: int) e: B 2 * : m ( s ) 3 b = i X 4 [ ] « l o c a » return x; m(s.length) m(s: string) : B : B1 m(i: int) : A setAttr(i) «association» : B2 m(i: int) : A setAttr(2*i) «association» Programación Avanzada - Curso 2017 Ejercicio: Pasaje de Diseño a Implementación

Ejercicio (3) Parte a) A partir de los diagramas anteriores, construya el DCD que se deduce de ellos. Programación Avanzada - Curso 2017 Ejercicio: Pasaje de Diseño a Implementación

Ejercicio (4) B A - x : bool - attr : int + B(a : A) + f(s : string, i : int) + m(s : string) 1 * + setAttr(i : int) + isX() : bool + m(i : int) B1 B2 + B1(a : A) + B2(a : A) + m(i : int) + m(i : int) Programación Avanzada - Curso 2017 Ejercicio: Pasaje de Diseño a Implementación

Ejercicio (5) Parte b) De una implementación C++ de las clases involucradas (según lo que se pueda extraer de las interacciones). Programación Avanzada - Curso 2017 Ejercicio: Pasaje de Diseño a Implementación

Ejercicio (6) // A.cpp #include "A.h" #include "B.h" A::A() {…} void A::f(String s, int i) { B* e; for (int j = 0; j < colB.getCount(); j++) { e = colB.get(j); e->m(s); if (e->isX()) { e->m(i); } void A::setAttr(int i) { attr = i; // A.h #include "Vector.h" class A { private: int attr; Vector colB; public: A(); void f(String s, int i); void setAttr(int i); }; Programación Avanzada - Curso 2017 Ejercicio: Pasaje de Diseño a Implementación

Ejercicio (7) // B.cpp #include "B.h" // B.h B::B(A *a) { miA = a; } void B::m(String s) { m(s.Length); bool B::isX() { return x; A* B::getMiA() { return miA; // B.h #include "A.h" class B { private: bool x; A * miA; public: B(A * a); bool isX(); A* getMiA(); void m(String s); virtual void m(int i) = 0; }; Programación Avanzada - Curso 2017 Ejercicio: Pasaje de Diseño a Implementación

Ejercicio (8) // B1.h #include "B.h" // B1.cpp class B1 : public B { B1(A *a); void m(int i); }; // B1.cpp #include "B1.h" B1::B1(A *a) : B(a) {…} void B1::m(int i) { getMiA()->setAttr(i); } // B2.h #include "B.h" class B2 : public B { public: B2(A *a); void m(int i); }; // B2.cpp #include "B2.h" B2::B2(A *a) : B(a) {…} void B2::m(int i) { getMiA()->setAttr(i*2); } Programación Avanzada - Curso 2017 Ejercicio: Pasaje de Diseño a Implementación

Ejercicio (9) Parte c) Considerando el siguiente snapshot, de la secuencia de métodos que se ejecutarán para la invocación a.f(“pp”, 4) Discutir según el valor de los atributos. a : A e1 : B1 e2: B2 Programación Avanzada - Curso 2017 Ejercicio: Pasaje de Diseño a Implementación

Ejercicio (10) A.f(string, int) B.m(string) B1.m(int) A.setAttr(int) B.isX() Si isX() retorna true se ejecuta A.setAttr() B.m(String) B2.m(int) Programación Avanzada - Curso 2017 Ejercicio: Pasaje de Diseño a Implementación