Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Quiz - Escenario 3
Instrucciones
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
Las respuestas correctas estarán disponibles del 30 de mayo en 23:55 al 31 de mayo en 23:55.
Pregunta 1 10 / 10 pts
{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!}
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!
Pregunta 2 10 / 10 pts
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
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.
Pregunta 3 10 / 10 pts
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
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]
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
{Pre Q: a = A /\ b = B /\ b >= 0}
program pow
input: a: , b:
var: p:
p := 1
{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]
{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}
{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]
{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
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
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)
https://poli.instructure.com/courses/53891/quizzes/125106 9/9