Está en la página 1de 8

8/11/22, 19:25 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B02]

Quiz - Escenario 3

Fecha de entrega
10 de nov en 23:55
Puntos
75
Preguntas
8
Disponible
5 de nov en 0:00 - 10 de nov en 23:55
Límite de tiempo
90 minutos
Intentos permitidos
2

Instrucciones

Volver a realizar el examen

https://poli.instructure.com/courses/49401/quizzes/112707 1/8
8/11/22, 19:25 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
10 minutos 66.25 de 75


Las respuestas correctas estarán disponibles del 8 de nov en 23:55 al 9 de nov en 23:55.

Puntaje para este intento:


66.25 de 75
Entregado el 8 de nov en 19:24
Este intento tuvo una duración de 10 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/49401/quizzes/112707 2/8
8/11/22, 19:25 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B02]

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

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

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

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

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

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):

https://poli.instructure.com/courses/49401/quizzes/112707 3/8
8/11/22, 19:25 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 b >= 0]

 
{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) p=A ]

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

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}

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


correcto?

https://poli.instructure.com/courses/49401/quizzes/112707 4/8
8/11/22, 19:25 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 - 1, q + 1

 
skip

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

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

Pregunta 4 10
/ 10 pts

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


la corrección del correspondiente programa.

 
Verdadero

 
Falso

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}
https://poli.instructure.com/courses/49401/quizzes/112707 5/8
8/11/22, 19:25 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B02]

 
false

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

 
true

 
A = 12 /\ B = 10

 
a = A /\ b = B

Incorrecto Pregunta 6 0
/ 8.75 pts

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

{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)}

 
true

 
a mod 2 = b mod 2

 
false

https://poli.instructure.com/courses/49401/quizzes/112707 6/8
8/11/22, 19:25 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B02]

 
a = A /\ b = B

 
(a + b) mod 2 = 0

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

 
Verdadero

Pregunta 8 8.75
/ 8.75 pts

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

{Pre Q: ___________________}

program mistery

input: a: , b:

var: r:boolean
https://poli.instructure.com/courses/49401/quizzes/112707 7/8
8/11/22, 19:25 Quiz - Escenario 3: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUPO B02]

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 mod 2 = b mod 2

 
true

 
(a + b) mod 2 = 0

 
false

Puntaje del examen:


66.25 de 75

https://poli.instructure.com/courses/49401/quizzes/112707 8/8

También podría gustarte