Tipos de Datos y Estructuras en Programación: Una Guía Completa

Variables Compuestas

Son variables con estructura interna, es decir, con partes que podemos diferenciar. En muchas de ellas hay que detallar alguna parte de su definición (su tamaño, el número o tamaño de las partes, etc.). Las más frecuentes son:

Cadena (String)

Conjunto de 0 a 255 caracteres. El primer byte contiene el número de caracteres y los siguientes cada uno un carácter.

Registro (Record)

Variable compuesta por la unión en una única estructura de más de una variable; cada una de ellas se identifica por una etiqueta y deben ir en el mismo orden y con los mismos tamaños. (Ejemplo: Fecha = Día-Mes-Año).

Matriz (Array)

Conjunto ordenado de variables iguales entre sí. Puede estar organizado en una o más dimensiones. Localizamos cada dato por el nombre de la variable y la posición que ocupa dentro de la misma.

Estructuras de Datos Complejas

Hay estructuras de datos aún más complicadas que se construyen no en la declaración de variables, sino en el manejo que se hace de las variables en el propio programa. La complejidad puede ser muy grande y las formas de usarlas tienen una variedad infinita que debe adecuarse al uso que se les da. Con frecuencia pueden programarse de más de una manera según los recursos que utilicemos en cada caso. A continuación, vemos algunas de ellas:

Listas y Colas

Son sucesiones de datos uno a continuación del otro. Pueden estar ordenadas o no. Los criterios de ordenación pueden ser únicos, dobles o múltiples (listas simplemente ordenadas, doblemente ordenadas, etc.).

La ordenación puede hacerse en la propia estructura de la variable o bien mediante ciertas estrategias como guardar en cada dato una identificación del dato que le sigue, que le precede o de ambos (dirección o puntero).

Según la forma de entrada o salida de datos podemos distinguir entre listas de tipo LIFO (Last Input First Output) o FIFO (First Input First Output).

Si las listas son ordenadas podremos utilizar distintos algoritmos de entrada y salida que gestionen el intercambio de datos.

Podemos adoptar gran cantidad de estrategias según nuestros intereses: limitar el número de elementos, modificar o mezclar los criterios de ordenación, establecer prioridades o categorías dentro de los elementos, etc.

Árboles

Se trata de estructuras en las que los datos se organizan según jerarquías; existen relaciones del tipo paterno-filial. Se utiliza una nomenclatura basada en el concepto de árbol:

  • Raíz: punto de donde parten todos los datos.
  • Rama: cada una de las bifurcaciones.
  • Nudo: puntos de los que parten las ramas.
  • Hojas: cada uno de los puntos extremos del árbol.

Podemos hacer distintas clasificaciones de los árboles atendiendo a criterios diferentes. Llamamos árboles binarios a aquellos que tienen dos ramas en cada nudo. Árboles completos son los que tienen todas las hojas al mismo nivel.

Algoritmos

La palabra algoritmo tiene su origen en el árabe. Es un conjunto ordenado y limitado de operaciones que permite llegar a la solución de un problema. Por tanto, cualquier programa no es más que un código que contiene un algoritmo o conjunto de algoritmos de modo que pueda ser ejecutado por la máquina.

Los ordenadores no proporcionan soluciones, sino que es el programador quien las incluye en los programas y la máquina las ejecuta con mayor o menor velocidad, eficacia y facilidad para el usuario.

Es muy importante para entender la descripción de programas comprender los conceptos de subrutina, procedimiento o función (son algoritmos para ejecutar una parte de un programa mayor; se invocan tantas veces como sea necesario desde el programa principal). Con ello se evita la reiteración innecesaria de código.

Debemos tener en cuenta que se suele considerar que una persona no puede manejar a la vez más información de la contenida en una cara de folio. Por tanto, para describir programas se usan técnicas de análisis, sucesivos “acercamientos” que permiten comprender procesos largos y complejos mediante descomposición en partes más sencillas y que pueden tener estructura propia.

La figura del analista de sistemas es, por tanto, más importante que la del programador. Un analista de programas debe ser capaz de comprender el problema y diseñar los algoritmos que lo resuelven de la manera más adecuada. Posteriormente habrá que codificar ese algoritmo en el lenguaje de programación que se precise.

Para describir los algoritmos que componen los programas usaremos una serie de técnicas que sirven por igual para todos los lenguajes de programación.

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.