*Especificar con pre, poscondición, declaración de constantes y variables los siguientes problemas:* *a) Dados los arreglos a y b determinar si todos los elementos de a son mayores a exactamente dos elementos de b.* **Solución posible** Const N: Int; Const M: Int; Var a: array $[0,N)$ of Num; Var b: array $[0, M)$ of Num; Var r: Bool; $\{P: N\geq 0 \land M\geq 0\}$ $S$ $\{Q: r=\langle \forall i : 0\leq i<N : \langle N \ j: 0\leq j<M : b.j<a.i \rangle = 2\rangle\}$ **Otra solucion posible** Const N: Int; Const M: Int; Var a: array $[0,N)$ of Num; Var b: array $[0,M)$ of Num; Var r: Bool; $\{P: N\geq 0 \land M\geq 0\}$ $S$ $\{Q: r=\langle \forall i: 0\leq i>N : \langle \exists j,k : 0\leq j<k<M: a.i>b.j \land a.i>b.k \land \langle \forall s : 0\leq s<M \land s\neq j \land s\neq k : a.i\leq b.s \rangle \rangle \rangle \}$ **Criterios** * Asumir a y b del mismo tamaño: -2pts * El programa solo pide que todos los elementos de a sean mayores a al menos 2 elementos de b: -3pts. * Condiciones innecesarias a N,M: -2pts * los índices se van de rango: -2pts. * Para todo elemento de b y similares: -4pts. * Variables/constantes mal declaradas: -2pts. * Elementos de la misma posición de a y b: -2pts. *b) Dado un arreglo con por lo menos dos elementos, calcular el mínimo del promedio de dos valores consecutivos.* Const N: Int; Var a: array $[0,N)$ of Num; Var min: Num; $\{P: N\geq 2\}$ $S$ $\{Q: min=\langle Min.i: 0\leq i<N-1 : (a.i+a.(i+1))/2\rangle \}$ **Criterios** * Error en la precondición: -2pts. * El índice se va de rango: -2pts. * Los elementos no son consecutivos: -3pts