Practicum · Quiz de repaso R2

Cierre: álgebra booleana

Trazabilidad de los 4 ejercicios (== vs ===, cortocircuito, bucles) y el informe.

18Preguntas
4Opciones c/u
18Respuestas verificadas

Nota: preguntas de repaso generadas a partir de la transcripción (../transcripciones/transcripcion-cierre-algebra-booleana.txt). Las respuestas se verificaron ejecutando el código (Python/JS) o por traza rigurosa (Java/R/booleanos).

Índice

Preguntas

1 Repaso

Ejercicio 1: ¿qué mensajes se imprimen?
function alerta(msg) { console.log("Alerta disparada: " + msg); return false; }
let estado = 0; let conectado = true;
if (estado == false) { console.log("insano"); if (estado === false) {...} else { if (!conectado || alerta("Servidor ocupado")) {...} else { if ("0" == 0 && "0" === 0) {...} else { console.log("Todo normal"); } } } }

  1. Ainsano / Estado booleano estricto
  2. Binsano / Alerta disparada: Servidor ocupado / Todo normal
  3. CEstado inválido
  4. Dinsano / Fallo de red / Caso especial

Respuesta correcta: B) insano / Alerta disparada: Servidor ocupado / Todo normal

Por qué: (0 == false) es true; (0 === false) es false por distinto tipo; !conectado es false así que alerta() sí se ejecuta; ("0" == 0) es true pero ("0" === 0) es false.

2 Repaso

En el Ejercicio 1, ¿por qué NO se imprime "Estado booleano estricto"?

  1. APorque estado no es igual a false
  2. BPorque (estado === false) es false: 0 y false son de distinto tipo
  3. CPorque el if externo es falso
  4. DPorque console.log está mal escrito

Respuesta correcta: B) Porque (estado === false) es false: 0 y false son de distinto tipo

Por qué: == compara con conversión (0 == false es true); === exige mismo tipo y valor.

3 Repaso

Ejercicio 2 (intentos = "3", baneo = False): ¿qué mensajes se imprimen?

  1. AAcceso bloqueado
  2. BIntentos tipo int
  3. CComprobando limite con: 15 / Resultado final: OK
  4. DComprobando limite con: 15 / Resultado final: Error tipo Juan

Respuesta correcta: C) Comprobando limite con: 15 / Resultado final: OK

Por qué: ("3" == 3) es False pero (not False) es True; ("3" != 3) es True; revisar(15) retorna True; ("3" == "3" and "3" != 3) es True.

4 Repaso

Ejercicio 3 (x = "0", y = 0, bloqueo = False, intentos = 3): ¿cuántas divisiones entre cero se llegan a ejecutar?

  1. AUna: 10 / y
  2. BDos: 10 / y e intentos / 0
  3. CNinguna: el cortocircuito y el condicional evitan todas
  4. DTres, una por nivel

Respuesta correcta: C) Ninguna: el cortocircuito y el condicional evitan todas

Por qué: ("0" == 0) es False y evita 10/y; (y == 0) evita intentos/0; el ternario toma else True porque y != 0 es False. Salida: Acceso Nivel 1 Aprobado.

5 Repaso

Ejercicio 4 (clave = "10"): ¿qué se imprime en el Ciclo 2?

  1. AFin iteracion 1
  2. BClave debil
  3. CEjecutando paso 2 / Clave exacta
  4. DCondicion de salida alcanzada

Respuesta correcta: C) Ejecutando paso 2 / Clave exacta

Por qué: ("10" == 10) es true, así que paso(2) se ejecuta; luego (clave === "10") es true. La salida completa termina con Condicion de salida alcanzada y Bucle terminado en el ciclo 3.

6 Repaso

¿Cuánto vale la expresión ("0" == 0 && "0" === 0) en JavaScript?

  1. Atrue, ambas comparaciones son verdaderas
  2. Bfalse, porque ("0" === 0) es false
  3. CLanza TypeError
  4. Dundefined

Respuesta correcta: B) false, porque ("0" === 0) es false

Por qué: Con == hay conversión de tipos ("0" -> 0); con === el string nunca es idéntico al número.

7 Repaso

Según el slide Actividad, ¿qué debe contener el informe?

  1. ASolo álgebra booleana y ejemplos
  2. BÁlgebra booleana, operadores lógicos, cortocircuito y estructuras de control (if-else-elseif), con ejemplos
  3. CSolo estructuras de control
  4. DOperadores lógicos y bucles while/for

Respuesta correcta: B) Álgebra booleana, operadores lógicos, cortocircuito y estructuras de control (if-else-elseif), con ejemplos

Por qué: Además pide consultar: false == 0?, False === 0?, false == "0", false == [].

8 Repaso

En el Ejercicio 4, ¿por qué paso(1) SÍ se ejecuta en el ciclo 1?

  1. APorque clave === 10 es true
  2. BPorque (clave === 10) es false y el || necesita evaluar la derecha
  3. CPorque paso siempre se ejecuta
  4. DPorque el while lo llama directamente

Respuesta correcta: B) Porque (clave === 10) es false y el || necesita evaluar la derecha

Por qué: ("10" === 10) es false por tipos; en un || con izquierda falsa, la derecha se evalúa: cortocircuito.

9 Repaso

Ejercicio 1: ¿qué retorna la función alerta y por qué importa?

  1. ARetorna true, por eso se imprime Fallo de red
  2. BRetorna false después de imprimir; por eso el || final da false y se va al else (Todo normal)
  3. CNo retorna nada
  4. DRetorna el mensaje

Respuesta correcta: B) Retorna false después de imprimir; por eso el || final da false y se va al else (Todo normal)

Por qué: El efecto lateral (imprimir) ocurre aunque el valor retornado sea false.

10 Repaso

Ejercicio 2: ¿por qué SÍ se ejecuta revisar(15)?

  1. APorque baneo es True
  2. BPorque baneo es False y en un or con izquierda falsa se evalúa la derecha
  3. CPorque intentos es número
  4. DPorque el if no tiene else

Respuesta correcta: B) Porque baneo es False y en un or con izquierda falsa se evalúa la derecha

Por qué: Al revés que en el Ejercicio 1 del Bloque 01 de PII: aquí la izquierda NO cortocircuita.

11 Repaso

Ejercicio 3: ¿cuál es la ÚNICA línea que se imprime en toda la ejecución?

  1. AFallo en Nivel 1
  2. BAcceso Denegado
  3. CAcceso Nivel 1 Aprobado
  4. DFallo en Nivel 3

Respuesta correcta: C) Acceso Nivel 1 Aprobado

Por qué: Todos los niveles se superan y ninguna función con división llega a ejecutarse.

12 Repaso

Ejercicio 4: ¿qué se imprime en el Ciclo 1?

  1. A--- Ciclo: 1 --- / Clave exacta
  2. B--- Ciclo: 1 --- / Ejecutando paso 1 / Fin iteracion 1
  3. C--- Ciclo: 1 --- / Condicion de salida alcanzada
  4. DSolo --- Ciclo: 1 ---

Respuesta correcta: B) --- Ciclo: 1 --- / Ejecutando paso 1 / Fin iteracion 1

Por qué: paso(1) se ejecuta porque (clave === 10) es false y el || evalúa la derecha.

13 Repaso

Ejercicio 4: ¿en qué ciclo termina el bucle y con qué mensaje?

  1. ACiclo 2 con Clave exacta
  2. BCiclo 3 con Condicion de salida alcanzada
  3. CCiclo 1 con Fin iteracion 1
  4. DNunca termina

Respuesta correcta: B) Ciclo 3 con Condicion de salida alcanzada

Por qué: En el ciclo 3, paso(3) retorna true y (3 == "3") es true: ejecutando = false. Luego imprime Bucle terminado.

14 Repaso

Según el slide Actividad, ¿qué expresiones pide consultar?

  1. ASolo false == 0?
  2. Bfalse == 0? / False === 0? / false == "0" / false == []
  3. CSolo bucles while y for
  4. Dtrue == 1? / true === 1?

Respuesta correcta: B) false == 0? / False === 0? / false == "0" / false == []

Por qué: Son los casos clásicos de igualdad flexible vs estricta y valores falsy.

15 Repaso

Ejercicio 4: ¿cuántas veces se llama a la función paso en toda la ejecución?

  1. AUna vez
  2. BDos veces
  3. CTres veces (paso 1, 2 y 3)
  4. DCuatro veces

Respuesta correcta: C) Tres veces (paso 1, 2 y 3)

Por qué: Una por ciclo: en el 1 por el ||, en el 2 por el &&, en el 3 por el && de salida. Verificado en la salida ejecutada.

16 Repaso

Ejercicio 2: ¿qué retorna revisar(15) y por qué entra al if interno?

  1. ARetorna False y no entra
  2. BRetorna True porque 15 > 10; como baneo es False, el or lo evalúa
  3. CRetorna 15
  4. DLanza un error

Respuesta correcta: B) Retorna True porque 15 > 10; como baneo es False, el or lo evalúa

Por qué: La función además imprime "Comprobando limite con: 15" como efecto lateral.

17 Repaso

Ejercicio 3, nivel 3: la segunda mitad es (y == 0 or intentos / 0 == 0). ¿Por qué no explota?

  1. APorque intentos / 0 da 0
  2. BPorque (y == 0) es True y el or ya no evalúa la división
  3. CPorque Python permite dividir entre cero
  4. DPorque el if está mal escrito

Respuesta correcta: B) Porque (y == 0) es True y el or ya no evalúa la división

Por qué: Cortocircuito clásico: izquierda verdadera, derecha ignorada.

18 Repaso

Ejercicio 1: ¿qué imprime exactamente la función alerta al ejecutarse?

  1. AServidor ocupado
  2. BAlerta disparada: Servidor ocupado
  3. Cfalse
  4. Dinsano

Respuesta correcta: B) Alerta disparada: Servidor ocupado

Por qué: Concatena "Alerta disparada: " + msg, donde msg es "Servidor ocupado".