← Volver a los quizzesQuiz gratuito

Fundamentos de la informática y algoritmos

Este módulo está diseñado para consolidar los conceptos esenciales de la informática y la construcción de algoritmos. Cada sección aborda una pregunta típica de evaluación, proporcionando…

9 preguntas~5 min
Fundamentos de la informática y algoritmos — Qwi
0 / 9
Puntuación: 0%
1

¿Cuál es la característica que define a un algoritmo como finito?

2

En el método "Divide y Vencerás", ¿qué ventaja se obtiene al dividir el problema en módulos?

3

Según la definición de hardware, ¿cuál de los siguientes elementos NO pertenece al hardware interno de una computadora?

4

¿Cuál de los siguientes pares de operadores tiene mayor precedencia en una expresión aritmética?

5

Al diseñar un algoritmo no computacional para decidir entre estudiar o ir a un concierto, ¿qué salida representa la decisión "ir al concierto"?

6

En la tabla de verdad de los operadores lógicos, ¿cuál es el resultado de "! (V && F)"?

7

Según el diagrama de un ordenador personal (imagen cette image), ¿qué bus conecta la tarjeta gráfica al procesador?

8

¿Cuál es la diferencia esencial entre los lenguajes de bajo nivel y los de alto nivel?

9

En la clasificación de tipos de datos, ¿qué tipo de variable almacena valores lógicos?

Fundamentos de la informática y algoritmos

Este módulo está diseñado para consolidar los conceptos esenciales de la informática y la construcción de algoritmos. Cada sección aborda una pregunta típica de evaluación, proporcionando contexto, definición y ejemplos prácticos que facilitan el aprendizaje y mejoran la retención.

1. Finitezza de los algoritmos

Un algoritmo se considera finito cuando termina después de un número limitado de pasos. Esta característica es crucial porque garantiza que el proceso no se ejecutará indefinidamente, lo que permitiría obtener una respuesta en un tiempo razonable.

  • Precisión de los pasos: Cada paso debe estar claramente definido, pero la precisión por sí sola no asegura finitud.
  • Lenguaje de programación: Un algoritmo puede describirse en pseudocódigo o en lenguaje natural; no es un requisito que esté escrito en un lenguaje de programación.
  • Dependencia del hardware: La ejecución puede requerir hardware, pero la finitud es una propiedad lógica del algoritmo, independiente del entorno físico.

Recuerda la regla mnemotécnica: “Finito = fin en pasos”. Un algoritmo que no cumple esta condición se clasifica como un proceso potencialmente infinito.

2. Estrategia "Divide y Vencerás"

El método Divide y Vencerás consiste en descomponer un problema complejo en sub‑problemas más pequeños y manejables. La ventaja principal es que facilita la verificación y el mantenimiento de cada módulo. Cada pieza puede probarse de forma aislada, lo que reduce la probabilidad de errores globales y simplifica la actualización del código.

  • Ejemplo típico: el algoritmo de ordenamiento Merge Sort divide la lista en mitades, ordena cada mitad y luego las combina.
  • Beneficio adicional: permite la paralelización, ya que los módulos pueden ejecutarse simultáneamente en diferentes núcleos.

Piensa en piezas de LEGO que se revisan una a una; si una pieza falla, solo necesitas reemplazar esa pieza sin desmontar todo el modelo.

3. Componentes de hardware interno vs. externo

El hardware interno incluye todos los componentes que se encuentran dentro del chasis y están directamente conectados a la placa base. Entre ellos se encuentran la memoria RAM, el chip ROM (BIOS) y la CPU. En contraste, dispositivos como el teclado conectado por USB son considerados hardware externo o periférico.

  • Memoria RAM: almacena datos temporales mientras el procesador ejecuta instrucciones.
  • CPU: unidad central de procesamiento, responsable de ejecutar las instrucciones del programa.
  • Chip ROM: contiene firmware esencial para el arranque del sistema.
  • Teclado USB: dispositivo de entrada que se conecta mediante un puerto externo.

4. Precedencia de operadores aritméticos

En expresiones aritméticas, la precedencia determina el orden de evaluación. Los operadores de multiplicación (*) y división (/) poseen mayor precedencia que la suma (+) y resta (-). Por tanto, en la expresión a + b * c, la multiplicación se evalúa antes que la suma.

  • Regla práctica: PEMDAS (Paréntesis, Exponentes, Multiplicación y División, Suma y Resta).
  • Ejemplo: 3 + 4 * 2 = 3 + 8 = 11, no (3+4) * 2 = 14.

5. Salidas de algoritmos no computacionales

Al diseñar un algoritmo que decide entre estudiar o ir a un concierto, la salida que representa la decisión "ir al concierto" es la acción de asistir al concierto. En términos de diagramas de flujo, esta salida se modela como una rama que lleva a la actividad correspondiente.

  • Resultado en el examen: es una consecuencia, no la salida del algoritmo de decisión.
  • Lanzar la moneda: podría ser un mecanismo interno, pero no la salida final.
  • Inicio del algoritmo: representa el punto de partida, no la conclusión.

6. Operadores lógicos y tabla de verdad

La expresión lógica ! (V && F) se evalúa de la siguiente manera:

  1. Primero se evalúa la conjunción V && F, que da F (falso).
  2. Luego se aplica la negación !, invirtiendo el resultado a Verdadero.

Por lo tanto, el resultado es Verdadero. Esta operación es fundamental en la construcción de condiciones de control.

7. Buses de comunicación en una PC

El bus PCIe (Peripheral Component Interconnect Express) es el canal que conecta la tarjeta gráfica al procesador. PCIe ofrece alta velocidad y baja latencia, lo que es esencial para el rendimiento gráfico.

  • Bus Ethernet: se utiliza para la comunicación de red.
  • Bus USB: sirve para dispositivos periféricos como teclados, ratones y discos externos.
  • Bus SATA: está destinado al intercambio de datos con unidades de almacenamiento como HDD y SSD.

8. Diferencias entre lenguajes de bajo nivel y alto nivel

Los lenguajes de bajo nivel están más cerca del hardware y utilizan instrucciones que se traducen casi directamente a código máquina. Por ejemplo, el lenguaje ensamblador permite manipular registros y direcciones de memoria de forma explícita.

En contraste, los lenguajes de alto nivel abstraen esos detalles, ofreciendo sintaxis más legible y estructuras como clases, funciones y colecciones. Aunque pueden compilarse a código máquina, su principal ventaja es la productividad del programador.

  • Acceso directo a memoria: típico de bajo nivel.
  • Portabilidad: los lenguajes de alto nivel son más portables entre distintas arquitecturas.
  • Curva de aprendizaje: los de bajo nivel requieren mayor conocimiento de la arquitectura subyacente.

Resumen y buenas prácticas

Dominar estos conceptos permite diseñar algoritmos eficientes, comprender la arquitectura de una computadora y elegir el lenguaje de programación adecuado para cada proyecto. A continuación, se presentan algunas recomendaciones para reforzar el aprendizaje:

  • Practica la escritura de algoritmos en pseudocódigo antes de implementarlos.
  • Utiliza diagramas de flujo para visualizar decisiones y salidas.
  • Experimenta con diferentes operadores en un entorno de programación para observar su precedencia.
  • Desmonta y vuelve a montar componentes de hardware (virtualmente o en simuladores) para identificar internos y externos.
  • Compara fragmentos de código en lenguajes de bajo y alto nivel para apreciar sus diferencias estructurales.

Con la comprensión de estos fundamentos, estarás preparado para enfrentar desafíos más avanzados en la informática y la creación de algoritmos robustos.