Вы находитесь на странице: 1из 12

Fecha límite 4 de jun en 23:55 Puntos 75 Preguntas 10

Disponible 1 de jun en 0:00-4 de jun en 23:55 4 días Tiempo límite 90 minutos


Intentos permitidos 2
Volver a realizar la evaluación
Intento Tiempo Puntaje
ÚLTIMO Intento 1 26 minutos 67.5 de 75

 Las respuestas correctas estarán disponibles del 5 de jun en 0:00 al 5 de jun en 23:55.

Calificación para este intento: 67.5 de 75


Presentado 3 de jun en 10:57
Este intento tuvo una duración de 26 minutos.

Pregunta 1 7.5 / 7.5 ptos.

De acuerdo al material del curso, la precondición de un programa


es:

Una afirmación o condición que debe ser cierta antes de


ejecutarse el programa

Una condición sin la cuál no se pueden escribir programas


correctos.

Una pregunta que debe hacerse al iniciar a programar.

Una serie de condiciones físicas y mentales que debe tener un


programador a la hora de escribir un código.

Un estado posterior a la ejecución del programa.

Un programa que valida que las entradas de otro programa sean


válidas.
Pregunta 2 7.5 / 7.5 ptos.

Observe el siguiente programa en GCL:

{P: n > 0, b[0..n-1] }


x := 1
k := 0
{R: k in [0,n], x = Πk−1
i=0 b[i] }

do ¬(k = n) → x := x·b[k]; k := k+1


od
{Q: x = Πn−1
i=0 b[i] }

Usted quiere demostrar que el predicado invariante R se


mantiene, cuáles de las siguientes hipótesis debe utilizar?

 k in [0,n]

k=n

k=0

x := x·b[k]

 x = Πk−1
i=0 b[i]

k := k + 1

 k≠n

x = Πn−1
i=0 b[i]
(∃k ∈ [0, n] : b[k] = x)

Pregunta 3 7.5 / 7.5 ptos.

El siguiente programa es incorrecto con respecto a su


especificación:
Variables Entrada: float x, y
Variable Salida: float z

{x-y>0}
z=0
z=z+x
z=z*z
z=z-y
{z > 0}

Usted debe mostrar que efectivamente el programa es incorrecto.


¿Qué valores elegiría para las variables de entrada?

La combinación x = 0.6, y = 0.6

La combinación x = 2, y = 1

La combinación x = 1, y = 3

El programa es correcto! Se puede demostrar que lo es con la


combinación de valores x = 3, y = 2

La combinación x = 0.5, y = 0.4


Pregunta 4 7.5 / 7.5 ptos.

El siguiente programa es incorrecto con respecto a su


especificación:
Variables Entrada: int a, b
Variable Salida: int c

{a > 0, b > 0, a mod 2 = b mod 2 }


c=0
c=c+a
c=c-b
{c > 0, c mod 2 = 0}

Usted debe mostrar que efectivamente el programa es incorrecto.


¿Qué valores elegiría para las variables de entrada?

Cualquier combinación de valores en que b ≥ a, y que la suma


sea impar

La combinación a = 10, b = 11

Cualquier combinación de valores en que a ≥ b, y que ambos


sean pares o ambos impares

El programa es correcto! Se puede demostrar con la combinación


a = 4, b = 2

Cualquier combinación de valores en que b ≥ a, y que uno de los


dos sea impar y el otro par
Cualquier combinación de valores en que b ≥ a, y que ambos
sean pares o ambos impares.

La combinación a = 10, b = 12 ó la combinación a = 9, b = 7

La combinación a = 10, b = 8

Pregunta 5 7.5 / 7.5 ptos.

Observe el siguiente programa en GCL:

{P: n > 0, b[0..n-1] }


x := 1
k := 0
{R: k in [0,n], x = πi=0
k−1
b[i] }
do ¬(k = n) → x := x·b[k]; k := k+1
od
{Q: x = Πn−1
i=0 b[i] }

Usted quiere demostrar que al finalizar el ciclo, la postcondición Q


se cumple, cuáles de las siguientes hipótesis debe utilizar?

x := x·b[k]

 x = Πk−1
i=0 b[i]

x = Πn−1
i=0 b[i]

x=1
k := k + 1

 k=n

 k in [0,n]

Pregunta 6 7.5 / 7.5 ptos.

Observe el siguiente programa:

{Pre Q: a = Fib(n) , b = Fib(n-1), n > 1}


k := a ;
a := ? ;
b := k ;
n:=n + 1
{Pos R: a = Fib(n) , b = Fib(n-1) }

¿Qué expresión reemplaza el símbolo '?' de manera que el


programa es correcto con respecto a su especificación? (No use
espacios).

Pregunta 7 7.5 / 7.5 ptos.

Los siguientes programas escritos en GCL tienen únicamente


asignaciones. Seleccione cuáles de ellos son correctos de
acuerdo a su especificación. En todos las variables a, b y c son
enteras, la variable p es booleana.

A) {a > 0, b > 0} B) {a < 0, b > 0}


c := a + b c := a + b
{c > 0} {c > 0}
C) {a > 0, b < 0} D) {a < 0, b > 0}
c := a + b c := a + b
{c > 0} {c < 0}
E) {a < 0, b < 0} F) {a > 0, b < 0}
c := a + b c := a + b
{c < 0} {c < 0}

C)

F)

D)

 A)

 E)

B)

Incorrecto Pregunta 8 0 / 7.5 ptos.

De acuerdo al material del curso, la postcondición de un


programa es:
Una condición sin la cuál no se pueden escribir programas
correctos.

Una afirmación o condición que debe ser cierta después de


ejecutarse el programa

Un programa que valida que las salidas de otro programa sean


válidas.

Una serie de condiciones físicas y mentales que debe tener un


programador a la hora de escribir un código.

Un estado anterior a la ejecución del programa.

Una pregunta que debe hacerse al iniciar a programar.

Pregunta 9 7.5 / 7.5 ptos.

Usted tiene el siguiente programa en GCL:

{Pre: P}
S0
{Inv: R}
do B1 →if B2 then S1

else S2 fi

od
{Post: Q}
De los siguientes pasos, cuáles son necesarios para verificar que
el programa es correcto?

{R, B1, ¬B2} S1 {R}

 El ciclo do termina

{R, ¬B1, B2} S1 {R}

 {R, B1, B2} S1 {R}

 {R, B1, ¬B2} S2 {R}

P → WP(Q, S1)

{P} S1 {R}

{R, ¬B1, ¬B2} → Q

 {P} S0 {R}

 {R, ¬B1} → Q

(P, ¬B1) → Q

{R, B1, B2} S2 {R}

Pregunta 10 7.5 / 7.5 ptos.

Se dice que un programa es correcto de acuerdo a su


especificación si:
Cumple la precondición y la postcondición durante todas las
instrucciones del programa.

Partiendo de cualquier estado de la precondición, después de las


instrucciónes, se cumple la postcondición.

Compila perfectamente de acuerdo a la plataforma escogida de


desarrollo

No tiene errores de sintáxis de acuerdo a la definición del


lenguaje de programación utilizado

No tiene errores de sintaxis y compila perfectamente.

Calificación de la evaluación: 67.5 de 75

Вам также может понравиться