Tratamientos secuenciales I Práctica 9 Tratamientos secuenciales I Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.0
Estructura lógica Elementos en un tratamiento secuencial Acumulador: variable que acumula el resultado calculado hasta ese momento. Se inicializa al valor adecuado para la secuencia o el agregado vacío y es del tipo del resultado que queramos calcular. Filtro: expresión lógica sin efectos laterales que nos sirve para escoger los elementos del agregado sobre los que vamos a hacer el cálculo. Expresión: expresión que a partir de cada objeto del agregado calcula el valor que se va acumulando.
Operaciones aritméticas Sumatorio Operador: + Elemento Neutro: 0 ESQUEMA: Double suma = 0.0; for(T o: it){ if(…){ suma = suma + … ; } return suma;
Operaciones aritméticas Producto Operador: * Elemento Neutro: 1 ESQUEMA: Double prod = 1.0; for(T o: it){ if(…){ prod = prod * … ; } return prod;
Preguntas sobre propiedades ¿para todo …? VERSIÓN EFICIENTE ESQUEMA: Boolean r = true; for(T o: it){ if(…){ r = r && … ; break; } return r;
Preguntas sobre propiedades ¿existe …? VERSIÓN EFICIENTE ESQUEMA: Boolean r = false; for(T o: it){ if(…){ r = r || … ; break; } return r;
(análogo para el mínimo) Máximos, mínimos máximo vs. mínimo: Elemento neutro: null Operador: operación comparación 2 a 2 ESQUEMA: T a=null; for(T e:it) //a = (a==null? e: Utiles.max(e,a)); if(a==null) a = e; else a = Utiles.max(e,a); return a; (análogo para el mínimo)
Búsquedas Búsqueda Operador: = Elemento Neutro: -- T b = null; ESQUEMA: T b = null; for(T e: it){ if(...){ b=e; break; } return b;
Filtrados Filtrado Operador: add Elemento Neutro: -- ESQUEMA: List<T> f = new ArrayList<T>(); for(T e: it){ if(…){ f.add(e); } return f;
Modificación Modificación Operador: -- Elemento Neutro: -- ESQUEMA: for(T e: it){ if(…){ //realiza la modificación sobre e } return f;