Defina una clase TempMinEstacion que encapsule la representación de las temperaturas mínimas registradas en una estación meteorológica en un período y.

Slides:



Advertisements
Presentaciones similares
Arreglos.
Advertisements

Introducción a la Programación 8. Datos Numéricos.
Definición de Clases y Variables de referencia.
Introducción a la Programación Orientada a Objetos Una Universidad administra varias residencias para estudiantes extranjeros. Cada residencia ocupa un.
Tipos de Datos Abstractos Vector de Racionales
El proceso de desarrollo de software
Recorridos Iterativos y Recursivos
Abstracciones y Modelos
Reusabilidad La productividad está basada en reusabilidad y extensibilidad El reusabilidad permite desarrollar nuevas aplicaciones a partir de componentes.
Defina una clase TempMinMaxEst que encapsule la representación de las temperaturas mínimas y máximas registradas en una estación meteorológica y brinde.
El proceso de desarrollo de software
Relaciones entre Clases La construcción de un sistema de software orientado a objetos consiste en definir un conjunto de clases relacionadas entre sí.
Encapsulamiento y Abstracción
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.
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 Los datos de aplicaciones muy diferentes puede modelarse con frecuencia a partir de tipos de datos cuyas operaciones no dependen del tipo de.
Vectores en java.
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Programación Orientada a Objetos usando C++
Introducción a clases Programación Orientada a Objetos.
SCJP Sun Certified Programmer for Java 6
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Programación III Clase 08 Arreglos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
METODOLOGÍA DE LA PROGRAMACIÓN
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
PROGRAMACIÓN ORIENTADA A OBJETOS USANDO C++
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Clases.
Programación Orientada Objetos
Introducción a la Programación Orientada a Objetos VRacional Racional [] arreglo > VRacional (max : entero) > establecerElem (pos : entero, elem : Racional)
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Genericidad.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tabla.
Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de ahorro bancaria definimos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Colección.
Detalles Generales sobre Java
Introducción a la Programación Orientada a Objetos Una clase que modela los atributos y el comportamiento de una colección de objetos, define un tipo de.
Curso de Java Introducción al Paradigma Orientado a Objetos Prof. Ing. Guido Acosta.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
Arreglos unidimensionales
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Polimorfismo.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Abstracción.
Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz Implementar un TDA Matriz que brinde operaciones para calcular.
Abstracción El concepto de abstracción es esencial en ciencias de la computación. Un programa es en sí mismo una abstracción, un modelo de la resolución.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
Arreglos Ejemplo paso a paso. Planteamiento Como estudiante de ingeniería, quieres usar tus habilidades de programador para llevar un registro de tus.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Asociación.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
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.
Arrays, Cadenas y Vectores Tipos Genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 5 Versión
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
IPOO 2 cuatrimestre 2015 Departamento de Ciencias e Ingeniería
IPOO 2 cuatrimestre 2015 Departamento de Ciencias e Ingeniería
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
IPOO 2 cuatrimestre Departamento de Ciencias e Ingeniería
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
IPOO 2 cuatrimestre Departamento de Ciencias e Ingeniería
Transcripción de la presentación:

Defina una clase TempMinEstacion que encapsule la representación de las temperaturas mínimas registradas en una estación meteorológica en un período y brinde operaciones para: Retornar la mayor temperatura registrada Calcular el promedio de las temperaturas Contar en cuántos días heló Decidir si hubo heladas Si se registran las temperaturas mínimas para n días, el primer día se nombra como 0 y el último como n-1 Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas Encapsulamiento

Representaremos las temperaturas mínimas del período mediante un arreglo de números reales. El arreglo está encapsulado en una clase TempMinEstacion, todo el acceso a la estructura se hace dentro de la clase. Las clases clientes no conocen la representación de los datos. Las operaciones visibles permiten calcular el promedio, la cantidad de heladas, etc. Los cambios en la representación no afectan a las clases clientes, en tanto no cambien las operaciones. Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas Encapsulamiento

TempMinEstacion float [] S > TempMinEstacion (cant : entero) > establecerTempMin (d : entero t : real) Crea una estructura para mantener las temperaturas de cant d í as Observemos que el valor 0 representa una temperatura válida. Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas Encapsulamiento Requiere un valor válido para d

TempMinEstacion float [] S > obtenerTempMin(d : entero):real cantDias () : entero mayorTempMin () : real promedioTempMin () : real cantHeladas() : entero huboHeladas () : boolean Cuenta la cantidad de d í as que hel ó Decide si hubo heladas Calcula el mayor valor Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas Encapsulamiento Requiere un valor válido para d

class TempMinEstacion { private float [] tMin; //Constructor // Crea una estructura para mantener las temperaturas // de cierta cantidad de días y las inicializa en 0 public TempMinEstacion(int cant) { tMin= new float[cant]; inicializarTemp(); }... } Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas Encapsulamiento

class TempMinEstacion { private float [] tMin; //Comandos private void inicializarTemp(){ for (int i=0;i<tMin.length;i++) tMin[i]=0; }... } Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas Encapsulamiento

Algoritmo promedioTempMin DS: promedio de las temperaturas promedio = 0 Para cada dia promedio = promedio + temperatura de ese dia promedio = promedio / cantDias Devolver promedio Introducción a la Programación Orientada a Objetos

class TempMinEstacion { private float [] tMin;... // Consultas public float promedioTempMin(){ //… float prom=0, suma=0; for (int i=0;i<tMin.length;i++) suma=suma+tMin[i]; prom=suma/tMin.length; return prom; } … } Caso de Estudio: Temperaturas Mínimas Encapsulamiento Recorrido Exhaustivo Introducción a la Programación Orientada a Objetos

Caso de Estudio: Temperaturas Mínimas Encapsulamiento Algoritmo mayorTempMin DS: mayor temperatura min mayor = temp del primer dia Para cada dia a partir del segundo dia Si la temp del dia actual > mayor mayor = temp del dia actual Devolver mayor Introducción a la Programación Orientada a Objetos

class TempMinEstacion { private float [] tMin;... // Consultas public float mayorTempMin(){ //… float mayor=tMin[0]; for (int i=1;i<tMin.length;i++){ if (tMin[i]>mayor) mayor=tMin[i]; } return mayor; } … } Caso de Estudio: Temperaturas Mínimas Encapsulamiento Verificar considerando que la mayor temperatura sea la primera y la última Introducción a la Programación Orientada a Objetos

Caso de Estudio: Temperaturas Mínimas Encapsulamiento Algoritmo cantHeladas DS: Cantidad de heladas cant = 0 Para cada dia Si la temperatura del dia < 0 cant = cant +1 Devolver cant Introducción a la Programación Orientada a Objetos

class TempMinEstacion { private float [] tMin;... // Consultas public int cantHeladas(){ //… int cant=0; for (int i=0;i<tMin.length;i++) if (tMin[i]<0) cant++; return cant; } … } Caso de Estudio: Temperaturas Mínimas Encapsulamiento Verificar considerando que no haya heladas, que todos los días sean heladas, que el primer día haya helado, que el último haya helado

Caso de Estudio: Temperaturas Mínimas Encapsulamiento Algoritmo huboHeladas DS: Verdadero si hubo heladas, falso en caso contrario hayHelada = falso Para cada dia mientras NO hayHelada hayHelada = temperatura del dia < 0 Devolver hay Introducción a la Programación Orientada a Objetos

class TempMinEstacion { private float [] tMin;... // Consultas public boolean huboHeladas(){ //… boolean encontre=false; int i=0; while ((i<tMin.length) && (!encontre)) if (tMin[i]<0)encontre=true; else i++; return encontre; } … } Caso de Estudio: Temperaturas Mínimas Encapsulamiento Verificar considerando que no haya heladas, que todos los días sean heladas, que el primer día haya helado, que sólo el último haya helado Recorrido NO Exhaustivo Introducción a la Programación Orientada a Objetos

El arreglo queda encapsulado en una clase, todo el acceso desde la clase cliente se realiza a través de los servicios ofrecidos por la clase proveedora. El primer día se denota con 0. La estructura está completa y la cantidad de elementos se define en el momento de la creación Todos los elementos ya están ingresados cuando empieza el procesamiento La entrada y salida se realiza desde la clase cliente. Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas Encapsulamiento

Diseñe e implemente una clase tester que brinde un servicio para leer las temperaturas y para probar la funcionalidad de la clase TempMinEstacion Caso de Estudio: Temperaturas Mínimas Tester En la página de la materia está disponible una clase tester parcial, queda como ejercicio completarla con casos de prueba adecuados para cada servicios. Introducción a la Programación Orientada a Objetos

class TestTempMinEstacion { public static void main(String[] args) { // Tester para una semana int cant =7; TempMinEstacion est; est = leerTempMinEst(cant) ; System.out.println("Muestra la estación "); mostrarTempMinEst(est) ; System.out.println("Promedio Estación + est.promedioTempMin() ); … } Caso de Estudio: Temperaturas Mínimas Tester Introducción a la Programación Orientada a Objetos

class TestTempMinEstacion { public static TempMinEstacion leerTempMinEst(int cant) { float t ; TempMinEstacion e= new TempMinEstacion(cant); for (int i=0;i< e.cantDias();i++){ System.out.println( "Ingrese la temperatura del día "+i); t = ES.leerFloat(); e.establecerTempMin (i,t) ; }; return e; } Caso de Estudio: Temperaturas Mínimas Tester Introducción a la Programación Orientada a Objetos

class TestTempMinEstacion { public static TempMinEstacion leerTempMinEst(int cant) { float t ; TempMinEstacion e= new TempMinEstacion(cant); … return e; } Caso de Estudio: Temperaturas Mínimas Tester Introducción a la Programación Orientada a Objetos e tMin 7 length

class TestTempMinEstacion { public static void mostrarTempMinEst (TempMinEstacion e){ for (int i=0;i< e.cantDias(); i++) System.out.println(" "+e.obtenerTempMin(i) ); } Caso de Estudio: Temperaturas Mínimas Tester Introducción a la Programación Orientada a Objetos

TempMinEstacion float [] tMin > establecerTempMin (dia : entero t : real) > obtenerTempMin(dia : entero):real Introducción a la Programación Orientada a Objetos Requiere que dia sea válido La clase cliente es responsable de asegurar que dia esté dentro del período Caso de Estudio: Temperaturas Mínimas

class TempMinEstacion { private float [] tMin; //Comandos public void establecerTempMin(int dia, float t){ /*Requiere que dia sea consistente con la cantidad de días del período*/ tMin[dia]=t; } … } Caso de Estudio: Temperaturas Mínimas Responsabilidades Introducción a la Programación Orientada a Objetos

class TempMinEstacion { private float [] tMin; // Consultas public float obtenerTempMin(int dia){ float t){ /*Requiere que dia sea consistente con la cantidad de días del período*/ return tMin[dia]; } public int cantDias(){ return tMin.length; } … } Caso de Estudio: Temperaturas Mínimas Responsabilidades Introducción a la Programación Orientada a Objetos

Defina una clase TempMinEstacion que encapsule la representación de las temperaturas mínimas registradas en una estación meteorológica en un período y brinde operaciones para: Retornar la mayor temperatura registrada Calcular el promedio de las temperaturas Contar en cuántos días heló Decidir si hubo heladas Retornar la primera temperatura mayor a una dada; si no existe devolver el mismo valor recibido. Retornar el número de día que corresponde a la primera helada del período, si no heló retorna 0. Si se registran las temperaturas mínimas para n días, el primer día se nombra como 0 y el último como n-1 Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas Encapsulamiento

TempMinEstacion float [] tMin > primerMayor(t:real): real diaPrimerMayor(t:real): entero Introducción a la Programación Orientada a Objetos Retorna la primera temperatura mayor a t o t Retorna el día en el que se produjo la primera tempertatura mayor a t Si no hubo ninguna retorna -1 Caso de Estudio: Temperaturas Mínimas Responsabilidades

TempMinEstacion float [] tMin > contarMayores(t:real):entero huboMasNMayores(t:real,n:entero) :boolean huboNmayores(t:real,n:entero) :boolean Cuenta la cantidad de días en las que las temperaturas fueron mayores a t. Introducción a la Programación Orientada a Objetos Decide si hubo al menos n días con temperaturas mayores a t. Caso de Estudio: Temperaturas Mínimas Decide si hubo exactamente n días con temperaturas mayores a t.

TempMinEstacion float [] tMin > huboNConMayores(t:real,n:entero) :boolean periodoMasLargo(t:real):entero Decide si hubo al menos n días consecutivos con temperaturas mayores a t. Computa la cantidad de días del período más largo con temperaturas mayores a t en días consecutivos. Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas

Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas si t=5.5 debe computar 2 si t=15 debe computar 0 si t=-5 debe computar 6 public int contarMayores(float t){ //Cuenta las temperaturas mayores a t } Dado el siguiente registro de temperaturas

Caso de Estudio: Temperaturas Mínimas Algoritmo contarMayores DE: temp DS: cant de dia donde la temperatura > temp cant =0 Para cada dia Si temperatura del dia actual > temp cant = cant +1 Devolver cant Introducción a la Programación Orientada a Objetos

public int contarMayores(float t){ //Cuenta las temperaturas mayores a t int cont = 0; for (int i=0;i<cantDias();i++) if (tMin[i] > t) cont++; return cont; } Recorrido exhaustivo Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas t= Algunos Casos de Prueba

Caso de Estudio: Temperaturas Mínimas Algoritmo huboMasNMayores DE: temp, N DS: Verdadero si hubo, falso en caso contrario cant = 0 Para cada dia mientras que cant < N Si temperatura del dia actual > temp cant = cant +1 Devolver cant Introducción a la Programación Orientada a Objetos

public boolean huboMasNMayores(float t,int n){ /*Decide si hubo al menos n temperaturas mayores a t*/ int cont = 0; for (int i=0;i<cantDias()&&cont < n;i++) if (tMin[i] > t) cont++; return cont==n; } Recorrido no exhaustivo Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas t=5.5 n= Algunos Casos de Prueba

Caso de Estudio: Temperaturas Mínimas Algoritmo huboNMayores DE: temp, N DS: Verdadero si hubo, falso en caso contrario cant = 0 Para cada dia mientras que cant <= N Si temperatura del dia actual > temp cant = cant +1 Devolver (cant == N) Introducción a la Programación Orientada a Objetos

public boolean huboNMayores(float t,int n){ /*Decide si hubo exactamente n temperaturas mayores a t*/ int cont = 0; for (int i=0;i<cantDias() && cont<n+1;i++) if (tMin[i] > t) cont++; return cont==n; } Recorrido no exhaustivo Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas t=5.5 n=3 Cuando cont toma valor 4 termina la iteración

Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas si t=5.5 y n = 2 debe computar true si t=5.5 y n = 3 debe computar false si t=-5 y n = 10 debe computar false Dado el siguiente registro de temperaturas public boolean huboNConMayores(float t,int n){ /*Decide si hubo al menos n temperaturas consecutivas mayores a t*/ }

Caso de Estudio: Temperaturas Mínimas Algoritmo huboNConMayores DE: temp, N DS: Verdadero si hubo, falso en caso contrario cont = 0 Para cada dia mientras que cont < N Si temperatura del dia actual > temp cont = cont + 1 Sino cont = 0 Devolver cont == N Introducción a la Programación Orientada a Objetos

public boolean huboNConMayores(float t,int n){ /*Decide si hubo al menos n temperaturas consecutivas mayores a t*/ int cont = 0; for (int i=0;i<cantDias()&&cont < n;i++) if (tMin[i] > t) cont++; else cont = 0; return cont==n; } Recorrido no exhaustivo Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas Establecer Casos de Prueba considerando especialmente que las n temperaturas mayores a t estén en las primeras posiciones o en las últimas de la estructura.

TempMinEstacion float [] tMin > mayorAmplitud():real huboMayorAmplitud(t:real):boolean todasAmplitudesCrecientes():boolean Decide si hubo alguna amplitud térmica entre días consecutivos, mayor a t Retorna la mayor amplitud térmica entre 2 días consecutivos, asume que se registraron por lo menos dos días Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas Decide si todas las amplitudes térmicas entre días consecutivos son crecientes Establecer Casos de Prueba para cada servicio

Caso de Estudio: Temperaturas Mínimas Algoritmo mayorAmplitud Requiere: periodo de al menos 2 dias DS: Devuelve la mayor amplitud mayor = |T 0 – T 1 | Para cada dia entre el segundo y el ante ultimo Si |T i – T i+1 | > mayor mayor = |T i – T i+1 | Devolver mayor Introducción a la Programación Orientada a Objetos

public float mayorAmplitud(){ //Requiere un período de al menos 2 dias float may=Math.abs(tMin[0]-tMin[1]); for (int i=1;i<cantDias()-1; i++) if (Math.abs(tMin[i]-tMin[i+1]) > may) may = Math.abs(tMin[i]-tMin[i+1]); return may; } Recorrido Exhaustivo Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas

Algoritmo todasAmplitudesCrecientes Requiere: periodo de al menos 2 dias DS: Verdadero si son crecientes, falso caso contrario todasCreci = verdadero ampAnterior = |T 0 – T 1 | Para cada dia excepto el ultimo mientras todasCreci ampActual = |T i – T i+1 | todasCreci = ampAnterior < ampActual ampAnterior = ampActual Devolver todasCreci Introducción a la Programación Orientada a Objetos

public boolean todasAmplitudesCrecientes(){ //Requiere un período de al menos 2 dias boolean todas= true; float a1=Math.abs(tMin[0]-tMin[1]); for (int i=1;i<cantDias()-1 && todas;i++){ float a2 = Math.abs(tMin[i]-tMin[i+1]); todas = a1 < a2; a1 = a2; } return todas; } Recorrido NO Exhaustivo Introducción a la Programación Orientada a Objetos Caso de Estudio: Temperaturas Mínimas

TempMinEstacion float [] tMin > mayoresDiferencias (tme:TempMinEstacion, t:real ) : entero hayDiferenciaMayor (tme:TempMinEstacion, t: real) : boolean mayorDiferencia (tme:TempMinEstacion ) :real menorEntreEstaciones (tme:TempMinEstacion): TempMinEstacion Cuenta en cuántos días la diferencia absoluta entre las temperaturas de las dos estaciones es mayor a t Decide si en dos estaciones en algún día la diferencia absoluta entre temperaturas es mayor a t Retorna la mayor diferencia absoluta entre dos estaciones en el mismo día, asume que se registraron por lo menos dos días Retorna una Estación con la menor temperatura mínima de cada día entre dos estaciones dadas Requieren la misma cantidad de temperaturas en las dos estaciones Caso de Estudio: Temperaturas Mínimas Reciben y/o retornan un objeto de la clase TempMinEstacion

Caso de Estudio: Temperaturas Mínimas para cada día d del período t1 temperatura del día d de Estación 1 la estación que recibe el mensaje t2 temperatura del día d de Estación 2 la estación que pasa como parámetro si abs(t1-t2) > t cont cont

Caso de Estudio: Temperaturas Mínimas para cada día d del período t1 tMin[d] t2 tme.obtenerTempMin(d) si abs(t1-t2) > t cont cont tMin es un arreglo las componentes se acceden usando un subíndice. tme es un objeto de clase TempMinEstacion, las componentes se acceden con los servicios provistos por la clase

public int mayoresDiferencias(TempMinEstacion tme, float t ){ /*Cuenta en cuantos días la diferencia absoluta entre las temperaturas de las dos estaciones es mayor a t Requiere la misma cantidad de temperaturas en las dos estaciones*/ int cont = 0; float t1,t2; for (int d = 0; d<cantDias() ; d++){ t1=tMin[d]; t2 = tme.obtenerTempMin(d); if(Math.abs(t1-t2)> t) cont++; } return cont; } Caso de Estudio: Temperaturas Mínimas

public int mayoresDiferencias(TempMinEstacion tme, float t ){ /* Cuenta en cuantos días la diferencia absoluta entre las temperaturas de las dos estaciones es mayor a t Requiere la misma cantidad de temperaturas en las dos estaciones */ int cont = 0; for (int d = 0; d<cantDias() ; d++) if(Math.abs(tMin[d]-tme.obtenerTempMin(d))> t) cont++; return cont; } Caso de Estudio: Temperaturas Mínimas Observe que si la clase cliente no cumple con la responsabilidad de que las dos estaciones tengan la misma cantidad de elementos se va a producir un error de aplicación o de ejecución (si la cantidad de días de tme es menor que cantDias()).

tMin length tMin length tme Caso de Estudio: Temperaturas Mínimas estN estS

public boolean hayDiferenciaMayor(TempMinEstacion tme, float t ){ /*Decide si en dos estaciones en algún día la diferencia absoluta entre temperaturas es > t Requiere la misma cantidad de temperaturas en las dos estaciones */ boolean hay = false; for (int d = 0; d<cantDias() && !hay; d++) if(Math.abs(tMin[d]-tme.obtenerTempMin(d))> t) hay = true; return hay; } Caso de Estudio: Temperaturas Mínimas

public float mayorDiferencia (TempMinEstacion tme){ /*Retorna la mayor diferencia absoluta entre dos estaciones, en el mismo día asume que se registraron por lo menos dos días Requiere la misma cantidad de temperaturas en las dos estaciones */ float mayor = 0; for (int d = 0; d<cantDias(); d++) if(Math.abs(tMin[d]-tme.obtenerTempMin(d))> mayor) mayor = Math.abs(tMin[d]-tme.obtenerTempMin(d)); return mayor; } Caso de Estudio: Temperaturas Mínimas

public TempMinEstacion menorEntreEstaciones(TempMinEstacion tme){ /* Retorna una Estación con la menor temperatura mínima de cada día entre dos estaciones dadas Requiere la misma cantidad de temperaturas en las dos estaciones*/ TempMinEstacion tMenor = new TempMinEstacion(cantDias()); for (int d = 0; d<cantDias() ; d++) if(tMin[d]<tme.obtenerTempMin(d)) tMenor.establecerTempMin(d,tMin[d]); else tMenor.establecerTempMin(d,tme.obtenerTempMin(d)); return tMenor; } Caso de Estudio: Temperaturas Mínimas