Sunteți pe pagina 1din 10

Quiz 1 - Semana 3

Fecha límite 12 de nov en 23:55 Puntos 75 Preguntas 10


Disponible 9 de nov en 0:00-12 de nov en 23:55 4 días Tiempo límite 90 minutos
Intentos permitidos 2

Instrucciones
Volver a realizar la evaluación

Historial de intentos

Intento Tiempo Puntaje


ÚLTIMO Intento 1 15 minutos 72 de 75

Calificación para este intento: 72 de 75


Presentado 9 de nov en 16:30
Este intento tuvo una duración de 15 minutos.

Pregunta 1 7.5 / 7.5 ptos.

Observe el siguiente programa en GCL:

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


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

Usted quiere demostrar que el predicado invariante R se mantiene,


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

¡Correcto!
k ≠ n

(∃k ∈ [0, n] : b[k] = x)

¡Correcto! k−1
x = Π b[i]
i=0

¡Correcto!
k in [0,n]

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

x := x·b[k]

k := k + 1

k = n

Pregunta 2 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).

¡Correcto!
b

espuestas Correctas b+a

a+b
a-b
b
k+b
b+k

Pregunta 3 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?

La combinación a = 10, b = 8

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


impar

¡Correcto!
Cualquier combinación de valores en que b ≥ a, y que ambos sean
pares o ambos impares.

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


sea impar y el otro par

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

La combinación a = 10, b = 11

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


4, b = 2

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


pares o ambos impares

Pregunta 4 4.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?

¡Correcto! {R, ¬B1} → Q

(P, ¬B1) → Q

{R, ¬B1, ¬B2} → Q

¡Correcto! {P} S0 {R}

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

¡Correcto! {R, B1, B2} S1 {R}

{P} S1 {R}

¡Correcto! El ciclo do termina

P→ WP(Q, S1)

{R, B1, B2} S2 {R}

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

espuesta correcta {R, B1, ¬B2} S2 {R}

Pregunta 5 7.5 / 7.5 ptos.


Observe el siguiente programa en GCL:

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


x := 1
k := 0
k−1
{R: k in [0,n], x = π
i=0
b[i] }
do ¬(k = n) → x := x·b[k]; k := k+1
od
n−1
{Q: x = Π
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]

¡Correcto! k = n

¡Correcto! k−1
x = Π b[i]
i=0

x=1

¡Correcto! k in [0,n]

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

k := k + 1

Pregunta 6 7.5 / 7.5 ptos.

Se dice que un programa es correcto de acuerdo a su especificación


si:

¡Correcto!
Partiendo de cualquier estado de la precondición, después de las
instrucciónes, se cumple la postcondición.
No tiene errores de sintaxis y compila perfectamente.

Compila perfectamente de acuerdo a la plataforma escogida de


desarrollo

Cumple la precondición y la postcondición durante todas las


instrucciones del programa.

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


programación utilizado

Pregunta 7 7.5 / 7.5 ptos.

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

Un estado posterior a la ejecución del programa.

Un programa que valida que las entradas de otro programa sean


válidas.

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

¡Correcto!
Una afirmación o condición que debe ser cierta antes de ejecutarse el
programa

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


programador a la hora de escribir un código.

Una pregunta que debe hacerse al iniciar a programar.


Pregunta 8 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

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


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

¡Correcto!
La combinación x = 0.5, y = 0.4

La combinación x = 1, y = 3

Pregunta 9 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) {b > a > 0} B) {b > a > 0}
c := a - b c := a - b
{c > 0} {c < 0}
C) {a > b > 0} D) {a > b > 0}
c := a - b c := a - b
{c > 0} {c < 0}
E) {a < b < 0} F) {a < b < 0}
c := a - b c := a - b
{c > 0} {c < 0}

D)

A)

¡Correcto!
B)

¡Correcto!
C)

¡Correcto!
F)

E)

Pregunta 10 7.5 / 7.5 ptos.

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

¡Correcto!
Una afirmación o condición que debe ser cierta después de ejecutarse
el programa

Un estado anterior a la ejecución del programa.

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


programador a la hora de escribir un código.
Una pregunta que debe hacerse al iniciar a programar.

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

Un programa que valida que las salidas de otro programa sean válidas.

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

S-ar putea să vă placă și