La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

L ENGUAJE DE E SPECIFICACIÓN Algoritmos y Estructuras de Datos I Especificación – Práctica 4 AEDI Especificación – Práctica 4 1.

Presentaciones similares


Presentación del tema: "L ENGUAJE DE E SPECIFICACIÓN Algoritmos y Estructuras de Datos I Especificación – Práctica 4 AEDI Especificación – Práctica 4 1."— Transcripción de la presentación:

1 L ENGUAJE DE E SPECIFICACIÓN Algoritmos y Estructuras de Datos I Especificación – Práctica 4 AEDI Especificación – Práctica 4 1

2 M ÁS EJERCICIOS CON SECUENCIAS Especificar el problema de, dada una lista de enteros, devolverla ordenada. problema ordenar(a:[Z]) { modifica : a; asegura : mismos(pre(a),a); asegura : (  i <- [0..|pre(a)|-1)) a[i] ≤ a[i+1]; } AEDI 2 Especificaión - Práctica 4

3 M ÁS EJERCICIOS CON SECUENCIAS Dadas dos listas de enteros s y t y un entero z, devolver la lista de pares que sumen z. Ejemplo: z = 6, s = [1,0,3] y t = [5,6,3] -> res = [(1,5),(0,6),(3,3)] problema paresQueSuman(s,t:[Z],z:Z) = res:[(Z,Z)] { asegura : mismos(res, [(x,y)|x <- s, y <- t, x+y == z]); } AEDI 3 Especificaión - Práctica 4

4 M ÁS EJERCICIOS CON SECUENCIAS Especificar un problema que, dada una lista, devuelva una lista con todas sus sublistas. Ejemplo: s = [1,0,3], res = [[],[1],[0],[3],[1,0],[0,3],[1,0,3]] problema sublistas(a:[Z]) = res:[[Z]] { asegura : mismos(res, [] ++ [a[i..j]| i<-[0..|a|), j<-[i.. |a|) ]); } AEDI 4 Especificaión - Práctica 4

5 M ÁS EJERCICIOS CON SECUENCIAS Especificar el auxiliar que, dada una lista de enteros, devuelva el bool que determina si la lista es una escalera. Ejemplo1: a = [1,2,3] -> true Ejemplo2: a = [1,2,4] -> false aux esEscalera(a:[Z]):Bool = (  i <- [0..|a|-1)) a[i+1] == a[i] + 1; AEDI 5 Especificaión - Práctica 4

6 M ÁS EJERCICIOS CON SECUENCIAS Especificar el problema de, dada una lista de enteros, devolver un par de enteros con la posición de la escalera mas larga como primer elemento, y la longitud de la misma como segundo elemento. problema escaleraMásLarga(a:[Z]) = res:(Z,Z) { requiere: |a|>0 asegura: 0 < prm(res) < prm(res) + snd(res) ≤ |a| asegura: esEscalera(a[prm(res)..prm(res)+snd(res))) asegura: (  i<-[0..|a|), j<-[i..|a|), esEscalera(a[i..j])) |a[i..j]| ≤ snd(res) } AEDI 6 Especificaión - Práctica 4

7 M ÁS EJERCICIOS CON SECUENCIAS Especificar el problema de, dada una lista de enteros, devolver en otra los mismos elementos que en la original pero se les suma a los de las posiciones impares 5. Adicionalmente en la original solo quedan los de las posiciones pares multiplicados por 3. Ejemplo: a=[1,2,3] -> a=[1*3,3*3] y res=[1,2+5,3] problema ejercicioRaro(a:[Z]) = res : [Z] { modifica : a; asegura : |res| == |a|; asegura : mismos(a,[pre(a)[i]*3|i<-[0…|pre(a)|),i mod 2==0]); asegura : (  i <- [0..|res|)) (i mod 2==0 -> res[i] == pre(a)[i]) && (i mod 2!=0 -> res[i] == pre(a)[i] + 5) } AEDI 7 Especificaión - Práctica 4


Descargar ppt "L ENGUAJE DE E SPECIFICACIÓN Algoritmos y Estructuras de Datos I Especificación – Práctica 4 AEDI Especificación – Práctica 4 1."

Presentaciones similares


Anuncios Google