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