Tipos de lenguajes, alto/bajo nivel, operadores lógicos, cortocircuito y tabla de verdad.
29Preguntas
4Opciones c/u
29Respuestas verificadas
Nota: preguntas de repaso generadas a partir de la transcripción (../transcripciones/transcripcion-practicum-1st.txt). Las respuestas se verificaron ejecutando el código (Python/JS) o por traza rigurosa (Java/R/booleanos).
Índice
Preguntas
1Repaso
Según el material, ¿cuáles son los tres tipos de lenguaje según su forma de traducción y ejecución?
ACompilado, interpretado e intermedio✓
BAlto nivel, medio nivel y bajo nivel
CEstructurado, orientado a objetos y funcional
DCompilado, ensamblado y virtual
Respuesta correcta: A) Compilado, interpretado e intermedio
Por qué: Compilado: binarios que lee el SO. Interpretado: un programa lee y ejecuta en tiempo real. Intermedio: se compila a un lenguaje intermedio que corre en máquina virtual.
2Repaso
Hay que ejecutar un programa mínimo (suma dos números) en un servidor con 256 MB de RAM. Entre un programa compilado en C y un script interpretado en Python, ¿cuál consumirá menos memoria y arrancará más rápido?
AEl script en Python, por ser más corto
BEl programa compilado en C✓
CConsumen lo mismo, solo suma dos números
DEl interpretado, porque no genera binario
Respuesta correcta: B) El programa compilado en C
Por qué: El compilado ya es binario listo para el SO; el interpretado necesita cargar el intérprete y traducir en tiempo real.
3Repaso
¿Por qué un bucle for que repite una operación matemática 1 millón de veces es muchísimo más lento en un lenguaje interpretado puro que en uno compilado?
APorque el interpretado usa más memoria RAM
BPorque cada instrucción se lee y traduce en tiempo real, en cada vuelta✓
CPorque el compilado usa menos líneas de código
DPorque el for no existe en lenguajes interpretados
Respuesta correcta: B) Porque cada instrucción se lee y traduce en tiempo real, en cada vuelta
Por qué: El costo de interpretación se paga por instrucción y por iteración; el compilado ya corre en binario nativo.
4Repaso
¿Qué mide realmente la clasificación de alto nivel o bajo nivel en un lenguaje de programación?
ALa velocidad del procesador donde corre
BEl año de creación del lenguaje
CLa cercanía al hardware frente al nivel de abstracción para el humano✓
DLa cantidad de librerías disponibles
Respuesta correcta: C) La cercanía al hardware frente al nivel de abstracción para el humano
Por qué: Bajo nivel: instrucciones para el procesador, orientado al hardware. Alto nivel: lo entienden los humanos, orientado al software.
5Repaso
¿Cuál es el indicador práctico más fiable, a nivel de sintaxis y código, de que estás ante un lenguaje de bajo nivel?
AQue el código parezca inglés
BLa gestión manual de memoria y el uso de punteros y direcciones✓
CQue tenga recolector de basura
DQue se ejecute en una máquina virtual
Respuesta correcta: B) La gestión manual de memoria y el uso de punteros y direcciones
Por qué: malloc/free y punteros (0x7FF...) son marcas de bajo nivel; el alto nivel lo oculta con objetos y garbage collector.
6Repaso
En el slide POR NIVEL se muestra el mismo Hola en C++ (con iostream) y en ensamblador (COPY, LDX, MOVECH...). ¿Cuál es el de bajo nivel y por qué sirve?
AEl de C++, porque usa menos instrucciones
BEl de ensamblador: son instrucciones para el procesador y ayuda a entender cómo funcionan✓
CAmbos son del mismo nivel
DEl de C++, porque permite videojuegos
Respuesta correcta: B) El de ensamblador: son instrucciones para el procesador y ayuda a entender cómo funcionan
Por qué: El bajo nivel está orientado al hardware (sistemas operativos y núcleos); el alto nivel usa menos instrucciones por acción.
7Repaso
Según la tabla del material, ¿cuáles son los símbolos del operador AND?
A|| / or
B! / not
C&& / and✓
D^ / !=
Respuesta correcta: C) && / and
Por qué: AND: todo debe ser verdadero (circuito en serie). OR: || / or. NOT: ! / not. XOR: ^ / !=.
8Repaso
¿Cuál es la regla universal del operador OR?
ATodo debe ser verdadero
BBasta con que uno sea verdadero✓
CInvierte el valor
DSolo es verdadero si son diferentes
Respuesta correcta: B) Basta con que uno sea verdadero
Por qué: Analogía del material: circuito en paralelo.
9Repaso
¿Cuál es la regla universal del operador XOR?
ATodo debe ser verdadero
BBasta con que uno sea verdadero
CInvierte el valor
DSolo es verdadero si los operandos son diferentes✓
Respuesta correcta: D) Solo es verdadero si los operandos son diferentes
Por qué: Analogía del material: diferencia exclusiva.
10Repaso
En un AND (&&), si lo de la izquierda es Falso, ¿qué ocurre con lo de la derecha?
ASe evalúa de todos modos
BSe ignora: ni se molesta en mirarla porque el resultado ya es Falso✓
CSe convierte en Verdadero
DLanza un error
Respuesta correcta: B) Se ignora: ni se molesta en mirarla porque el resultado ya es Falso
Por qué: Es el cortocircuito: [FALSO] -> [STOP], derecha ignorada. En OR es al revés: con izquierda verdadera se ignora la derecha.
11Repaso
¿Qué se muestra al ejecutar este código? def peligrosa(): print("Ejecutando función") return 1 / 0 if True or peligrosa(): print("Condicion aprobada")
AEjecutando función y luego Condicion aprobada
BSolo Condicion aprobada (peligrosa jamás se ejecuta)✓
CError de división entre cero
DNada, el if es inválido
Respuesta correcta: B) Solo Condicion aprobada (peligrosa jamás se ejecuta)
Por qué: True en corto hace True el or: cortocircuito. La división 1/0 nunca ocurre.
12Repaso
Completa la fila A=V, B=F de la tabla: not (A and B) | (not A) or B | A xor B | not (A or B)
AV | F | V | F✓
BF | F | F | F
CV | V | V | V
DF | V | F | V
Respuesta correcta: A) V | F | V | F
Por qué: not(V and F)=not F=V; (not V) or F=F or F=F; V xor F=V; not(V or F)=not V=F.
13Repaso
¿Cuál es la regla universal del operador AND?
ABasta con que uno sea verdadero
BTodo debe ser verdadero✓
CInvierte el valor
DSolo es verdadero si son diferentes
Respuesta correcta: B) Todo debe ser verdadero
Por qué: Analogía del material: circuito en serie.
14Repaso
¿Cuál es la regla universal del operador NOT?
ATodo debe ser verdadero
BBasta con que uno sea verdadero
CInvierte el valor✓
DSolo es verdadero si son diferentes
Respuesta correcta: C) Invierte el valor
Por qué: Analogía del material: 0 -> 1 / inversor de valor.
15Repaso
¿Qué caracteriza a un lenguaje intermedio?
ASe ejecuta directamente en binario sin pasos previos
BCada instrucción se lee y ejecuta en tiempo real
CEl código fuente se compila a un lenguaje intermedio que luego se ejecuta en una máquina virtual✓
DSolo sirve para scripts web
Respuesta correcta: C) El código fuente se compila a un lenguaje intermedio que luego se ejecuta en una máquina virtual
Por qué: Es el punto medio entre compilado puro e interpretado puro.
16Repaso
El material dice que la lógica booleana es el ecosistema de las decisiones y que los operadores lógicos son sus verbos. ¿Qué permiten?
AAcelerar el procesador
BCombinar verdades básicas para que el sistema tome decisiones complejas de forma automática y predecible✓
CReducir el consumo de memoria
DTraducir código a binario
Respuesta correcta: B) Combinar verdades básicas para que el sistema tome decisiones complejas de forma automática y predecible
Por qué: INPUT del sistema: [VERDADERO] | [FALSO].
17Repaso
En un OR (||), si lo de la izquierda es Verdadero, ¿qué ocurre con lo de la derecha?
ASe evalúa de todos modos
BSe ignora: ni se molesta en mirarla porque el resultado ya es Verdadero✓
CSe convierte en Falso
DLanza un error
Respuesta correcta: B) Se ignora: ni se molesta en mirarla porque el resultado ya es Verdadero
Por qué: [VERDADERO] -> [STOP], derecha ignorada. Es el espejo del caso AND.
18Repaso
Según la comparativa bajo vs alto nivel, ¿qué par corresponde a la gestión de memoria?
Amalloc/free en alto nivel y Garbage Collector en bajo nivel
Bmalloc/free en bajo nivel y Garbage Collector en alto nivel✓
CPunteros en alto nivel y objetos en bajo nivel
DCompilar por arquitectura en alto nivel e intérprete en bajo nivel
Respuesta correcta: B) malloc/free en bajo nivel y Garbage Collector en alto nivel
Por qué: Manual vs automática: control y rendimiento técnico.
19Repaso
En portabilidad y despliegue, ¿qué diferencia el material entre bajo y alto nivel?
AEl bajo nivel solo requiere un intérprete y el alto nivel compilar por arquitectura
BEl bajo nivel requiere compilar por arquitectura (x86 | ARM); el alto nivel solo requiere un intérprete universal✓
CNo hay diferencia de portabilidad
DEl alto nivel no se puede desplegar
Respuesta correcta: B) El bajo nivel requiere compilar por arquitectura (x86 | ARM); el alto nivel solo requiere un intérprete universal
Por qué: COMPILAR | COMPILAR | COMPILAR frente a INTÉRPRETE UNIVERSAL.
20Repaso
En depuración, ¿qué corresponde a cada nivel según la comparativa?
ABajo nivel: tracebacks con línea y tipo; alto nivel: core dumps
BBajo nivel: core dumps y volcados complejos; alto nivel: tracebacks con línea y tipo de error✓
CAmbos usan core dumps
DAmbos usan tracebacks
Respuesta correcta: B) Bajo nivel: core dumps y volcados complejos; alto nivel: tracebacks con línea y tipo de error
Por qué: Seguridad: baja en C/ASM (permite errores críticos), alta en Python/Java (excepciones preventivas).
21Repaso
Completa la fila A=V, B=V de la tabla: not (A and B) | (not A) or B | A xor B | not (A or B)
AF | V | F | F✓
BV | V | V | V
CF | F | F | F
DV | F | V | F
Respuesta correcta: A) F | V | F | F
Por qué: not(V and V)=not V=F; (not V) or V=F or V=V; V xor V=F; not(V or V)=not V=F.
22Repaso
Completa la fila A=F, B=V de la tabla: not (A and B) | (not A) or B | A xor B | not (A or B)
AF | F | F | F
BV | V | V | V
CT | T | V | F✓
DF | V | F | V
Respuesta correcta: C) T | T | V | F
Por qué: not(F and V)=not F=T; (not F) or V=T or V=T; F xor V=V; not(F or V)=not V=F. (T = V.)
23Repaso
Completa la fila A=F, B=F de la tabla: not (A and B) | (not A) or B | A xor B | not (A or B)
AF | F | F | F
BV | V | V | V
CT | T | F | T✓
DF | V | F | V
Respuesta correcta: C) T | T | F | T
Por qué: not(F and F)=not F=T; (not F) or F=T or F=T; F xor F=F; not(F or F)=not F=T. (T = V.)
24Repaso
Variante del slide 12: ¿qué pasaría con if False or peligrosa(): print("Condicion aprobada")?
AImprime Condicion aprobada sin llamar a peligrosa
BSe ejecuta peligrosa(), imprime Ejecuando función y luego explota con división entre cero✓
CNo pasa nada
DImprime False
Respuesta correcta: B) Se ejecuta peligrosa(), imprime Ejecuando función y luego explota con división entre cero
Por qué: Con izquierda falsa el or DEBE evaluar la derecha: no hay cortocircuito que la salve. Es el espejo exacto del ejemplo del slide.
25Repaso
Según la tabla de analogías visuales, ¿a qué equivale el operador AND?
ACircuito en paralelo
BCircuito en serie✓
CInversor de valor
DDiferencia exclusiva
Respuesta correcta: B) Circuito en serie
Por qué: En serie todo debe conducir (todo verdadero). OR = paralelo, NOT = inversor, XOR = diferencia exclusiva.
26Repaso
Según los casos de uso ideales, ¿para qué sirve el bajo nivel y para qué el alto nivel?
ABajo nivel: IA y web empresarial; alto nivel: drivers
BBajo nivel: sistemas operativos y drivers; alto nivel: IA y desarrollo web empresarial✓
CAmbos sirven para lo mismo
DBajo nivel: solo videojuegos
Respuesta correcta: B) Bajo nivel: sistemas operativos y drivers; alto nivel: IA y desarrollo web empresarial
Por qué: DRIVER | KERNEL frente a IA/NL | WEB EMPRESARIAL.
27Repaso
En la abstracción del hardware, ¿qué muestra cada nivel?
ABajo nivel: objetos y funciones; alto nivel: punteros
BBajo nivel: punteros y direcciones (0x7FF...); alto nivel: objetos, atributos y funciones✓
CAmbos muestran punteros
DAmbos ocultan los registros
Respuesta correcta: B) Bajo nivel: punteros y direcciones (0x7FF...); alto nivel: objetos, atributos y funciones
Por qué: El alto nivel oculta los registros; el bajo nivel opera con ellos.
28Repaso
Según el slide de optimización de cortocircuito, ¿qué significa "&& + izquierda falsa"?
AQue se evalúa la derecha de todos modos
BFALSO inmediato e ignora la derecha✓
CQue el resultado es Verdadero
DQue hay que revisar la tabla
Respuesta correcta: B) FALSO inmediato e ignora la derecha
Por qué: Regla gemela: "|| + izquierda verdadera" = VERDADERO inmediato e ignora la derecha.
29Repaso
Según el slide de optimización de cortocircuito, ¿qué significa "|| + izquierda verdadera"?
AQue se evalúa la derecha de todos modos
BQue el resultado es Falso
CVERDADERO inmediato e ignora la derecha✓
DQue hay error de sintaxis
Respuesta correcta: C) VERDADERO inmediato e ignora la derecha
Por qué: Es la regla que salva a divisionSegura, cuentaAtras y peligrosa en los ejercicios.