Cómo definir una precondición.
Las
precondiciones establecen reglas que se deben cumplir
entre los argumentos de una función. Con ello conseguimos evitar entrar
a usar algunas funciones bajo circunstancias para las cuales no funcionarían
correctamente o no tendrían sentido.
La definición de precondiciones se realiza en la zona dedicada a tal efecto que comienza por la palabra reservada "PRECONDICIONES". En ella tenemos la posibilidad de hacer una declaración de variables, las cuales pueden ser usadas para establecer las precondiciones. A continuación se procede a definir precondiciones:
Se
escribe el nombre de una función seguido de "(" y a continuación
una lista con tantos argumentos como esa función espere, éstos pueden ser
variables o funciones a su vez. Se escribe ")". Luego ":"
y seguidamente otra función, "(", su lista de argumentos, y
por ultimo ")".
La
función que se emplea en la parte izquierda debe haber sido declarada como
condicional, es decir, se debe haber empleado "-/>" en su
definición, mientras que la función que se use en la parte derecha debe
devolver un tipo Booleano con el propósito de poder comprobar si se cumple o no
la relación entre los argumentos de la primera.
Los argumentos de las funciones de ambas partes deben coincidir en número y tipo con los esperados por ellas. Éstos han sido declarados en la definición de la función.
Además
se debe declarar al menos una precondición para cada una de las funciones
declaradas como condicionales, pudiendo tener una misma función más de una
precondición.
Veamos un ejemplo:
PRECONDICIONES
n: Elemento
p: Pila
apilar(n,p):not(Esllena(p))
cima(p):not(Esvacia(p))