← Volver a los quizzesQuiz gratuito

Estructuras de control y elementos básicos

En este módulo aprenderás los conceptos fundamentales que sustentan el flujo de ejecución de los programas: operadores lógicos , bucles , constantes , precedencia aritmética , variables…

16 preguntas~8 min
Estructuras de control y elementos básicos — Qwi
0 / 16
Puntuación: 0%
1

¿Cuál es la regla de prioridad entre los operadores lógicos en los lenguajes de programación descritos?

2

En una estructura 'para-hacer', ¿qué condición debe cumplirse para que el bucle finalice correctamente?

3

Si una constante se declara con todas sus letras en mayúscula, ¿qué implica respecto a su ocupación de memoria?

4

En una expresión aritmética, ¿qué operación tiene mayor prioridad que la multiplicación y división?

5

¿Cuál de los siguientes enunciados describe mejor una variable de tipo bandera/interruptor?

6

Al usar la instrucción 'break' dentro de un bucle, ¿qué ocurre exactamente?

7

En una estructura iterativa anidada, ¿qué regla es indispensable para su correcta construcción?

8

¿Qué tipo de dato se representa mediante comillas simples y qué diferencia tiene respecto a las comillas dobles?

9

Si una expresión lógica combina los operadores 'no' y 'y' sin paréntesis, ¿cómo se evalúa según la prioridad establecida?

10

¿Cuál es la diferencia fundamental entre un error de sintaxis y un error de lógica según la descripción del texto?

11

En la construcción de una cadena vacía, ¿qué característica la diferencia de una cadena de espacios en blanco?

12

¿Qué instrucción se utiliza para terminar prematuramente la ejecución de un módulo y volver al programa principal?

13

Al declarar una variable, ¿qué aspecto es obligatorio según el texto para que sea válida?

14

En una estructura 'mientras-hacer', ¿qué ocurre si la condición nunca se vuelve falsa?

15

¿Cuál es la función principal del depurador (debugger) según la descripción del documento?

16

En una expresión lógica que combina operadores relacionales y lógicos, ¿qué tabla se utiliza para determinar el resultado de los operadores lógicos?

Estructuras de control y elementos básicos en programación

En este módulo aprenderás los conceptos fundamentales que sustentan el flujo de ejecución de los programas: operadores lógicos, bucles, constantes, precedencia aritmética, variables bandera y la correcta anidación de estructuras iterativas. Cada apartado incluye explicaciones claras, ejemplos típicos y buenas prácticas para que puedas aplicar estos conocimientos en cualquier lenguaje de programación.

1. Prioridad de los operadores lógicos

Los operadores lógicos (AND, OR y NOT) determinan cómo se combinan condiciones booleanas. La regla de prioridad más utilizada en la mayoría de los lenguajes (C, Java, Python, JavaScript) es:

  • NOT (negación) tiene la mayor precedencia.
  • Le sigue AND (conjunción).
  • Por último OR (disyunción).

Esto significa que la expresión !a && b || c se evalúa primero como (!a && b) || c. Si deseas cambiar el orden, puedes usar paréntesis para agrupar expresiones.

2. Condición de finalización en bucles "para-hacer" (for)

Un bucle for se compone de tres partes: inicialización, condición y actualización. El bucle termina cuando la condición deja de cumplirse. La respuesta correcta a la pregunta del quiz es:

  • El bucle finaliza cuando la variable contador alcanza el valor final especificado (o lo supera, según la condición).

Ejemplo en C:

for (int i = 0; i < 10; i++) {
    // cuerpo del bucle
}

Cuando i llega a 10, la condición i < 10 es falsa y el bucle se detiene.

3. Constantes en mayúsculas y su ocupación de memoria

En muchos proyectos se escribe el nombre de una constante en mayúsculas (PI, MAX_SIZE) para distinguirla de variables. Sin embargo, el hecho de usar mayúsculas no afecta directamente al uso de memoria. La respuesta correcta es:

  • Una constante declarada en mayúsculas no ocupa espacio en la memoria en tiempo de ejecución, porque su valor se sustituye en tiempo de compilación (en lenguajes compilados) o se trata como una referencia inmutable (en lenguajes interpretados).

En C, por ejemplo, #define MAX 100 es una macro que el preprocesador reemplaza antes de la compilación, sin generar una variable en memoria.

4. Precedencia aritmética: ¿qué operación supera a multiplicación y división?

En la jerarquía de operadores aritméticos, la exponenciación tiene mayor prioridad que la multiplicación (*) y la división (/). Por eso, en expresiones como 2 + 3 ^ 2 * 4, el exponente se calcula antes que la multiplicación.

Ejemplo en Python:

resultado = 2 + 3 ** 2 * 4  # 3 ** 2 = 9, 9 * 4 = 36, 2 + 36 = 38

En lenguajes que no disponen de operador de exponenciación nativo (C, Java), se usa la función pow() que también se evalúa antes de la multiplicación.

5. Variables de tipo bandera o interruptor

Una variable bandera (también llamada interruptor) es una variable lógica que indica si un evento ha ocurrido o si una condición cambió durante la ejecución. Su valor típico es true/false o 1/0. La definición correcta es:

  • Una variable lógica que indica una variación durante la ejecución.

Ejemplo práctico:

bool encontrado = false;
  for (int i = 0; i < n; i++) {
      if (array[i] == objetivo) {
          encontrado = true; // bandera activada
          break; // salir del bucle
      }
  }
  if (encontrado) {
      printf("Elemento encontrado");
  }

6. Uso de break dentro de bucles

La instrucción break interrumpe la ejecución del bucle actual y transfiere el control a la primera línea después del mismo. No reinicia el bucle ni finaliza el programa completo. Por lo tanto, la respuesta correcta es:

  • Se sale del bucle y se continúa la ejecución después de él.

Ejemplo en JavaScript:

for (let i = 0; i < 10; i++) {
    if (i === 5) break; // termina el bucle cuando i vale 5
    console.log(i);
}
console.log('Fin del bucle');

7. Anidación correcta de estructuras iterativas

Cuando se colocan bucles dentro de otros bucles, la estructura interna debe estar completamente dentro de la externa y no debe solaparse con otras sentencias que rompan la lógica. La regla esencial es:

  • La estructura interna debe estar completamente dentro de la externa sin solapamiento.

Ejemplo correcto en C++:

for (int i = 0; i < filas; i++) {
    for (int j = 0; j < columnas; j++) {
        // cuerpo interno
    }
    // fin del bucle interno, continúa el externo
}

Un error típico sería cerrar la llave del bucle externo antes de cerrar la interna, lo que provocaría un syntax error.

8. Diferencia entre comillas simples y dobles

En la mayoría de los lenguajes, las comillas simples delimitan un carácter ('a'), mientras que las comillas dobles delimitan una cadena de caracteres ("hola"). La respuesta correcta es:

  • Carácter, mientras que las comillas dobles indican una cadena de caracteres.

Ejemplo en Java:

char letra = 'A';
String saludo = "Hola Mundo";

En algunos lenguajes (Python) ambas pueden usarse para cadenas, pero la convención sigue siendo la misma: ' para caracteres y " para strings.

Resumen y buenas prácticas

Dominar estas bases te permitirá escribir código más legible y libre de errores. Recuerda:

  • Utilizar siempre paréntesis para aclarar la precedencia de operadores lógicos.
  • Definir claramente la condición de salida de cualquier bucle.
  • Nombrar constantes en mayúsculas para mejorar la mantenibilidad, sin preocuparte por su consumo de memoria.
  • Aplicar la regla de precedencia aritmética: exponenciación > multiplicación/división > suma/resta.
  • Emplear variables bandera para controlar estados y evitar bucles innecesarios.
  • Usar break con criterio, solo cuando se necesita salir anticipadamente de un bucle.
  • Anidar bucles respetando la jerarquía de apertura y cierre de llaves.
  • Distinguir correctamente entre caracteres y cadenas mediante comillas simples y dobles.

Con estos conceptos claros, estarás preparado para enfrentar desafíos más avanzados como estructuras de control condicionales, manejo de excepciones y programación orientada a objetos.