PDF de programación - metodología y Tecnología de la Programación - practica segunda parte

Imágen de pdf metodología y Tecnología de la Programación - practica segunda parte

metodología y Tecnología de la Programación - practica segunda partegráfica de visualizaciones

Publicado el 8 de Septiembre del 2018
597 visualizaciones desde el 8 de Septiembre del 2018
121,6 KB
18 paginas
Creado hace 16a (01/04/2008)
Metodología y Tecnología de la Programación

Prácticas (Segunda Parte) - Junio 2008

Realización de prácticas

Las prácticas de la segunda parte se realizarán en grupos de una o dos personas.

Entrega de prácticas

Las prácticas se entregarán mediante la aplicación SUMA.

La entrega la realizará cada alumno de forma individualizada, aunque la práctica se
haya hecho en grupo de dos personas.

Cada alumno descargará en la zona compartida los siguientes ficheros:

• Los ficheros con el código fuente java: *.java
• Los ficheros con el código compilado: *.class
• Los ficheros con la documentación generada: *.html

Entrevista de prácticas

Los alumnos podrán realizar la entrevista, una vez entregadas las prácticas, en las
fechas señaladas por la convocatoria oficial.

La entrevista será individualizada, pero deberán asistir juntos los miembros de un
mismo grupo.

1

1. Programación basada en objetos con Java

Objetivos de la práctica.

Entender desde el punto de vista teórico-práctico los siguientes conceptos:

Clases y Objetos: class, new.

Excepciones: Exception, try, catch.

Genericidad: Object, Comparable, interface.

Documentación: @param, @throws, @return.

Entrega de la práctica.

El alumno deberá entregar los siguientes ficheros:

Elemento.java: Implementación del TDA Elemento que implementa la interface Comparable
(método compareTo) y sobreescribe el método toString.

UtilVector.java: Clase que utiliza vectores de objetos de las clases Elemento e
Integer.

Clases compiladas (ficheros *.class).

Documentación API (ficheros *.html) de todas las clases.

2

1.1. Clases y Objetos en Java

Realizar la clase Elemento que implemente el TDA Elemento, cuya especificación y
métodos en Java se indican en las figuras 1 y 2.

Realizar la clase UtilVector mostrada en la figura 3 teniendo en cuenta lo siguiente:
• El método leeElemento realiza la lectura desde teclado de un vector de objetos

de la clase Elemento.
Para realizar la lectura desde teclado de una forma sencilla se facilita la clase
auxiliar Util. En concreto, el método leeEntero() devuelve un entero leído por
teclado.
Las operaciones de lectura por teclado pueden causar excepciones de entrada/salida
(IOException) o excepciones del formato numérico (NumberFormatException),
las cuales deben tratarse.

• El método imprime visualiza en pantalla un vector de objetos de la clase Elemento.
• El método ordena clasifica crecientemente un vector de objetos de la clase Elemento.

Para la ordenación del vector puede implementarse cualquier método de orde-
nación simple con tiempo de ejecución O

• El método main debe leer de teclado un vector de objetos de la clase Elemento,
imprimirlo por pantalla, ordenarlo y volverlo a imprimir ordenado; para ello debe
utilizar los métodos leeElemento, imprime y ordena.

n2

.



Elemento=tipo de datos con operaciones crea, valor.

DESCRIPCI ÓN:

Los valores del TDA Elemento son números enteros. El TDA Elemento es inmutable.

OPERACIONES:

crea(n:entero) devuelve (Elemento)

efecto: Devuelve un elemento con valor n.

valor(E:Elemento) devuelve (entero)

efecto: Devuelve el valor del elemento E.

Figura 1: TDA Elemento: Especificación Informal.

3

Clase Elemento

class Elemento

Constructores

Elemento(int n)

Métodos

int valor()

Figura 2: TDA Elemento: Métodos en Java.

import java.io.*;
public class UtilVector {

static public Elemento[] leeElemento(int n) throws IOException, NumberFormatException {

...

}
static public void imprime(Elemento[] e) {

...

}
static public void ordena(Elemento[] e) {

...

}
static public void main(String args[]) {

...

}

} // fin class UtilVector

Figura 3: Clase para la utilización de vectores de objetos de la clase Elemento.

4

1.2. Herencia y Polimorfismo: Genericidad

Ampliar la clase Elemento de forma que:
• Sobreescriba el método toString.
• Implemente la interface Comparable (método compareTo).

Amplizar la clase UtilVector, como muestra la figura 4. Para ello:

• Añadir un método leeInteger que realice la lectura desde teclado de un vector

de objetos de la clase Integer.

• Modificar el método imprime para que pueda imprimir vectores de objetos genéri-
cos; en esta práctica se utilizará, particularmente, con vectores de objetos de la
clase Elemento e Integer.

• Modificar el método ordena para que pueda clasificar crecientemente vectores de
objetos parcialmente genéricos, es decir, objetos de clases que implementen la
interface Comparable; en esta práctica se utilizará, particularmente, con vectores
de objetos de las clases Elemento e Integer.

• El método main debe leer desde teclado un vector de objetos de la clase Elemento,
imprimirlo por pantalla, ordenarlo y volverlo a imprimir ordenado. A continuación
debe realizar lo mismo con un vector de objetos de la clase Integer. Usar los
métodos leeElemento y leeInteger para realizar la lectura de los vectores.

import java.io.*;
public class UtilVector {

static public Elemento[] leeElemento(int n) throws IOException, NumberFormatException {

...

}
static public Integer[] leeInteger(int n) throws IOException, NumberFormatException {

...

}
static public void imprime(Object[] e) {

...

}
static public void ordena(Comparable[] e) {

...

}
static public void main(String args[]) {

...

}

} // fin class UtilVector

Figura 4: Clase para la utilización de vectores de objetos de las clases Elemento e Integer.

5

1.3. Documentación

Documentar las clases Elemento y UtilVector, implementadas en las prácticas anteriores,
utilizando la utilidad javadoc. Para ello:

Documentar al principio la descripción de la clase.

Documentar, para cada método público:

• su efecto,
• parámetros mediante el comando @param,
• resultado del método mediante el comando @return,
• excepciones mediante el comando @throws.

6

2.

Implementaciones Robustas de TDAs Parcialmente Genéricos

Objetivos de la práctica.

Entender desde el punto de vista teórico-práctico los siguientes conceptos:

Representaciones enlazadas.

Representaciones contiguas.

Implementación de TDAs parcialmente genéricos.

Implementaciones robustas. Definición de excepciones.

Interfaces.

Entrega de la práctica.

El alumno deberá entregar los siguientes ficheros:

ConjuntoContiguo.java: Implementación robusta con representación contigua del
TDA Conjunto parcialmente genérico.

ConjuntoEnlazado.java: Implementación robusta con representación enlazada del
TDA Conjunto parcialmente genérico.

ConjuntoException.java: Excepción para la implementación robusta del TDA Con-
junto.

ConjuntoInterface.java: Interface para el TDA Conjunto parcialmente genérico.

UtilConjunto.java: Clase principal que utiliza el TDA Conjunto parcialmente genéri-
co.

Clases compiladas (ficheros *.class) de las clases anteriores.

Documentación API (ficheros *.html) de las clases anteriores.

7

2.1.

Implementación del TDA Conjunto con Representación
Contigua

Realizar la implementación en Java del TDA Conjunto en una clase ConjuntoContiguo
teniendo en cuenta los siguientes puntos:

• El TDA Conjunto sigue la especificación y métodos en Java indicados en las

figuras 5 y 6.

• El TDA Conjunto debe implementarse mediante una representación contigua.
• Todos los métodos de la clase ConjuntoContiguo deben tener un tiempo de eje-
cución O (1), excepto inserta y pertenece que tendrán un tiempo de ejecución
O (n).

• Sobreescribir el método toString en la clase ConjuntoContiguo de forma que
devuelva una cadena de caracteres con los elementos del conjunto ordenados cre-
cientemente. Este método deberá tener un tiempo de ejecución O (n).

Completar la clase UtilConjunto mostrada en la figura 7 que utiliza la clase ConjuntoContiguo.
El método imprimeOrdenado debe utilizar los métodos maximo y suprimeMaximo de
la clase ConjuntoContiguo para implementar la operación en un tiempo de ejecución
O (n).

8

Conjunto=tipo de datos es crea, inserta, vacio, pertenece, suprime maximo, maximo.

DESCRIPCI ÓN:

Los valores del TDA Conjunto son conjuntos de elementos del tipo Elemento. El TDA Conjunto es inmutable.

OPERACIONES:

crea() devuelve (Conjunto)

efecto: Devuelve un conjunto vacío.

inserta(C:Conjunto, E:Elemento) devuelve (Conjunto)

requerimientos: E /∈C.
efecto: Devuelve un conjunto con los elementos de C y el nuevo elemento E.

vacio(C:Conjunto) devuelve (booleano)

efecto: Devuelve cierto si C es vacío y falso en caso contrario.

pertenece(C:Conjunto, E:Elemento) devuelve (booleano)

efecto: Devuelve cierto si E pertenece a C y falso en caso contrario.

suprime maximo(C:Conjunto) devuelve (Conjunto)

requerimientos: C no es vacío.

efecto: Devuelve un conjunto resultado de eliminar el máximo del conjunto C.

maximo(C:Conjunto) devuelve (Elemento)

requerimientos: C no es vacío.

efecto: Devuelve el elemento máximo de C.

Figura 5: TDA Conjunto: Especificación Informal.

Clase ConjuntoContiguo

class ConjuntoContiguo

Constructores

ConjuntoContiguo()

ConjuntoContiguo(ConjuntoContiguo c, Elemento e)

Métodos

boolean vacio()

boolean pertenece(Elemento e)

ConjuntoContiguo suprimeMaximo()

Elemento maximo()

String toString()

Figura 6: TDA Conjunto: Métodos en Java.

9

import java.io.*;
public class UtilConjunto {

static private void imprimeOrdenado(ConjuntoContiguo c) {

// Imprime en pantalla los elementos del conjunto c ordenados decrecientemente.
...

}
static public void main(String args[]) {

...
// Construye un conjunto de la clase ConjuntoContiguo.
// Imprime el conjunto ordenado crecientemente mediante el método toString del conjunto.
// Imprime el conjunto ordenado decrecientemente mediante el método imprimeOrdenado.
...

}

} // fin class UtilConjunto

Figura 7: Clase para la utilización de la clase ConjuntoContiguo.

10

2.2.

Implementación Robusta del TDA Conjunto Parcialmente
Genérico con Representación Contigua

Realizar las siguientes modificaciones sobre la clase ConjuntoConti
  • Links de descarga
http://lwp-l.com/pdf13410

Comentarios de: metodología y Tecnología de la Programación - practica segunda parte (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad