Uploaded by Martin Gutierrez Canasa

Z5 Sucesiones Lenguaje Z

advertisement
Sucesiones
Ejemplo
Cada elemento en la lista tiene asignado una posición, de manera análoga
a un vector:
vocales = <a, e, i, o, u>
posición= 1 2 3 4 5
Los elementos repetidos pueden ser identificados por el índice
letras = <a, e, h, f, u, e, m>
posición= 1 2 3 4 5 6 7
Definición de una sucesión y analogía con funciones
Una sucesión “x” de elementos de tipo “T” se define como:
x : seq T
Una sucesión también puede ser representado por una función:
N⇸T
con dominio:
dom x: 1 ..#x
Operaciones con sucesiones
Operación
Ejemplo
Selección
<a, e, i, o, u> 4 = o
Concatenación
<a, e, i, o, u>
head
head <a, e, i, o, u> = a
last
last <a, e, i, o, u> = u
tail
tail <a, e, i, o, u> = < e, i, o, u>
front
front <a, e, i, o, u> = <a, e, i, o >
filtrado
<a, e, i, o, u, i, a, o,> | {i, o} = <i, o, i, o >
invertir lista
rev <a, e, i, o, u> = <u, o, i, e, a>
squash
squash( 3..6
<1, 2, 3> = <a, e, i, o, u, 1, 2, 3>
<a, e, i, o, u, k, m, p>) = <i, o, u, k>
Ejemplo de modelado con sucesiones en Z
Se modela una estructura de cola en Z
Se define el esquema principal
___Cola [T]______
| q : seq T
|______________
Se define el esquema inicial de la Cola
__Iniciar_Cola___
| Cola
|______________
| q = <>
|______________
Se define la operación de agregar un elemento a la Cola
__Insertar_ Cola[T]____
| △Cola
| nuevo?: T
|___________________
| q’ = q
<nuevo?>
|___________________
Se define la operación de eliminar y mostrar un elemento a la Cola
__Borrar_ Cola[T]____
| △Cola
| x!: T
|___________________
| q ≠ <>
| x! = head q
| q’ = tail q
|___________________
Se define la operación que muestra el tamaño de la Cola
__Longitud_Cola[T]____
| ΞCola
| tamaño!: N
|___________________
| tamaño! = #q
|___________________
Download