Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero...

15
Prác%ca 7.1. Paquetes. Señales movimiento ondulatorio Programación en Lenguaje Java Michael González Harbour Mario Aldea Rivas Departamento de Matemá.cas, Estadís.ca y Computación Este tema se publica bajo Licencia: Crea.ve Commons BYNCSA 4.0

Transcript of Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero...

Page 1: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

Prác%ca  7.1.  Paquetes.  Señales  movimiento  ondulatorio  

Programación  en  Lenguaje  Java  

Michael  González  Harbour  

Mario  Aldea  Rivas  

Departamento  de  Matemá.cas,  Estadís.ca  y  Computación  

Este  tema  se  publica  bajo  Licencia:  Crea.ve  Commons  BY-­‐NC-­‐SA  4.0  

Page 2: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

1

torio

.mentación de las clases.

icos.

www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15UNIVERSIDADDE CANTABRIA

Práctica 7-1: Paquetes. Señales movimiento ondula

Objetivos• Practicar la creación y uso de paquetes Java• Practicar la escritura y generación de la docu• Practicar los recorridos en arrays.• Practicar la escritura y uso de métodos estát

Page 3: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

2

os que aparece a conti-

nhales. paquete.

l paquete desarrollado.

www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15UNIVERSIDADDE CANTABRIA

Desarrollo

Tomando como base el documento de requisitnuación:1. Finalizar la implementación del paquete se2. Generar la documentación de javadoc del3. Encapsular el paquete en un jar.4. Escribir un programa sencillo de prueba de

Page 4: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

3

rumento electrónico ca-ónico simple de un

tra la elongación del el dispositivo no es per-

uestra una señal sinusoi-or segundo y genera un orrespondientes a un in-ura muestra un ejemplo segundos

www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15UNIVERSIDADDE CANTABRIA

Documento de requisitos

Un laboratorio de mecánica dispone de un instpaz de monitorizar el movimiento vibratorio armcuerpo suspendido de un muelle.

Dicho instrumento genera una señal que muesmuelle en función del tiempo pero, debido a quefecto y que hay interferencias en el entorno, mdal con ruido. El dispositivo toma 100 medidas pconjunto de medidas conteniendo las lecturas ctervalo de tiempo determinado. La siguiente figde las lecturas obtenidas en un intervalo de 50

Page 5: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

4

www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15UNIVERSIDADDE CANTABRIA

Ejemplo de lecturas

Page 6: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

5

es que obtenga y filtre y calcule los parámetros

nen a continuación

www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15UNIVERSIDADDE CANTABRIA

Requisitos (cont.)

Se quiere implementar el paquete Java senhalla señal proveniente del instrumento de medidaque caracterizan el movimiento vibratorio.

Este paquete constará de 3 clases, que se expo

Page 7: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

6

tada)

s públicos de una medi-en que se tomó).

www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15UNIVERSIDADDE CANTABRIA

Clase Medida (ya implemen

Clase muy sencilla que contiene los dos atributoda (valor de la medida y el instante de tiempo

Page 8: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

7

mente

del laboratorio. Contie-

(double duracion) indicado. (Ya está

durante el que se

www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15UNIVERSIDADDE CANTABRIA

Clase Instrumento (parcialimplementada) (Alumno A)

Clase que representa el instrumento de medidane los siguientes métodos:

static public Medida[] generaSenal• Retorna un array de medidas en el intervalo

implementado).• Parámetros: duracion- duración del intervalo

desean obtener las medidas.

Page 9: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

8

(Medida[] senal)do cada medida por la el array. Los valores

www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15UNIVERSIDADDE CANTABRIA

Clase Instrumento (cont.)static public Medida[] filtraSenal• Realiza el filtrado de las medidas, sustituyen

media de los valores anterior y posterior en primero y último se dejarán como estaban.

• Parámetros:- senal: señal que se desea filtrar.

• Retorna: array de medidas filtrado.

Page 10: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

9

(Medida[] senal,

nal(Medida[] ciable (por ejemplo, con

método

www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15UNIVERSIDADDE CANTABRIA

Clase Instrumento (cont.)static public Medida[] filtraSenalint nVeces)• Hace nVeces llamadas al método filtraSesenal) anterior para que el filtrado sea aprenVeces=100).

• Parámetros:- senal: señal que se desea filtrar.- nVeces: número de veces que se invocará elfiltraSenal(Medida[] senal).

• Retorna: array de medidas filtrado.

Page 11: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

10

r el alumno)

plitud, el periodo y la

-fase)

ud(Medida[] senal)alcula como la diferencia el array.

mplitud.

www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15UNIVERSIDADDE CANTABRIA

Clase Parametros (hacer po(Alumno B)

Esta clase contiene métodos para calcular la amfase inicial de la forma de onda sinusoidal: f(t)=Amplitud*sin(2*pi*t/periodo

static public double calculaAmplit• Calcula y retorna la amplitud de la señal. Se c

entre los valores máximo y mínimo dentro d• Parámetros:

- senal: señal de la que se desea calcular su a• Retorna: amplitud de la señal.

Page 12: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

11

o(Medida[] senal)lcula como la diferencia n que la señal pasa por

eriodo.

edida[] senal) al instante del primer idido entre el Periodo

se.

www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15UNIVERSIDADDE CANTABRIA

Clase Parametros (cont.)static public double calculaPeriod• Calcula y retorna el periodo de la señal. Se ca

entre los dos primeros instantes de tiempo eel valor 0 con pendiente ascendente.

• Parámetros:- senal: señal de la que se desea calcular su p

• Retorna: periodo de la señal.

static public double calculaFase(M• Calcula y retorna la fase inicial. Corresponde

cruce por cero con pendiente ascendente divy multiplicado por 2*PI.

• Parámetros:- senal: señal de la que se desea calcular su fa

• Retorna: fase de la señal.

Page 13: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

12

nos A y B), para ello:-> Export -> Java

amos nombre a la libre-

www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15UNIVERSIDADDE CANTABRIA

Encapsular el proyecto

Encapsular el proyecto en un fichero jar (Alum1. Botón derecho sobre el paquete senhales -> JAR file

2. Elegimos las clases que queremos añadir, dría.

3. Finish.

Page 14: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

13

nos A y B), para ello:.r la documentación y el que se incluyan (priva-

o doc dentro del proyec-

index.html (puede otón derecho sobre in-rowser).

www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15UNIVERSIDADDE CANTABRIA

Documentación

Generar la documentación del paquete (Alum1. Elegir Project -> Generate Javadoc2. Elegir las clases de las que vamos a genera

tipo de métodos y atributos que queremos dos, protegidos, públicos) y pulsar Finish

3. La documentación se genera en un directorito.

Para consultar la documentación abrir el ficheroabrirse desde el propio Eclipse pulsando con el bdex.html y eligiendo Open With -> Web B

Page 15: Programación en Lenguaje Java. Práctica 7.1. Paquetes ... · Encapsular el proyecto en un fichero jar (Alumnos A y B), para ello: 1. Botón derecho sobre el paquete senhales ->

14

nos A y B) en otro pro-0 veces, dibuje las grá- y, a continuación, llame o y la fase inicial a partir ados.

ráfica del paquete fun-e dicho paquete).

nte implementada).

tación generada por

www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15UNIVERSIDADDE CANTABRIA

Prueba

Hacer un pequeño programa de prueba (Alumyecto que genere una señal, aplique el filtro 10ficas correspondientes antes y después de filtrara los métodos para calcular la amplitud el periodde la señal filtrada y muestre los valores calcul

Para dibujar las gráficas se debe usar la clase Gdamentos (ver como se usa en la página web d

Material proporcionado• Clases Medida e Instrumento (parcialme

Entregar• Código desarrollado, fichero jar y documenjavadoc (a través del moodle).