Tema 71. Tipos elementales de datos. Estructuras convencionales de datos. Estructuras dinámicas de datos. Ficheros. Tipos de ficheros: descripción, funcionalidad y clasificación. Organización de ficheros. Concepto y tipos: métodos de acceso en el tratamiento de un fichero.

OPE 2025. TFA INFORMÁTICA

Tema 71: Tipos de datos, estructuras y ficheros

1. Tipos elementales de datos

Los tipos de datos elementales son las bases fundamentales para la representación de la información en los sistemas. Entre los más comunes se encuentran:

  • Numéricos: Enteros (int) y reales (float/double).
  • Carácter: Representación de un solo símbolo (char).
  • Booleanos: Valores lógicos (true/false).

Estos tipos son cruciales para operaciones básicas y se utilizan como bloques de construcción en estructuras de datos más complejas.


2. Estructuras convencionales de datos

Son organización de datos que facilitan el almacenamiento y acceso eficiente a la información. Ejemplos:

  • Arrays (vectores): Colecciones de datos homogéneos indexados.
  • Matrices: Extensión de los arrays para datos multidimensionales.
  • Registros (structs): Conjunto de campos heterogéneos.
  • Listas: Secuencia ordenada de elementos, pudiendo ser simples, dobles o circulares.
  • Pilas y colas: Estructuras lineales con operaciones restringidas (LIFO y FIFO, respectivamente).

3. Estructuras dinámicas de datos

Estas estructuras permiten una gestión flexible de la memoria y son fundamentales en problemas complejos:

  • Listas enlazadas: Nodos que contienen datos y referencias a otros nodos.
  • Árboles: Estructuras jerárquicas donde cada nodo tiene hijos.
    • Especialmente útiles: árboles binarios y árboles de búsqueda.
  • Grafos: Conjuntos de nodos conectados mediante aristas.
    • Clasificación: dirigidos/no dirigidos y ponderados/no ponderados.
  • Tablas hash: Asociación eficiente clave-valor mediante funciones hash.

4. Ficheros: tipos, descripción y funcionalidad

Los ficheros son estructuras para almacenar datos de manera persistente. Los principales tipos incluyen:

  • De texto: Datos en formato legible (ASCII o Unicode).
  • Binarios: Datos en formato no legible, optimizados para rendimiento.

Clasificación según contenido:

  • Ficheros de datos, ejecutables, configuración, registros, entre otros.

Clasificación según acceso:

  • Secuenciales: Lectura y escritura en orden.
  • Aleatorios: Acceso directo a cualquier parte.

5. Organización de ficheros

La organización afecta al rendimiento y facilidad de uso. Principales modelos:

  • Organización secuencial: Los registros se almacenan uno tras otro.
  • Organización indexada: Uso de índices para acelerar el acceso.
  • Organización directa: Acceso mediante cálculos en la posición física (hash).

6. Métodos de acceso en ficheros

Los métodos de acceso definen cómo se procesan los datos en un fichero:

  • Acceso secuencial: Lectura o escritura en orden lineal.
  • Acceso directo: Permite saltar a cualquier punto del fichero.
  • Acceso indexado: Combina secuencialidad con índices.
  • Acceso por particiones: División del fichero en bloques o segmentos.

Entendido, voy a generar un conjunto de preguntas con sus respectivas respuestas explicadas. Aquí tienes el primer bloque:


Pregunta 1: ¿Qué tipo de dato se utiliza para representar valores lógicos en los sistemas de programación?

  1. Entero
  2. Real
  3. Booleano
  4. Carácter

Respuesta correcta: 3. Booleano

  • Justificación: Los valores lógicos representan dos estados: verdadero (true) y falso (false). Esto se realiza a través del tipo de dato booleano, fundamental en operaciones condicionales y control de flujo.

Respuestas incorrectas:

  • 1. Entero: Aunque los enteros pueden usarse para simular valores lógicos (e.g., 0 para falso y 1 para verdadero), no es su propósito principal.
  • 2. Real: Los datos reales son números con punto decimal y no se relacionan con valores lógicos.
  • 4. Carácter: Los caracteres almacenan un único símbolo textual, no valores lógicos.

Pregunta 2: ¿Cuál de las siguientes es una estructura de datos dinámica?

  1. Array
  2. Lista enlazada
  3. Registro (struct)
  4. Matriz

Respuesta correcta: 2. Lista enlazada

  • Justificación: Las listas enlazadas son dinámicas porque permiten añadir o eliminar nodos durante la ejecución del programa, gestionando eficientemente la memoria.

Respuestas incorrectas:

  • 1. Array: Es una estructura estática, ya que su tamaño se define al inicio y no puede cambiar.
  • 3. Registro: Los registros son estructuras convencionales que agrupan campos heterogéneos, pero su tamaño es fijo.
  • 4. Matriz: Como extensión del array, su tamaño también se define de forma estática.

Pregunta 3: ¿Cuál es la organización de ficheros que permite acceso rápido mediante índices?

  1. Secuencial
  2. Directa
  3. Indexada
  4. Por particiones

Respuesta correcta: 3. Indexada

  • Justificación: En la organización indexada, los índices actúan como punteros que facilitan el acceso directo a registros específicos, optimizando la velocidad de búsqueda.

Respuestas incorrectas:

  • 1. Secuencial: Los registros se leen en orden, lo que puede ser lento si se busca un dato específico.
  • 2. Directa: Aunque permite acceso rápido mediante cálculo de posición, no utiliza índices intermedios.
  • 4. Por particiones: Se refiere a dividir un fichero en bloques, pero no facilita directamente el acceso mediante índices.

Pregunta 4: ¿Qué método de acceso se caracteriza por la lectura lineal de los registros?

  1. Secuencial
  2. Directo
  3. Indexado
  4. Hash

Respuesta correcta: 1. Secuencial

  • Justificación: El acceso secuencial lee los registros en el orden en que están almacenados, sin saltar posiciones. Es útil para procesar todos los datos.

Respuestas incorrectas:

  • 2. Directo: Permite saltar a cualquier posición, sin necesidad de seguir un orden lineal.
  • 3. Indexado: Usa índices para acceso específico, no para lectura continua.
  • 4. Hash: Utiliza funciones hash para calcular posiciones, no sigue un orden predefinido.

Pregunta 5: ¿Cuál es el objetivo principal de las tablas hash?

  1. Almacenar datos jerárquicos.
  2. Optimizar el almacenamiento de datos binarios.
  3. Asociar claves y valores de forma eficiente.
  4. Ordenar registros de manera secuencial.

Respuesta correcta: 3. Asociar claves y valores de forma eficiente

  • Justificación: Las tablas hash permiten acceder a valores asociados a claves únicas de forma rápida, utilizando funciones hash para calcular su ubicación.

Respuestas incorrectas:

  • 1. Almacenar datos jerárquicos: Esto es propio de los árboles, no de las tablas hash.
  • 2. Optimizar almacenamiento de datos binarios: Las tablas hash no están diseñadas específicamente para datos binarios.
  • 4. Ordenar registros de manera secuencial: Las tablas hash no garantizan ningún orden en los datos almacenados.

Aquí tienes un nuevo bloque de preguntas con el mismo formato:


Pregunta 6: ¿Qué estructura de datos sería la más adecuada para representar una jerarquía, como un árbol genealógico?

  1. Lista enlazada
  2. Árbol
  3. Grafo
  4. Tabla hash

Respuesta correcta: 2. Árbol

  • Justificación: Un árbol es la estructura más adecuada para representar jerarquías, ya que cada nodo puede tener un conjunto de nodos hijos, estableciendo relaciones padre-hijo.

Respuestas incorrectas:

  • 1. Lista enlazada: Solo permite relaciones lineales, no jerárquicas.
  • 3. Grafo: Aunque puede representar relaciones complejas, no está optimizado para jerarquías con un nodo raíz.
  • 4. Tabla hash: Es útil para asociaciones clave-valor, pero no para estructurar datos jerárquicos.

Pregunta 7: ¿Qué tipo de fichero es el más adecuado para almacenar configuraciones legibles por humanos?

  1. Binario
  2. Texto
  3. Indexado
  4. Directo

Respuesta correcta: 2. Texto

  • Justificación: Los ficheros de texto son legibles por humanos y se utilizan comúnmente para almacenar configuraciones en formatos como JSON, XML o INI.

Respuestas incorrectas:

  • 1. Binario: Es más eficiente en términos de espacio y rendimiento, pero no es legible sin herramientas específicas.
  • 3. Indexado: La organización indexada no está relacionada con la legibilidad.
  • 4. Directo: Se refiere al método de acceso, no a la estructura del fichero.

Pregunta 8: ¿Cuál es una ventaja clave de las listas enlazadas frente a los arrays?

  1. Mayor velocidad de acceso por índice.
  2. Uso eficiente de memoria para inserciones y eliminaciones.
  3. Menor uso de memoria en general.
  4. Soporte para datos heterogéneos.

Respuesta correcta: 2. Uso eficiente de memoria para inserciones y eliminaciones

  • Justificación: Las listas enlazadas no requieren reasignar memoria para agregar o eliminar elementos, a diferencia de los arrays, donde las operaciones pueden ser costosas si requieren redimensionamiento.

Respuestas incorrectas:

  • 1. Mayor velocidad de acceso por índice: Las listas enlazadas no tienen índices directos; su acceso es secuencial.
  • 3. Menor uso de memoria en general: Las listas enlazadas consumen más memoria debido a los punteros adicionales.
  • 4. Soporte para datos heterogéneos: Esto también es posible con registros, pero no es una ventaja exclusiva de las listas enlazadas.

Pregunta 9: ¿Qué método de acceso es el más eficiente para grandes volúmenes de datos con claves únicas?

  1. Secuencial
  2. Directo
  3. Indexado
  4. Hash

Respuesta correcta: 4. Hash

  • Justificación: Las tablas hash permiten acceder rápidamente a los datos utilizando claves únicas, con complejidad promedio de O(1) para búsquedas e inserciones.

Respuestas incorrectas:

  • 1. Secuencial: Es lento para grandes volúmenes, ya que requiere recorrer todos los registros.
  • 2. Directo: Requiere un cálculo preciso de posición, pero no es eficiente para claves complejas.
  • 3. Indexado: Es eficiente, pero generalmente más lento que el hashing para búsquedas directas.

Pregunta 10: ¿Cuál de las siguientes estructuras permite relaciones complejas entre nodos, como redes sociales?

  1. Árbol
  2. Grafo
  3. Pila
  4. Array

Respuesta correcta: 2. Grafo

  • Justificación: Los grafos permiten representar relaciones complejas entre nodos, como amigos en una red social, donde los nodos representan personas y las aristas, las relaciones.

Respuestas incorrectas:

  • 1. Árbol: Es adecuado para jerarquías, pero no para relaciones complejas entre nodos.
  • 3. Pila: Es una estructura lineal sin conexiones entre elementos.
  • 4. Array: No soporta relaciones entre elementos, solo un almacenamiento secuencial.

¡Por supuesto! Aquí tienes un nuevo conjunto de 10 preguntas, con las respectivas explicaciones:


Pregunta 11: ¿Qué estructura de datos es más adecuada para implementar un sistema de deshacer (undo)?

  1. Cola
  2. Pila
  3. Árbol
  4. Lista enlazada

Respuesta correcta: 2. Pila

  • Justificación: Las pilas funcionan con el principio LIFO (último en entrar, primero en salir), ideal para sistemas de deshacer donde la última acción realizada es la primera en revertirse.

Respuestas incorrectas:

  • 1. Cola: Funciona con el principio FIFO, lo que no es adecuado para deshacer.
  • 3. Árbol: No está diseñado para manejar un historial de acciones.
  • 4. Lista enlazada: Aunque podría usarse, no es tan eficiente ni natural como la pila para esta tarea.

Pregunta 12: ¿Qué característica define una matriz frente a un array?

  1. Los elementos pueden ser heterogéneos.
  2. Tiene múltiples dimensiones.
  3. Permite acceso directo por claves.
  4. Usa memoria dinámica.

Respuesta correcta: 2. Tiene múltiples dimensiones

  • Justificación: Una matriz es una extensión de un array, con dos o más dimensiones, lo que permite representar datos tabulares.

Respuestas incorrectas:

  • 1. Los elementos pueden ser heterogéneos: Los elementos de una matriz deben ser homogéneos.
  • 3. Permite acceso directo por claves: Esto es propio de tablas hash, no de matrices.
  • 4. Usa memoria dinámica: No es obligatorio para una matriz; muchas veces se almacenan en memoria estática.

Pregunta 13: ¿Qué ventaja tiene la organización de ficheros directa sobre la secuencial?

  1. Ocupa menos espacio en disco.
  2. Permite acceso más rápido a registros específicos.
  3. Es más fácil de implementar.
  4. Mejora la integridad de los datos.

Respuesta correcta: 2. Permite acceso más rápido a registros específicos

  • Justificación: La organización directa permite saltar a cualquier registro calculando su posición, en lugar de recorrer los registros secuencialmente.

Respuestas incorrectas:

  • 1. Ocupa menos espacio en disco: El espacio depende más de los datos y no del método de organización.
  • 3. Es más fácil de implementar: La implementación es más compleja que la secuencial.
  • 4. Mejora la integridad de los datos: Esto no depende directamente del método de organización.

Pregunta 14: ¿Qué estructura es más adecuada para almacenar una cola de impresión?

  1. Lista enlazada circular
  2. Árbol binario
  3. Cola
  4. Pila

Respuesta correcta: 3. Cola

  • Justificación: La cola sigue el principio FIFO (primero en entrar, primero en salir), ideal para manejar trabajos en el orden en que se reciben.

Respuestas incorrectas:

  • 1. Lista enlazada circular: Aunque puede implementarse como base, no es el modelo lógico ideal.
  • 2. Árbol binario: No es necesario estructurar las tareas jerárquicamente.
  • 4. Pila: El LIFO de las pilas no refleja el comportamiento de una cola de impresión.

Pregunta 15: ¿Qué método de acceso a ficheros es más adecuado para procesar todos los registros uno por uno?

  1. Secuencial
  2. Directo
  3. Indexado
  4. Hash

Respuesta correcta: 1. Secuencial

  • Justificación: El acceso secuencial es óptimo para recorrer todos los registros en el orden en que se encuentran almacenados.

Respuestas incorrectas:

  • 2. Directo: Está pensado para acceso puntual, no para procesamiento completo.
  • 3. Indexado: Se usa para localizar registros específicos rápidamente.
  • 4. Hash: Se centra en búsquedas eficientes por clave, no en recorrer secuencialmente.

Pregunta 16: ¿Qué tipo de estructura de datos permite almacenar pares clave-valor?

  1. Array
  2. Tabla hash
  3. Pila
  4. Cola

Respuesta correcta: 2. Tabla hash

  • Justificación: Las tablas hash están diseñadas para almacenar y acceder a pares clave-valor de forma eficiente mediante funciones hash.

Respuestas incorrectas:

  • 1. Array: No permite asociar claves con valores directamente.
  • 3. Pila: Es una estructura LIFO, no diseñada para pares clave-valor.
  • 4. Cola: Funciona bajo el principio FIFO y no admite pares clave-valor.

Pregunta 17: ¿Qué estructura de datos es ideal para modelar redes, como carreteras o vuelos?

  1. Árbol binario
  2. Grafo
  3. Lista enlazada
  4. Pila

Respuesta correcta: 2. Grafo

  • Justificación: Los grafos son ideales para modelar redes, ya que pueden representar relaciones complejas como conexiones entre ciudades o vuelos.

Respuestas incorrectas:

  • 1. Árbol binario: No puede representar relaciones complejas como las redes.
  • 3. Lista enlazada: Es lineal y no adecuada para conexiones múltiples.
  • 4. Pila: No tiene la capacidad de modelar relaciones.

Pregunta 18: ¿Cuál es una desventaja de las listas enlazadas frente a los arrays?

  1. Uso de memoria adicional por los punteros.
  2. Incapacidad de modificar su tamaño.
  3. Complejidad para insertar elementos.
  4. Acceso secuencial a los elementos.

Respuesta correcta: 1. Uso de memoria adicional por los punteros

  • Justificación: Las listas enlazadas requieren memoria extra para almacenar referencias a los nodos siguiente y/o anterior.

Respuestas incorrectas:

  • 2. Incapacidad de modificar su tamaño: Las listas enlazadas son dinámicas.
  • 3. Complejidad para insertar elementos: La inserción es sencilla en listas enlazadas.
  • 4. Acceso secuencial a los elementos: Aunque es una limitación, no es una desventaja exclusiva frente a arrays.

Pregunta 19: ¿Qué método de acceso se combina con índices para optimizar la búsqueda?

  1. Secuencial
  2. Directo
  3. Indexado
  4. Hash

Respuesta correcta: 3. Indexado

  • Justificación: El método indexado utiliza índices como punteros para localizar registros más rápido sin recorrer todo el fichero.

Respuestas incorrectas:

  • 1. Secuencial: No usa índices.
  • 2. Directo: Usa cálculos para acceder directamente a posiciones, pero no índices.
  • 4. Hash: Es un enfoque basado en claves únicas, no en índices.

Pregunta 20: ¿Qué estructura permite gestionar tareas con prioridad?

  1. Cola simple
  2. Cola de prioridad
  3. Árbol binario
  4. Lista enlazada

Respuesta correcta: 2. Cola de prioridad

  • Justificación: La cola de prioridad asigna niveles a las tareas, procesando primero las más prioritarias.

Respuestas incorrectas:

  • 1. Cola simple: Procesa en orden FIFO, sin prioridades.
  • 3. Árbol binario: Aunque podría implementarse, no es específico para manejar prioridades.
  • 4. Lista enlazada: No incluye una gestión explícita de prioridades.

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *