Bloque 01, Python (x = 0): if x != 0 and dividir(10, x) > 1: ... else: print("No"). ¿Qué se imprime?
Respuesta correcta: C) Solo No (dividir jamás se llama)
Por qué: (x != 0) es False y el and ya es False: cortocircuito evita la división entre cero.
Practicum · Quiz de repaso R3
Bloque 01: trazabilidad en Python, Java, JS y R. Bloque 02: álgebra abstracta + el del examen.
Nota: preguntas de repaso generadas a partir de la transcripción (../transcripciones/transcripcion-ejercicios-PII.txt). Las respuestas se verificaron ejecutando el código (Python/JS) o por traza rigurosa (Java/R/booleanos).
Bloque 01, Python (x = 0): if x != 0 and dividir(10, x) > 1: ... else: print("No"). ¿Qué se imprime?
Respuesta correcta: C) Solo No (dividir jamás se llama)
Por qué: (x != 0) es False y el and ya es False: cortocircuito evita la división entre cero.
Bloque 01, Java E2 (a = -5): if (a > 0 || comprobar(a)) ... ¿Qué se imprime?
Respuesta correcta: B) Comprobando -5 / Falso
Por qué: (a > 0) es false, así que el || evalúa comprobar(-5): imprime y retorna (-5 > 0) = false.
Bloque 01, JavaScript (flag = true): if (flag || cuentaAtras()) ... ¿Qué se imprime?
Respuesta correcta: B) Solo Entra (cuentaAtras jamás se ejecuta)
Por qué: true en corto hace true el ||: la derecha se ignora por cortocircuito.
Bloque 01, Python suma_uno: el if del slide termina en "...suma_uno(b) == 1)" SIN dos puntos. ¿Qué pasa al correrlo tal cual?
Respuesta correcta: C) SyntaxError: expected ':' (no corre)
Por qué: Error del propio slide, verificado ejecutándolo. Con el : agregado daría: suma_uno(5) llamado / Condición cumplida.
Suponiendo el ":" que falta en suma_uno (a = 5, b = 0): ¿cuántas veces se llama a suma_uno?
Respuesta correcta: B) Una vez: solo suma_uno(5)
Por qué: (a < 10 and suma_uno(5) > 5) ya es True (6 > 5) y el or evita evaluar (b == 0 and ...). Salida: suma_uno(5) llamado / Condición cumplida.
Bloque 01, Java E6 (den = 0): if (den != 0 && divisionSegura(10, den) > 2) ... ¿Qué se imprime?
Respuesta correcta: C) Solo Menor o error evitado (divisionSegura jamás se llama)
Por qué: (den != 0) es false y el && ya es false: cortocircuito evita la división entre cero.
Bloque 01, R (y = 2): if (y == 0 || calcular(10, y) > 3) ... ¿Qué se imprime?
Respuesta correcta: B) [1] "Calculando 10 2" / [1] "Aceptado"
Por qué: (y == 0) es FALSE, así que se evalúa calcular(10, 2) = 5 > 3 = TRUE. En R, print antepone [1].
Bloque 02, Set 1: ¿cuánto vale (false || !true) && (true ^ false)?
Respuesta correcta: B) F
Por qué: (false || false) = false; false && (lo que sea) = false.
Bloque 02, Set 1: ¿cuánto vale xor(TRUE | FALSE, !TRUE & FALSE)?
Respuesta correcta: B) V
Por qué: xor(True, False) = True: el xor solo es verdadero con operandos diferentes.
Bloque 02, Set 2: ¿cuánto vale xor(TRUE & !FALSE, FALSE | TRUE)?
Respuesta correcta: B) F
Por qué: xor(True, True) = False: el xor exige operandos diferentes.
Bloque 02, Set 2: ¿cuánto vale (!false ^ true) && (true || false)?
Respuesta correcta: B) V
Por qué: (true ^ true) = true... cuidado: (!false ^ true) = (true ^ true) = true; (true || false) = true; true && true = true.
[!] EL DEL EXAMEN: ¿cuánto vale (!(false || !true) && (true ^ false)) || (!(true && !false) ^ (false || !true))?
Respuesta correcta: B) V
Por qué: Grupo 1: !(false) && true = true. Grupo 2: !(true) ^ (false) = false. true || false = true.
Bloque 01, Java E2: ¿con qué valor de a SÍ se imprimiría "Verdadero" (sin llamar a comprobar)?
Respuesta correcta: B) Con cualquier a > 0
Por qué: Con (a > 0) = true, el || cortocircuita y comprobar ni se llama.
Bloque 01, JS: ¿con qué valor de flag SÍ se ejecutaría cuentaAtras()?
Respuesta correcta: B) Con flag = false (el || necesitaría evaluar la derecha)
Por qué: Solo con izquierda falsa el || evalúa la derecha.
Bloque 01, Java E6: ¿con qué valor de den SÍ se llamaría a divisionSegura?
Respuesta correcta: B) Con cualquier den distinto de 0
Por qué: Con (den != 0) = true, el && evalúa la derecha.
Bloque 01, R: ¿con qué valor de y se imprimiría "Rechazado"?
Respuesta correcta: C) Con y = 4 (calcular da 2.5, que no es > 3)
Por qué: Con y = 0 el || cortocircuita a Aceptado; con y = 2 da 5 > 3 = Aceptado; con y = 4 da 2.5, cae al else.
Bloque 02, Set 1: ¿cuánto vale (not False or True) != (False and (False and not True))?
Respuesta correcta: B) V
Por qué: (True) != (False) = True.
Bloque 02, Set 1: ¿cuánto vale (true && !false) || (false ^ true)?
Respuesta correcta: B) V
Por qué: (true) || (true) = true: con que un lado sea verdadero basta.
Bloque 02, Set 2: ¿cuánto vale (!true && false) !== (!false || true)?
Respuesta correcta: B) V
Por qué: (false) !== (true) = true: son diferentes.
Bloque 02, Set 2: ¿cuánto vale (not True or False) ^ (True and not False)?
Respuesta correcta: B) V
Por qué: (False) ^ (True) = True: el xor exige operandos diferentes.
Bloque 02, Set 1: ¿cuánto vale (!false || true) !== (!true && false)?
Respuesta correcta: B) V
Por qué: (true) !== (false) = true: son estrictamente diferentes.
Bloque 02, Set 1: ¿cuánto vale (False != True) and (not False or True)?
Respuesta correcta: B) V
Por qué: (True) and (True) = True.
Bloque 02, Set 2: ¿cuánto vale xor(!FALSE | TRUE, FALSE & !TRUE)?
Respuesta correcta: B) V
Por qué: xor(True, False) = True: operandos diferentes.
Bloque 02, Set 2: ¿cuánto vale (true || !false) && (!true !== false)?
Respuesta correcta: B) V
Por qué: (true) && (true) = true: ambos lados verdaderos.
Bloque 01: si suma_uno(b) SÍ llegara a llamarse con b = 0, ¿qué imprimiría y retornaría?
Respuesta correcta: A) Imprimiría suma_uno(0) llamado y retornaría 1
Por qué: Verificado ejecutándolo: print(f"suma_uno(0) llamado"), retorna 0 + 1 = 1. En el slide nunca se llama por el or.
Bloque 01, Java E2: si a fuera 5, ¿qué imprimiría comprobar y qué saldría?
Respuesta correcta: A) Comprobando 5 / Verdadero (comprobar ni se llama por el ||)
Por qué: Con (5 > 0) = true el || cortocircuita: comprobar no se ejecuta y entra directo al if. Variante hipotética del slide (ahí a = -5).