You are on page 1of 9

28/5/23, 16:39 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B01]

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/52528/quizzes/121321 1/9
28/5/23, 16:39 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B01]

Historial de intentos

Intento Hora Puntaje


MÁS RECIENTE Intento 1 25 minutos 65 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: 65 de 75


Entregado el 28 de mayo en 16:38
Este intento tuvo una duración de 25 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/52528/quizzes/121321 2/9
28/5/23, 16:39 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B01]

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

  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 /\ f = (k-1)!

Incorrecto Pregunta 2 0 / 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}

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


correcto?

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

  skip

https://poli.instructure.com/courses/52528/quizzes/121321 3/9
28/5/23, 16:39 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B01]

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

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

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

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

  El predicado P no es un invariante del ciclo.

https://poli.instructure.com/courses/52528/quizzes/121321 4/9
28/5/23, 16:39 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B01]

 
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.

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

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

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

https://poli.instructure.com/courses/52528/quizzes/121321 5/9
28/5/23, 16:39 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B01]

{Pos R: p = }

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


(seleccione las opciones que considere correctas):

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

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

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

  [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}

Pregunta 5 8.75 / 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}

  false

  A = 12 /\ B = 10

https://poli.instructure.com/courses/52528/quizzes/121321 6/9
28/5/23, 16:39 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B01]

  true

  a = A /\ b = B

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

Pregunta 6 8.75 / 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}

  B)

  C)

  E)

  A)

  F)

  D)

https://poli.instructure.com/courses/52528/quizzes/121321 7/9
28/5/23, 16:39 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B01]

Pregunta 7 8.75 / 8.75 pts

El siguiente programa es incorrecto con respecto a su especificación:

{Pre Q: a > 0 b>0 a mod 2 = b mod 2}

program ejercicio

input: a, b: Z

var: c: Z

c := 0
c := c + a
c := c - b

return c
{Pos R: 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 uno de los dos sea
impar y el otro par.

  La combinación a = 10, b = 11

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

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

  Cualquier combinación de valores en que b ≥ a, y que a+b sea impar.

  La combinación a = 10, b = 8

  Cualquier combinación de valores en que b >= a.

https://poli.instructure.com/courses/52528/quizzes/121321 8/9
28/5/23, 16:39 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B01]

 
El programa es correcto! Se puede demostrar con la combinación a = 4, b
=2

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

input: a: , b:

a := a + b

b := ______________   

return a, b

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

 a+b

 a-b

 b

 A

 a

Puntaje del examen: 65 de 75

https://poli.instructure.com/courses/52528/quizzes/121321 9/9

You might also like