Especificación de los TAD

11 abr. 2012 - comportamiento de todas las operaciones, debe permitir p p. , p verificar la corrección de la implementac
82KB Größe 61 Downloads 54 Ansichten
11/04/2012

Estructuras de datos y Programación (LSI) Programación (PI – PUI) T Tema: E Especificación ifi ió d de llos TAD Ing. Analia Méndez – Ing. Raquel Zarco Año: 2012

1

11/04/2012

Especificación de los TAD • Objetivo: Describir el comportamiento del TAD. • Consta de dos partes: • Descripción matemática del conjunto de datos • Descripción p de las operaciones p definidas en

ciertos elementos de ese conjunto de datos. • Puede P d ttener enfoques: f • Informal: describe en lenguaje natural los datos y

las operaciones relacionadas • Formal: incluye un conjunto de axiomas que describen las operaciones en su aspecto sintáctico y semántico

2

11/04/2012

Especificación informal de un TAD • Consta de dos partes: • Detallar en los datos del tipo los valores que

pueden tomar • Describir las operaciones relacionándolas con los datos • Formato:

TAD nombre del tipo (valores y su descripción) Operación (argumentos) Descripción p funcional

3

11/04/2012

Especificación formal de un TAD • Proporciona un conjunto de axiomas que describen el

comportamiento p de todas las operaciones, p , debe permitir p verificar la corrección de la implementación del TAD • Cabecera TAD nombredeltipo (valores ( que puede tomar))

• Sintaxis: lista las operaciones mostrando los tipos de los

argumentos a gu e tos y e el ttipo po de del resultado esu tado Operación(Tipo argumento…)  Tipo resultado

• Semántica: se dan valores particulares a los argumentos

d llas operaciones de i y se obtiene bti una expresión ió resultado lt d Operación(Valores particulares argumentos)  Expresión resultado

4

11/04/2012

Especificación formal de un TAD • Al hacer una especificación formal siempre hay

operaciones p definidas p por sí mismas q que se consideran constructores del TAD • Mediante estos constructores se generan todos los valores posibles del TAD • Normalmente se elige como constructor a la operación que inicializa q

5

11/04/2012

Especificación informal del TAD Arreglo • TAD

Arreglo(N elementos almacenados en consecutiva,, todos p poseen el mismo tipo p de dato))

forma

• Operaciones • Arreglo() • Constructor, inicializa los elementos • setElemento( Arreglo, Arreglo valor, valor posición) • Asigna el valor al elemento del arreglo en la posición indicada • getElemento(Arreglo, posición) • Devuelve el elemento del arreglo ubicado en la posición indicada • AgregarElementos(Arreglo) • Recorre el arreglo g agregando g g elementos,, utiliza setElemento() ()

6

11/04/2012

Especificación informal del TAD Arreglo • Operaciones (continuacion) • Buscar(Arreglo, ( g , valor)) • Busca en el arreglo el valor ingresado e informa por pantalla si lo

encontró o no • Eliminar(Arreglo) • Elimina en el arreglo los elementos repetidos colocando cero • Mostrar(Arreglo) • Muestra todos los elementos del arreglo, utiliza getElemento()

7

11/04/2012

Especificación formal del TAD Arreglo • TAD

Arreglo(N elementos almacenados en consecutiva,, todos p poseen el mismo tipo p de dato))

forma

• Sintaxis • Arreglo() -> Arreglo • setElemento( Arreglo, valor, posición) -> elemento del Arreglo • getElemento(Arreglo, getElemento(Arreglo posición) -> > Elemento • AgregarElementos(Arreglo) -> Arreglo • Buscar(Arreglo, valor) -> boolean • Eliminar(Arreglo) -> Arreglo • Mostrar(Arreglo) -> nulo (void)

8

11/04/2012

Especificación formal del TAD Arreglo • Semántica • Dados los elementos e0. . . eN del arreglo A • y las p posiciones i y j en el arreglo g A • setElemento( A, valor, i)  A[i] = valor • getElemento(A, getElemento(A i)  Devolver A[i] • AgregarElementos(Arreglo)   A[i] hacer setElemento(A,valor,i) • Buscar(Arreglo, valor)  si  A[i] == valor, entonces devolver verdadero

sino devolver falso • Eliminar(Arreglo)   A[i] == A[j] hacer setElemento(A, 0, j) • Mostrar(Arreglo) ( g )   A[i] [ ] hacer imprimir p getElemento(A, g ( , i))

9

11/04/2012

Bibliografia o WEISS MARK ALLEN. Estructuras de datos en JAVA. Addison-Wesley- 2006. o CAIRO, OSVALDO. Estructuras de datos. M G McGraw-Hill Hill - 2006. 2006

10