Está en la página 1de 1

Class Secuencia

Imports Natural
Basic Constructor Secuencia,Agregar.
Efective
Type Secuencia
Operations
Secuencia:----->Secuencia;
Agregar:Secuencia*Elemento------>Secuencia;
InserTenP:Secuencia(s)*natural(n)*elemento---->Secuencia;
Pre:Not Vacia secuencia(S) and N+1 <= long(N)
long:secuencia--->natural;
vacia:secuencia:secuencia---->boolean;
elementodP:secuencia(s)*natural(n)--->elemento;
Pre:Not Vacia secuencia(S) and N<= long(N)
menosprimero:secuencia(s)----->secuencia
Pre:Not Vacia secuencia(S)
eleminardPos:secuencia(s)*natural(n)---->secuencia
Pre:Not Vacia secuencia(S) and N<= long(N) and pertenece == true
sustituir:secuencia(s)*natural(n)*elemento--->secuencia
Pre:Not Vacia secuencia(S) and N<= long(N)
pertenece:secuencia(s)*Elemento----->boolean
axioms S:secuencia E1,E:elemento N:natural

vacia(secuencia())=true
vacia(agregar(s,e))=False
long(secuencia())= 0
long(agregar(s,e))= 1+long(s)

N==long(s) ---> elemendp(agregar(S,E),N)=E


N>long(s) --->elemendp(agregar(S,E),N)=elementodp(S,N)

N== long(s)---->insertarenP(agregar(s,e),n,E1)=agregar(S,E1)
N>long(s)---->insertarenP(agregar(s,e),n,E1)=agregar(insertarenP(S,N,E1),e)

menosprimero(secuencia())=Secuencia()
menosprimero(agregar(s,e))=agregar(menosprimero(s),e)

n==long(s)--->eliminardPos(agregar(s,e),n)=s
N>long(s)--->eliminardPos(agregar(s,e),n)=agregar(elimanardPos(s,n),E

n==long(s)--->sustituir(agregar(s,e),n,E1)=agregar(s,E1)
N>long(s)--->eliminardPos(agregar(s,e),n,E1)=agregar(elimanardPos(s,n,E1),e)

pertenece(secuencia())= false
e==E1 ---> pertenece(agregar(s,e),E1)=true
e!=E1 ---> pertenece(agregar(s,e),E1)=agregar(pertenece(s,E1),e)
END-CLASS

También podría gustarte