Tratamientos Secuenciales Generalizados I Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 18 Versión 1.0.0.

Slides:



Advertisements
Presentaciones similares
Estructuras de Repetición Algoritmos
Advertisements

EN EXCEL SE PUEDE REALIZAR FILTROS EN CUYO FIN ES UNA FORMA RAPIDA Y FACIL DE BUSCAR UN SUBCONJUNTO EN SUB TOTALES SON CON UNA FUNCION DE RESUMEN COMO.
Aprendizaje de Microsoft® Access® 2010
Arquitectura CLARO-TECNOTREE
Notación Científica y Potencia de 10
Maestría en Bioinformática Bases de Datos y Sistemas de Información Fundamentos de Matemática Ing. Alfonso Vicente, PMP
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Tema 6: Clases Antonio J. Sierra.
ESTRUCTURAS DE CONTROL
Programación de Computadores

Capítulo 1 “Elementos de Programación”
Reconocimiento y resolución de ecuaciones impresas Luis Fernández Pérez Marco Antonio Formoso Trigo.
Recurrencia Programación II de enero de 2009.
ANUALIDADES ORDINARIAS (VENCIDAS) Y ANTICIPADAS
Ecuaciones logarítmicas y exponenciales
Procesamiento Digital de Imágenes
Cálculo de extremos de funciones de R n –> R : Supongamos que queremos calcular un extremo de una función f de R n –> R: donde.
ESTRUCTURAS REPETITIVAS EJEMPLOS
Fundamentos de Programación
1 Curso avanzado de programación Sesión 1. 2 aleatorio() funciones aleatorias si... entonces...
Matrices Pág. 1. Matrices Pág. 2 Se llama matriz traspuesta de A, y se representa por A t a la matriz que resulta de intercambiar las filas y las columnas.
Evaluación Cognitiva Montreal (MoCA)
¿Cómo programar un Botón para agregar registros a una base de datos?
TEMA 5 OBJETIVOS Datos que se recogen a través de estudios cuidadosamente planeados La selección de métodos que existen: entrevista, observación y cuestionarios.
Ing. Haydeli del Rosario Roa Lopez
Instituto de Nivel Terciario Profesor: ¨Eduardo A. Fracchia¨ Integrantes: Marianela Ramírez. Uliambre Carlos. Farana Marisel. Integrantes: Marianela Ramírez.
Expositor Lic. José Aragón Tapia. Introducción a la programación. Datos y expresiones, Operadores. Algoritmos, concepto, características. Definición de.
Tratamientos Secuenciales Generalizados II Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 19 Versión
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS ORGANIZACIÓN.
Fórmulas y Funciones en Excel CLASE 5. Agenda de la clase: 1. Objetivos de la clase.2. Inserción de formulas.3. Referencia de celdas: relativas.
Page 1 Ciclo de Estructuras de Repetición Carlos Bautista García Unidad VI PROG 2270L.
Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
Sólido de revolución INTEGRALES DEFINIDAS.
LÓGICA COMPUTACIONAL Y PROGRAMACIÓN PROPÓSITO INTRODUCCIÓN USO DE LA PROGRAMACIÓN Programación Lenguajes de Programación Sistema Operativo Elementos para.
Factorías e Iterables Introducción del concepto de patrón de diseño Construcción de tipos para recorridos con for extendido Fundamentos de Programación.
Unidad 6 Polimorfismo.
Inecuaciones lineales o inecuaciones de primer grado
Clase II Estructuras dinámicas (TAD) Listas Enlazadas. ¿A que llamamos estructuras dinámicas? ¿Por qué son necesarias? Ventajas y Desventajas que tendremos.
Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
1 Clase 4: primeros programas (2ª parte) iic1102 – introducción a la programación.
Simón G Gálvez. Las técnicas de estudio o estrategias de estudio son distintas perspectivas aplicadas al aprendizaje. Generalmente son críticas para alcanzar.
Las interfaces Predicate y Function Versión Unidad Didáctica 17 Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
Excepciones Diseño y manejo de excepciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 5 Versión
Redacción administrativa nivel I “Hice esta carta más larga que de costumbre sólo porque no tuve tiempo de hacerla más corta” Blas Pascal.
Clase 1.  Un programador es aquella persona que escribe, depura y mantiene el código fuente de un programa informático, es decir, del conjunto de instrucciones.
Diseño de tipos Igualdad, representación, código, copia y relación de orden Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
CLASE 4 - BLOGS Y HTML GRADO DÉCIMO. ¿QUÉ ES HTML? ¿Qué es HTML? El HTML es el lenguaje que se usa para escribir las páginas web. Con este lenguaje se.
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
1 Clase 6: control (1ª parte) iic1102 – introducción a la programación.
LA METODOLOGIA BOX-JENKINS
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
METODOS DE PROGRAMACION I Ing. Vania Flores Pinto.
Criterios de ordenación y Guava Comparator, Comparable y Ordering Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión.
ALUMNO ALUMNO: DIEGO URES LEGAJO LEGAJO: La prueba unitaria es la herramienta para la Calidad Presentación Trabajo Final de Grado.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 7 – Funciones y Procedimientos.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
@ Angel Prieto BenitoApuntes 2º Bachillerato C.S.1 PROGRAMACIÓN LINEAL U.D. 5 * 2º BCS.
Introducción a programación web Martin Esses. En las presentaciones anteriores, vimos como enviar datos a un controlador usando POST y como generar formularios.
Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos Fundamentos de Programación Departamento.
@ Angel Prieto BenitoApuntes 2º Bachillerato C.S.1 PROGRAMACIÓN LINEAL U.D. 5 * 2º BCS.
Ciclos condicionales y exactos Estructura de control de ciclos
DML Transact SQL Sesión III Agrupando y resumiendo información.
Funciones y paso de parámetros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Unidad Didáctica 24.
Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión.
FRANCISCO TOMÁS GARCÍA MUNGUÍA JONAY EFREN LÓPEZ PÉREZ ITDSI , 03 de mayo de 2016.
1 Clase 5: primeros programas (3ª parte) iic1102 – introducción a la programación.
1 Clase 13: interacción entre clases (1ª parte) iic1102 – introducción a la programación.
Transcripción de la presentación:

Tratamientos Secuenciales Generalizados I Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 18 Versión 1.0.0

UD18: Tratamientos Secuenciales Generalizados I Índice 1. Objetivo: generalización de código: librerías de código 2. Metodología: resolución mediante llamadas a librerías 3. Estudio de los métodos correspondientes a los Tratamientos Secuenciales mediante las librerías de Guava Clase Iterables: 1. paraTodo: all 2. existe: any 3. filtrado: filter 4. búsqueda: find

UD18: Tratamientos Secuenciales Generalizados I Objetivo Elevamos el nivel de abstracción programando de la forma más general posible de manera que nuestro código será:  más reutilizable  más sencillo de programar  y sobre todo: MÁS SEGURO Cada tratamiento secuencial visto se puede generalizar y ser válido para cualquier problema. De esta forma podemos crearnos librerías de código. Una vez hecho esto, las respuestas a nuestros problemas serán simples llamadas a dichas librerías.

UD18: Tratamientos Secuenciales Generalizados I Metodología Por ejemplo, sabemos ya cómo hacer una sumatorio:  p.e.: suma los elementos pares de una lista  ¿cómo hacemos una versión más general? (condición de filtrado del problema) (cálculo de lo que sumo para cada elemento) (elemento que se recorre)

UD18: Tratamientos Secuenciales Generalizados I Metodología Versión generalizada para un sumatorio: IDEAS: 1. Uso de tipos genéricos 2. Encapsulación 3. Herencia 4. Uso de Iterables y for extendido

UD18: Tratamientos Secuenciales Generalizados I Metodología IDEAS: 1. Trabajamos con tipos genéricos 2. Mediante la encapsulación suministramos como dato del problema: 1. Condición de filtrado: suministramos objeto de tipo Predicate 2. Calculo del problema: suministramos objeto de tipo Function 3. Mediante la herencia hacemos que el método valga para List, Set, etc, es decir: para cualquier Iterable 4. Ocultamos los detalles del recorrido dentro del objeto a recorrer y de esta forma podemos abstraernos del cómo se recorre (uso de Iterable y for extendido)

UD18: Tratamientos Secuenciales Generalizados I Metodología uso de tipos genéricosherencia encapsulación uso Iterable (for extendido)

UD18: Tratamientos Secuenciales Generalizados I Metodología El método anterior lo programamos en una clase como un método static (por ejemplo en una clase auxiliar IterablesAlumno) y cuando tengamos que resolver un problema en el que intervenga una suma simplemente haremos una llamada: IterablesAlumno.sumatorio(--, --, --) Ejemplo: ¿cuánto vale la suma de los valores pares de una lista de enteros? Se resuelve con una simple llamada:  código más rápido de programar  código más seguro (muy difícil cometer errores)

UD18: Tratamientos Secuenciales Generalizados I Metodología Hace falta tener programados previamente el Predicado y la Función. (Generalmente estarán ya hechos si hemos trabajado previamente en el problema)

UD18: Tratamientos Secuenciales Generalizados I Metodología 1º) Dado un conjunto de puntos, calcular la distancia media al origen de todos aquellos puntos que se encuentren en el primer cuadrante (de la forma nueva) (como lo hacíamos antes) (en este código programado usando un for y sin usar llamadas a librerías de código hay un fallo: ¿sabrías decir cuál es?)

UD18: Tratamientos Secuenciales Generalizados I Metodología Hace falta tener programados previamente el Predicado y la Función

UD18: Tratamientos Secuenciales Generalizados I Tratamientos Secuenciales con Guava Metodología de programación: nos basaremos en llamadas a funcionalidades previamente establecidas, i.e., uso de librerías. 1. Librerías programadas por nosotros como el sumatorio 2. Uso de librerías ya establecidas: Las librerías de Guava son una serie de librerías de Java creadas por Google para trabajar con problemas de Colecciones, de concurrencia, etc.

UD18: Tratamientos Secuenciales Generalizados I Tratamientos Secuenciales con Guava código generado por nosotros código de la API de Java código de las librerías de Guava

UD18: Tratamientos Secuenciales Generalizados I Tratamientos Secuenciales con Guava Aquí se puede leer la documentación (javadocs)

UD18: Tratamientos Secuenciales Generalizados I Tratamientos Secuenciales con Guava paraTodo: ¿todo elemento verifica la propiedad? En la clase Iterables ( com.google.common.collect ) encontramos método all: dado un Iterable y un predicado, devuelve true si todo elemento del Iterable cumple dicho predicado. Iterables.all(--,--)

UD18: Tratamientos Secuenciales Generalizados I Tratamientos Secuenciales: Iterables paraTodo: (Ejemplo) Dado un conjunto de puntos, ¿todos los puntos se encuentran en el primer cuadrante? (en este código programado usando un for y sin usar llamadas a librerías de código hay un fallo: ¿sabrías decir cuál es?)

UD18: Tratamientos Secuenciales Generalizados I Tratamientos Secuenciales con Guava

UD18: Tratamientos Secuenciales Generalizados I Tratamientos Secuenciales con Guava existe: ¿existe algún elemento que verifica la propiedad? En la clase Iterables ( com.google.common.collect ) encontramos método any: dado un Iterable y un predicado, devuelve true si al menos un elemento del Iterable cumple dicho predicado. Iterables.any(--,--)

UD18: Tratamientos Secuenciales Generalizados I Tratamientos Secuenciales con Guava existe: (Ejemplo) Dado un conjunto de puntos, ¿hay alguno en alguna de las bisectrices?

UD18: Tratamientos Secuenciales Generalizados I Tratamientos Secuenciales con Guava Nota: este predicado ya ha sido utilizado antes (como ya está hecho no hace falta repetirlo)

UD18: Tratamientos Secuenciales Generalizados I Tratamientos Secuenciales con Guava filtrado: generar un nuevo Iterable con aquellos elementos que verifiquen una propiedad En la clase Iterables ( com.google.common.collect ) encontramos método filter: devuelve aquellos elementos del Iterable de entrada que cumplen la propiedad que encapsula el predicado Iterables.filter(--,--)

UD18: Tratamientos Secuenciales Generalizados I Tratamientos Secuenciales con Guava filtrado: (Ejemplo) Dado un conjunto de puntos, devolver todos aquellos puntos que se encuentren en las bisectrices. Nota: este predicado ya ha sido utilizado antes

UD18: Tratamientos Secuenciales Generalizados I Tratamientos Secuenciales con Guava búsqueda: busca elementos que verifican una determinada propiedad método find: devuelve el primer elemento que verifica la propiedad. En caso de no existir se eleva la excepción: NoSuchelementException Iterables.find(--,--) (segunda versión: da un valor por defecto y si no existe el elemento devuelve dicho valor)

UD18: Tratamientos Secuenciales Generalizados I Tratamientos Secuenciales con Guava búsqueda: (Ejemplo) Dado un conjunto de puntos, encontrar el primer punto en orden de aparición que esté en la bisectriz Nota: este predicado ya ha sido utilizado antes