Variables
Comprender las variables y los tipos de datos es uno de los primeros y más importantes pasos para aprender a programar, ya que son la base para almacenar y manipular cualquier información dentro de un programa.


¿De que trata?
En programación, las variables son, fundamentalmente, espacios reservados en la memoria del ordenador para almacenar datos. Piensa en ellas como "cajas" o "contenedores" con un nombre, donde puedes guardar diferentes tipos de información.
La principal característica y razón de ser de las variables es que su valor puede cambiar durante la ejecución de un programa. Esto es lo que permite a los programas ser dinámicos e interactivos, procesando y almacenando datos que pueden variar.


¿Para qué sirven las variables?
Almacenar datos de entrada: Guardar lo que el usuario introduce (su nombre, su edad, una cantidad).
Guardar resultados intermedios: Almacenar el resultado de un cálculo que se usará más adelante.
Contadores: Llevar la cuenta de cuántas veces ocurre algo.
Banderas (flags): Almacenar un estado verdadero/falso para controlar el flujo del programa.
Representar información: Números, texto, fechas, etc., que son relevantes para el programa.
¿Cómo se usan?
El uso de variables en programación sigue un patrón general que incluye tres pasos principales:
Declaración (o Definición): Es el acto de "crear" la variable, dándole un nombre y, en muchos lenguajes, especificando el tipo de dato que va a contener. Este paso le dice al compilador/intérprete que reserve un espacio en memoria para esa variable.
Inicialización: Es el acto de darle un valor inicial a la variable por primera vez. Esto puede hacerse junto con la declaración o después.
Asignación (o Modificación): Es el acto de cambiar el valor que ya está almacenado en la variable.
Veamos ejemplos en diferentes lenguajes:
Python
Python es un lenguaje de tipado dinámico, lo que significa que no necesitas declarar explícitamente el tipo de dato. El tipo se infiere automáticamente cuando le asignas un valor.
Ejemplo Python:




Para copiar:
nombre = "Juan"
edad = 30
precio = 99.99
es_activo = True
print(f"El nombre inicial es: {nombre}")
nombre = "María"
print(f"El nombre ahora es: {nombre}")
JavaScript
JavaScript también es de tipado dinámico. Se usan las palabras clave var, let o const para declarar. let y const son las preferidas en el código moderno.
Ejemplo de JavaScript:


Para copiar:
let cantidad;
console.log(cantidad);
cantidad = 100;
console.log(cantidad);
let mensaje = "Hola mundo";
const PI = 3.14159;
mensaje = "Adiós mundo";
console.log(mensaje);
Java
Java es un lenguaje de tipado estático, lo que significa que debes declarar explícitamente el tipo de dato de una variable antes de usarla, y no puedes cambiar su tipo una vez declarada.
Ejemplo de Java:


Para copiar:
public class EjemploVariables {
public static void main(String[] args) {
String nombre = "Ana";
int edad = 25;
double altura = 1.75;
boolean estaActivo = true;
System.out.println("Nombre: " + nombre);
System.out.println("Edad: " + edad);
edad = 26;
nombre = "Carlos";
System.out.println("Nueva edad: " + edad);
System.out.println("Nuevo nombre: " + nombre);
}
}
C++
C++ también es de tipado estático y muy similar a Java en la declaración.
Ejemplo de C++:


Para copiar:


#include <iostream>
#include <string>
int main() {
std::string ciudad = "Guayaquil";
int poblacion = 2700000;
float temperatura = 28.5f;
bool esCapital = false;
std::cout << "Ciudad: " << ciudad << std::endl;
std::cout << "Poblacion: " << poblacion << std::endl;
ciudad = "Quito";
poblacion = 2000000;
esCapital = true;
std::cout << "Nueva Ciudad: " << ciudad << std::endl;
std::cout << "Nueva Poblacion: " << poblacion << std::endl;
return 0;
}
Tipos de Datos
Los tipos de datos definen qué tipo de valor puede almacenar una variable y qué operaciones se pueden realizar con ella. Los tipos de datos pueden variar ligeramente entre lenguajes, pero los fundamentales son universales:
1. Tipos de Datos Primitivos (Básicos)
Enteros (Integers): Números sin parte decimal.
Ejemplos: 5, -10, 0, 1000.
Nombres comunes: int (Java, C++, C#), integer (algunos otros), simplemente números en Python/JavaScript.
Variantes: byte, short, long (en Java, C#) para diferentes rangos de valores y uso de memoria.
Flotantes / Decimales (Floating-Point Numbers): Números con parte decimal.
Ejemplos: 3.14, -0.5, 99.99.
Nombres comunes: float (C++, C#, Python), double (Java, C++, C# para mayor precisión).
Cadenas de Texto (Strings): Secuencias de caracteres. Se suelen encerrar entre comillas dobles (") o simples (').
Ejemplos: "Hola mundo", 'Python es genial', "2025".
Nombres comunes: String (Java, C#), str (Python), string (C++).
Booleanos (Booleans): Representan un valor de verdad: verdadero o falso. Son fundamentales para las decisiones lógicas en un programa.
Ejemplos: true, false (Java, JavaScript, C++, C#), True, False (Python).
Nombres comunes: boolean (Java, JavaScript, C#), bool (C++).
Caracteres (Characters): Un solo carácter. Se suelen encerrar entre comillas simples (').
Ejemplos: 'a', 'B', '7', '$'.
Nombres comunes: char (Java, C++, C#). (En Python/JavaScript, un carácter es solo una cadena de longitud 1).
2. Tipos de Datos No Primitivos (Estructuras de Datos / Colecciones)
Estos tipos permiten almacenar múltiples valores o valores más complejos.
Arreglos / Arrays: Colecciones ordenadas de elementos del mismo tipo (en lenguajes estáticamente tipados) o de cualquier tipo (en dinámicamente tipados).
Ejemplos (conceptuales): [1, 2, 3], ["manzana", "banana", "cereza"].
Listas (Lists): Similares a los arreglos, pero más flexibles en algunos lenguajes (ej. Python, donde pueden contener elementos de diferentes tipos y su tamaño puede cambiar dinámicamente).
Objetos (Objects): En lenguajes de programación orientada a objetos (POO), un objeto es una instancia de una clase, que agrupa datos (variables) y funcionalidades (métodos) relacionadas.
Diccionarios / Mapas (Dictionaries / Maps): Colecciones de pares clave-valor, donde cada valor se asocia con una clave única para una recuperación rápida.
Ejemplo (Python): {"nombre": "Carlos", "edad": 30}
Conjuntos (Sets): Colecciones no ordenadas de elementos únicos.