next up previous contents
Next: 7.2 Implementación Up: 7.1 Diseño Previous: 7.1.1 Descripción informal   Contents

7.1.2 Descripción formal

TDA
Secuencia

Descripción:
Una secuencia es un conjunto de elementos del mismo tipo que guardan un orden.
Invariante:
\( Secuencia=\left\langle elem_{0},\ldots ,elem_{n-1}\right\rangle \wedge \left( \forall i,0\leq i<n,elem_{i}\in TipoB\right) \)
Operaciones:
 

Operación
Secuencia

Descripción:
Construlle una secuencia vácia.
Descripción operacional:
\( \begin{array}{cccc}
Secuencia: & & \rightarrow & Secuencia
\end{array} \)
Precondición:
\( verdadero \)
Poscondición:
\( Secuencia=\left\langle \right\rangle \)
Encabezado:
Secuencia::Secuencia();
Operación
tam

Descripción:
Dice el tamaño de la secuencia.
Descripción operacional:
\( \begin{array}{cccc}
tam: & Secuencia & \rightarrow & N
\end{array} \)
Precondición:
Poscondición:
\( tam=n \)
Encabezado:
int Secuencia::tam();
Operación
[]

Descripción:
Selecciona el elemento de la posición i.
Descripción operacional:
\( \begin{array}{cccc}
: & Secuencia\times N & \rightarrow & TipoB
\end{array} \)
Precondición:
\( i\in N\wedge 0\leq i<n \)
Poscondición:
\( []=elem_{i} \)
Encabezado:
TipoB Secuencia::operator [](int i);
Operación
ins

Descripción:
Inserta después de la posición i.
Descripción operacional:
\( \begin{array}{cccc}
ins: & Secuencia\times TipoB\times N & \rightarrow & Secuencia
\end{array} \)
Precondición:
\( secuencia=\left\langle elem_{0},\ldots ,elem_{i},ele_{i+1},\ldots ,elem_{n-1}\right\rangle \wedge nuevo\in TipoB\wedge -1\leq i\leq n \)
Poscondición:
\( secuencia=\left\langle elem_{0},elem_{i},nuevo,elem_{i+1},\ldots ,elem_{n-1}\right\rangle \)
Encabezado:
void Secuencia::ins(TipoB nuevo, int i);
Operación
add

Descripción:
Adiciona un nuevo elemento al final de la secuencia.
Descripción operacional:
\( \begin{array}{cccc}
add: & Secuencia\times TipoB & \rightarrow & Secuencia
\end{array} \)
Precondición:
\( secuencia=\left\langle elem_{0},\ldots ,elem_{n-1}\right\rangle \wedge nuevo\in TipoB \)
Poscondición:
\( secuencia=\left\langle elem_{0},\ldots ,elem_{n-1},nuevo\right\rangle \)
Encabezado:
void Secuencia::add(TipoB nuevo);
Operación
eliminar

Descripción:
Elimina el elemento de la posición i.
Descripción operacional:
\( \begin{array}{cccc}
eliminar: & Secuancia\times N & \rightarrow & Secuencia
\end{array} \)
Precondición:
\( secuencia=\left\langle elem_{0},\ldots ,elem_{i-1},elem_{1},elem_{i+1},\ldots ,elem_{n-1}\right\rangle \wedge 0\leq i<n \)
Poscondición:
\( secuencia=\left\langle elem_{0},\ldots ,elem_{i-1},elem_{i+1},\cdots ,elem_{n-1}\right\rangle \)
Encabezado:
void Secuencia::eliminar(int i);
Operación
donde

Descripción:
Retorna la posición del elemento en la secuencia. Si no está retorna -1.
Descripción operacional:
\( \begin{array}{cccc}
donde: & Secuencia\times TipoB & \rightarrow & N
\end{array} \)
Precondición:
\( el\in TipoB \)
Poscondición:
\( \left( \exists i,elem_{i}=el\right) \Rightarrow donde=i\vee \left( \forall i,elem_{i}\neq el\right) \Rightarrow donde=-1 \)
Encabezado:
int Secuencia::donde(TipoB el);
Operación
+

Descripción:
Une dos secuencias en una tercera, en ésta aparecen primero los elementos de la secuencia inicial y segundos los de la otra secuencia.
Descripción operacional:
\( \begin{array}{cccc}
+: & Secuencia\times Secuencia & \rightarrow & Secuencia
\end{array} \)
Precondición:
\( secuencia=\left\langle elem_{0},\ldots ,elem_{n-1}\right\rangle \wedge otra=\left\langle el_{0},\ldots ,el_{m-1}\right\rangle \)
Poscondición:
\( +=\left\langle elem_{0},\ldots ,elem_{n-1},el_{0},\ldots ,el_{m-1}\right\rangle \)
Encabezado:
Secuencia Secuencia::operator +(Secuencia otra);
Operación
<<

Descripción:
Imprime la secuencia en un stream.
Descripción operacional:
\( \begin{array}{cccc}
<<: & ostream\times Secuencia & \rightarrow & ostream
\end{array} \)
Precondición:
\( is\in ostream\wedge sec\in Secuencia \)
Poscondición:
\( ostream=\left\langle '<',elem_{0},\: ','\: ,\ldots ,\: ','\: ,elem_{n-1}\right\rangle \)
Encabezado:
ostream &operator << (ostream &is, Secuencia sec);


next up previous contents
Next: 7.2 Implementación Up: 7.1 Diseño Previous: 7.1.1 Descripción informal   Contents
Ing. L. Alejandro Bernal R. 2001-01-18
Free Web Hosting