Tema Progress:

Datos

Básicamente, realizar un programa que soluciona un problema, es procesar una serie de datos para ofrecer un resultado.

Cuando un cliente o usuario nos pide un programa que haga N cosas, necesitamos saber siempre qué datos tenemos para trabajar y con los que, gracias a ellos, podremos crear soluciones para esas N cosas que necesita.

Nos hará falta saber los clientes de un taller, con sus nombres, teléfonos, direcciones, etc., si lo que necesita el usuario es un listado de clientes de su taller. ¿Estará el listado ordenador por nombre?¿Se podrán hacer búsquedas por dirección? Y un largo etcétera. Todo en base a datos.

Sabiendo esto, lo siguiente es conocer que no todos los datos son iguales. Existen diferentes tipos de datos y esto cobra una especial relevancia en programación.

Por un lado, la naturaleza del dato: ¿es lo mismo un nombre que el importe de una factura?, ¿trabajamos con temperaturas bajo cero o superiores?, ¿debemos situarnos en un mapa en base a unas coordenadas?…

Tipos de datos

Para diferenciar los tipos de datos que podemos manejar en programación, lo primero que debemos entender es que para un ordenador, los datos son conjuntos de 1 y 0. Son combinaciones de datos binarios.

Partiendo de ahí, lo siguiente es saber que dependiendo del modo en que esos conjuntos de ceros y unos se almacenen y usen la memoria del ordenador, se formarán los tipos de datos.

Esto último va a depender en gran medida del tipo de CPU que use el ordenador, del sistema operativo usado y del lenguaje de programación elegido para programar.

Una vez que sabemos todo lo anterior, podemos hacer una primera clasificación de los tipos de datos en:

  • Alfabéticos. Conjuntos de caracteres del alfabeto (cualquiera).
  • Alfanuméricos. Mezcla de conjuntos de caracteres alfabéticos y numéricos.
  • Numéricos. Datos numéricos.
  • Binarios. Datos tal cual están almacenados en formato binario. En principio, no se pueden representar tal cual, de forma comprensible para nosotros.

A la hora de programar, sin embargo, necesitamos los datos en un formato que podamos entender y clasificar los humanos a un nivel más alto. Ejemplo: si realizamos un listado de los nombres de los usuarios de la tienda, no vamos a ir carácter por carácter, mostraremos el nombre completo.

Por tanto, según tratemos el dato, tendremos el tipo. Basándonos en esto, podemos distinguir dos grupos de tipos de datos básicos en programación:

  • Los que llamaremos primitivos o predefinidos. Son los básicos en programación porque podemos interpretarlos como aquellos con los cuáles podemos representar cualquier información y podemos utilizarlos para crear otros tipos de datos.
  • Los personalizados o abstractos. Son los que nosotros como programadores, podemos crear basándonos en los primitivos o predefinidos.
TIPOS DE DATOS PRIMITIVOS
TipoDescripción
Carácter o charIdentifica a un solo carácter, una letra, un dígito (como carácter) o un símbolo (como la interrogación). Si tratamos un carácter como cadena, aunque solamente sea un carácter, no será de este tipo.
Cadena o stringConjuntos de caracteres alfanuméricos. No debemos confundirnos si la cadena es un carácter solitario y pensemos que es tratado como char.
Entero o intUn número entero. Según los lenguajes y la capacidad del número representado, podemos encontrarnos con enteros con y sin signo, enteros más o menos pequeños y enteros largos.
Decimal, flotante, float o doubleRepresentan a todo número con decimales. Dependiendo de la precisión decima, serán tratados como flotantes o dobles. Del mismo modo, pueden aparecer con signo o sin signo (número negativo o no).
Lógico o booleanoVerdadero o falso, true o false. Algunos lenguajes los representan con -1, 0 o 1.

Insistimos en que dependiendo sobre todo del lenguaje de programación elegido, podemos encontrarnos con diferentes tipos de datos, los primitivos pueden variar un poco, pueden ser presentados o almacenarse diferente, etc.

De hecho, en general, los números con decimales pueden ser presentados y almacenados en formato exponencial. Ejemplo:

55.3e17
32.5+e18
43.7E20
57.9+E15

Adicionalmente, es común poder mostrar tanto los de tipo numérico como los de tipo carácter en formatos diferentes al decimal (de base 10) tan común hoy día entre nosotros:

  • Octal. En base 8. Se utilizan dígitos del 0 al 7. Suele anteponerse un prefijo al dato para indicar que el valor está en base octal, como 0 por ejemplo. Otras veces, el lenguaje proporciona un método para convertir un valor en octal.
  • Hexadecimal. Base 16. Se utilizan dígitos del 0 al 9 y del 10 al 16 se utilizan letras de la A a la F. Suele utilizarse un prefijo como 0x para indicar que un valor está en hexadecimal.

Mencionar que basándonos en estos datos primitivos en muchos lenguajes hoy día, es posible crear otros datos, como los objetos por ejemplo, donde podemos tener un dato de tipo factura, totalmente personalizado por el desarrollador.

Adicionalmente, indicar que las imágenes, los sonidos y vídeos, partidas de juegos guardadas, etc., todos los recursos que almacenamos en nuestros ordenadores y otros dispositivos, están en formato binario como indicamos al principio: conjuntos de 0 y 1. Es algún software, el que lee esos conjuntos de datos, detecta el formato en que están guardados, los procesa y nos muestra como resultado una imagen, un sonido, en fin, el recurso que sea. Resumiendo: según el formato en que están guardados los datos y el software que los procesa, dispondremos de tipos de datos más complejos.