Logo Studenta

Ejercicio 19 Los paĺındromos son aquellas palabras que pueden leerse al derecho o al revés. El siguiente TAD describe a los paĺındromos: TAD P...

Ejercicio 19


Los paĺındromos son aquellas palabras que pueden leerse al derecho o al revés. El siguiente TAD describe a los paĺındromos:
TAD Paĺındromo(α)
observadores básicos
ver : palindromo(α) −→ secu(α)
generadores
medio : α −→ palindromo(α)
medioDoble : α −→ palindromo(α)
agregar : α × palindromo(α) −→ palindromo(α)
axiomas
ver(medio(a)) ≡ a • <>
ver(medioDoble(a)) ≡ a • a • <>
ver(agregar(a,p)) ≡ a • (ver(p) ◦ a)
Fin TAD
Se propone el siguiente módulo de diseño para este TAD donde la variable palabra en la estructura de representación representa el paĺındromo completo.
Módulo Palindromo(α)
Interfaz
se explica con: Paĺındromo(α)
géneros: palindromo(α)
Operaciones
Medio(in a : α) → res : palindromo(α
Pre ≡ {true}
Post ≡ {res =obs medio(a)}
Complejidad: Θ(copy(a))
Descripción: Crea un paĺındromo con un solo elemento.
Aliasing: No tiene.
MedioDoble(in a : α) → res : palindromo(α
Pre ≡ {true}
Post ≡ {res =obs medioDoble(a)}
Complejidad: Θ(copy(a))
Descripción: Crea un paĺındromo con el elemento repetido.
Aliasing: No tiene.
Agregar(in/out p : palindromo(α), in a : α)
Pre ≡ {p0 =obs p}
Post ≡ {res =obs agregar(a, p)}
Complejidad: Θ(copy(a))
Descripción: Agrega el elemento al paĺındromo en ambas puntas.
Aliasing: No tiene.
Ver(in p : palindromo(α)) → res : secu(α)
Pre ≡ {true}
Post ≡ {res =obs ver(p)}
Complejidad: Θ(1)
Descripción: Devuelve la secuencia de elementos del paĺındromo
Aliasing: El resultado se devuelve como referencia no modificable.
Representación
palindromo se representa con estr
donde estr es tupla(long : nat, palabra: secu(α))
Rep : estr −→ bool
Rep(e) ≡ true ⇐⇒ e.long = long(e.palabra) ∧ e.palabra =obs reverso(e.palabra)
Abs : estr e −→ palindromo(α) {Rep(e)}

Esta pregunta también está en el material:

Práctica3
10 pag.

Computacional Universidad Nacional de CórdobaUniversidad Nacional de Córdoba

Todavía no tenemos respuestas

¿Sabes cómo responder a esa pregunta?

¡Crea una cuenta y ayuda a otros compartiendo tus conocimientos!


✏️ Responder

FlechasNegritoItálicoSubrayadaTachadoCitaCódigoLista numeradaLista con viñetasSuscritoSobreDisminuir la sangríaAumentar la sangríaColor de fuenteColor de fondoAlineaciónLimpiarInsertar el linkImagenFórmula

Para escribir su respuesta aquí, Ingresar o Crear una cuenta

User badge image

Otros materiales