Está en la página 1de 4

Quiz - Escenario 3

Fecha de entrega
31 de mayo en 23:55
Puntos
75
Preguntas
5
Disponible
28 de mayo en 0:00 - 31 de mayo en 23:55
4 días
Límite de tiempo
90 minutos
Intentos permitidos
2

Instrucciones

Volver a realizar el examen

Historial de intentos

Intento Hora Puntaje


MÁS RECIENTE Intento 1
16 minutos 75 de 75


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

Puntaje para este intento:


75 de 75
Entregado el 31 de mayo en 21:32
Este intento tuvo una duración de 16 minutos.

Pregunta 1 15
/ 15 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 /\ a > 0 /\ b > 0 /\ r >= 0}

{t = r, T = 0}

    while r <= b

        q := q + 1

        r := r - b

    return q, r

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

Es posible afirmar que:

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

 
Aunque el programa es correcto, no es posible demostrar su corrección con el P y t propuestos. Esto, ya que P no contiene
toda la información necesaria.

 
Aunque el programa es correcto, no es posible demostrar su corrección con el P y t propuestos. Esto, ya que t no es una
función cota del ciclo.

 
El programa no es correcto.

 
Aunque el programa no es correcto, siempre termina.

Pregunta 2 15
/ 15 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 := p*a; b:= b-1 {p = A /\ a = A /\ 0 <= b <= B}

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

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

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

 
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.

 
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.

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

Pregunta 4 15
/ 15 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:

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

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

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

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

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

Pregunta 5 15
/ 15 pts

Todo predicado que sea invariante de un ciclo es adecuado para verificar la corrección del correspondiente programa.

 
Verdadero

 
Falso

Puntaje del examen:


75 de 75

También podría gustarte