Está en la página 1de 9

30/5/23, 23:27 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B03]

Quiz - Escenario 3

Fecha de entrega 30 de mayo en 23:55 Puntos 75 Preguntas 8


Disponible 27 de mayo en 0:00 - 30 de mayo en 23:55 Límite de tiempo 90 minutos
Intentos permitidos 2

Instrucciones

Volver a realizar el examen

https://poli.instructure.com/courses/53891/quizzes/125106 1/9
30/5/23, 23:27 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B03]

Historial de intentos

Intento Hora Puntaje


MÁS RECIENTE Intento 1 41 minutos 44.38 de 75

 Las respuestas correctas estarán disponibles del 30 de mayo en 23:55 al 31 de mayo en 23:55.

Puntaje para este intento: 44.38 de 75


Entregado el 30 de mayo en 23:24
Este intento tuvo una duración de 41 minutos.

Pregunta 1 10 / 10 pts

A continuación se presenta un programa que calcula el factorial de n (n!)


para n entero no negativo.

{Pre Q: n = N /\ n >= 0}

program factorial

  input: n:

  var: f: , k:

  f := 1

  k := 1

{Inv P: ?}

{t = ?}

  while k <= n

      f := f * k

      k := k + 1

  return f

{Pos R: f = N!}

Un invariante de ciclo P que permite demostrar la corrección del


programa es:

https://poli.instructure.com/courses/53891/quizzes/125106 2/9
30/5/23, 23:27 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B03]

  1 <= k <= n /\ f = k!

  n = N /\ 1 <= k <= n+1 /\ f = (k-1)!

  1 <= k <= n+1 /\ f = (k-1)!

  n = N /\ 1 <= k <= n+1 /\ f = k!

  n = N /\ 1 <= k <= n /\ f = (k-1)!

Pregunta 2 10 / 10 pts

A continuación se presenta un programa que calcula el cociente y residuo


de la división entera entre dos enteros positivos.

{Pre Q: a = A /\ b = B /\ a > 0 /\ b > 0}

program div_and_mod

  input: a: , b:

  var: q: , r:

  q := 0

  r := a

{Inv P: a = A /\ b = B /\ A = qB + r}   

{t = r, T  = 0}

  while r >= b

      q := q + 1

      r := r - b

  return q, r

{Pos R: A = qB + r /\ 0 <= r < B}

Sobre el invariante de ciclo y la función cota propuestos, es posible


afirmar quex:

https://poli.instructure.com/courses/53891/quizzes/125106 3/9
30/5/23, 23:27 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B03]

 
No es posible demostrar la corrección del ciclo ya que el t propuesto no es
una función cota del ciclo.

 
Es posible demostrar la corrección del ciclo a partir del P y t propuestos.

 
A partir del P y t propuestos, es posible demostrar que el programa no es
correcto.

 
No es posible demostrar la corrección del ciclo a partir del P y t propuestos
ya que P (aunque sí es invariante) no contiene toda la información
necesaria sobre el ciclo.

  El predicado P no es un invariante del ciclo.

Pregunta 3 10 / 10 pts

Observe el siguiente programa: 

{Pre Q: 0 < x 0 < y}

program ejercicio

input: x, y: Z

var: q, r: Z

r, q := x, 0; 

{Inv P: x = q * y + r 0 < r}

while r >= y do

  S

return q, r

{Pos R: x = q * y + r  0 < r < y}

https://poli.instructure.com/courses/53891/quizzes/125106 4/9
30/5/23, 23:27 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B03]

¿Qué instrucción debe reemplazar a S para que el programa sea


correcto?

  r, q := r - 1, q + 1

  r, q := r - y, q + 1

  r, q := r + y, q - 1

  skip

  r, q := r + 1, q - 1

Pregunta 4 10 / 10 pts

A continuación se presenta un programa, junto con su especificación, que


calcula el valor de para a real y b entero no negativo.

{Pre Q: a = A /\ b = B /\ b >= 0}

program pow

  input: a: , b:

  var: p:

   p := 1

{Inv P: p = /\ a = A /\ 0 <= b <= B}

{t = b, T = 0}

  while b > 0

      p := p * a

      b := b - 1

  return p

{Pos R: p = }

https://poli.instructure.com/courses/53891/quizzes/125106 5/9
30/5/23, 23:27 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B03]

Para probar la corrección del programa se debe demostrar que


(seleccione las opciones que considere correctas):

  [p = A /\ a = A /\ 0 <= b <= B /\ (b > 0) p=A ]

 
{p = A /\ a = A /\ 0 <= b <= B /\ b > 0} p := p*a; b:= b-1 {p = A /\ a =
A /\ 0 <= b <= B}

  [p = A /\ a = A /\ 0 <= b <= B /\ b > 0 b >= 0]

 
{p = A /\ a = A /\ 0 <= b <= B /\ b > 0 /\ b = T} p := p*a; b:= b-1 {b < T}

  {a = A /\ b = B /\ b >= 0} p := 1 {p = A /\ a = A /\ 0 <= b <= B}

Incorrecto Pregunta 5 0 / 8.75 pts

Complete Q, el predicado más débil que hace la tripla válida.

{Pre Q: a =  0 /\ a A }

program mistery

input: a:   

var: b:

b := 1 / a

return b

{Pos R: A*b = 1}

Respuesta 1:

Respuesta 2:

https://poli.instructure.com/courses/53891/quizzes/125106 6/9
30/5/23, 23:27 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B03]

Incorrecto Pregunta 6 0 / 8.75 pts

¿Cuál es el predicado Q más fuerte que hace válida la siguiente tripla?

{Pre Q: _________________________}

program mistery

  input: a: , b:

  a := 12

  b := 10

  return a, b

{Pos R: a = 12 /\ A = 12 /\ b = 10 /\ B = 10}

  A = 12 /\ B = 10

  true

  a = A /\ b = B

  false

  a = A /\ a = 12 /\ b = 10 /\ b = B

Incorrecto Pregunta 7 0 / 8.75 pts

Complete el siguiente programa de manera que la tripla resultante sea


válida:

{Pre Q: a = A b=B a > b}

program mistery
https://poli.instructure.com/courses/53891/quizzes/125106 7/9
30/5/23, 23:27 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B03]

input: a: , b:

a := a + b

b := ______________   

return a, b

{Pos R: a = A + B b = A}

 A

 b

 a-b

 a+b

 a

Parcial Pregunta 8 4.38 / 8.75 pts

Los siguientes programas tienen únicamente asignaciones. Seleccione


los que son correctos de acuerdo a su especificación. En todos los
programas, las variables a, b y c son enteras.

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}

https://poli.instructure.com/courses/53891/quizzes/125106 8/9
30/5/23, 23:27 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B03]

  C)

  E)

  F)

  B)

  A)

  D)

Puntaje del examen: 44.38 de 75

https://poli.instructure.com/courses/53891/quizzes/125106 9/9

También podría gustarte