You are on page 1of 8

29/5/23, 18:38 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B02]

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/53222/quizzes/123340 1/8
29/5/23, 18:38 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B02]

Historial de intentos

Intento Hora Puntaje


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


Entregado el 29 de mayo en 18:38
Este intento tuvo una duración de 15 minutos.

Pregunta 1 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}

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


correcto?

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

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

https://poli.instructure.com/courses/53222/quizzes/123340 2/8
29/5/23, 18:38 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B02]

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

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

  skip

Pregunta 2 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 = }

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 ]

  {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 >= 0]

https://poli.instructure.com/courses/53222/quizzes/123340 3/8
29/5/23, 18:38 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B02]

 
{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 = T} p := p*a; b:= b-1 {b < T}

Pregunta 3 10 / 10 pts

Todo predicado que sea invariante de un ciclo es adecuado para verificar


la corrección del correspondiente programa.

  Falso

  Verdadero

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

https://poli.instructure.com/courses/53222/quizzes/123340 4/8
29/5/23, 18:38 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B02]

      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:

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

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

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

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

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

Pregunta 5 8.75 / 8.75 pts

¿Es la siguiente tripla válida?

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

program mistery   

input: a: , b:

a := 12   

b := 10   

return a, b

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

  Falso

https://poli.instructure.com/courses/53222/quizzes/123340 5/8
29/5/23, 18:38 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B02]

  Verdadero

Pregunta 6 8.75 / 8.75 pts

Para completar Q, el predicado más débil que hace la tripla válida, debe
rellenarse los espacios en blanco con los valores:

{Pre Q: a = _________ /\ b = _________}

program mistery

  input: a: , b:

  a := a + b

  b := a - b

  a := a - b

  return a, b

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

  20 y 12

  12 y 10

  12 y 20

  20 y 24

  10 y 24

Pregunta 7 8.75 / 8.75 pts

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

https://poli.instructure.com/courses/53222/quizzes/123340 6/8
29/5/23, 18:38 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B02]

{Pre Q: ___________________}

program mistery

  input: a: , b:

  var: r:boolean

  if (a + b) mod 2 = 0 then

      r := true

  else

      r := false

  return r

{Pos R: r (a mod 2 b mod 2)}

  a = A /\ b = B

  (a + b) mod 2 = 0

  false

  a mod 2 = b mod 2

  true

Pregunta 8 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
https://poli.instructure.com/courses/53222/quizzes/123340 7/8
29/5/23, 18:38 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B02]

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

  F)

  D)

  E)

  B)

  C)

  A)

Puntaje del examen: 75 de 75

https://poli.instructure.com/courses/53222/quizzes/123340 8/8

You might also like