¿Qué es una variable y para qué sirve?
Una variable es un contenedor con nombre que guarda un valor. En lógica de programación, se usa para representar hechos simples del mundo real que pueden ser consultados, comparados o actualizados mientras el programa se ejecuta.
- Edad:
edad = 28 - Precio:
precio = 19.99 - Temperatura:
temperatura = 36.5 - Estado de una tarea:
tarea_completada = false
La idea clave es que el nombre de la variable permite referirse al dato de forma estable, aunque el valor pueda cambiar con el tiempo.
Modelo mental: “etiqueta + valor”
Imagina una etiqueta (el nombre) pegada a una caja (la variable). Dentro está el contenido (el valor). Puedes abrir la caja y cambiar el contenido, pero la etiqueta sigue siendo la misma.
Valores escalares: número, texto y booleano
En este capítulo trabajaremos con valores escalares: valores “simples” que no contienen colecciones. Los más comunes son:
| Tipo de valor | Ejemplos | Uso típico |
|---|---|---|
| Número | 0, 15, 3.14 | Cálculos, límites, contadores |
| Texto (cadena) | "Ana", "Pendiente" | Nombres, etiquetas, mensajes |
| Booleano | true, false | Decisiones, banderas de estado |
Cómo el tipo afecta decisiones lógicas
Las decisiones del programa suelen depender de comparaciones y condiciones. El tipo del valor determina qué comparaciones tienen sentido y cómo se interpretan.
- Escuche el audio con la pantalla apagada.
- Obtenga un certificado al finalizar.
- ¡Más de 5000 cursos para que explores!
Descargar la aplicación
1) Números: comparaciones y rangos
Con números es común validar rangos y aplicar reglas:
edad = 17 if edad >= 18 then permitir_acceso = true else permitir_acceso = false endAquí la condición edad >= 18 solo tiene sentido porque edad es numérica.
2) Texto: igualdad y validación de opciones
Con texto se compara por igualdad (o pertenencia a un conjunto de opciones):
estado = "pendiente" if estado == "completada" then mostrar = "Listo" else mostrar = "Aún falta" endUna buena práctica es mantener consistencia en los valores posibles (por ejemplo, siempre en minúsculas: "pendiente", "completada").
3) Booleanos: condiciones directas
Los booleanos están hechos para condiciones. Evita comparaciones redundantes:
- Preferible:
if tarea_completada then ... - Evitar:
if tarea_completada == true then ...
tarea_completada = false if not tarea_completada then mostrar = "Pendiente" endErrores típicos por mezclar tipos
Cuando el tipo no coincide con lo que la lógica espera, aparecen fallos de validación o comparaciones que nunca se cumplen.
- Texto vs número:
"10"no es lo mismo que10. - Texto con espacios:
"Ana"es distinto de"Ana ". - Booleano mal usado: usar
"true"(texto) en vez detrue(booleano).
Buenas prácticas de nombrado: significado y consistencia
Un buen nombre reduce errores y hace que el pseudocódigo se lea como una explicación del problema.
Reglas prácticas
- Que describa el significado:
precio_totalmejor quex. - Consistencia de estilo: usa un formato y mantenlo (por ejemplo,
snake_case:temperatura_maxima). - Evita abreviaturas ambiguas:
cantpuede ser “cantidad” o “canto”. Mejorcantidad_productos. - Booleanos como preguntas:
es_mayor_de_edad,tiene_descuento,esta_activa. - Unidades cuando aplique:
tiempo_segundos,peso_kg,temperatura_c.
Ejemplos de nombres mejorados
| Nombre débil | Nombre recomendado | Motivo |
|---|---|---|
a | edad | Explica qué representa |
p | precio_unitario | Evita ambigüedad |
ok | pago_aprobado | Booleano con significado |
t | temperatura_c | Incluye unidad |
Estado del programa: cómo cambian las variables
El estado de un programa es el conjunto de valores actuales de sus variables en un momento dado. Cada asignación u operación puede modificar ese estado. Entender el estado es esencial para razonar paso a paso y predecir resultados.
Asignación: reemplaza el valor anterior
Una asignación no “suma” ni “acumula” por sí misma: reemplaza el valor anterior.
temperatura = 20 temperatura = 25Después de la segunda línea, el estado es temperatura = 25. El 20 ya no está.
Actualización: usar el valor actual para calcular el nuevo
Muchas variables cambian en función de su valor previo:
contador = 0 contador = contador + 1 contador = contador + 1El valor final es 2 porque cada línea usa el estado anterior para producir el siguiente.
Implicación para el razonamiento
Para entender un algoritmo, conviene leerlo como una secuencia de “fotos” del estado. Si te saltas una actualización, el resultado final puede parecer “mágico” o incorrecto.
Trazado manual: tabla de variables (guía paso a paso)
El trazado manual consiste en simular la ejecución línea por línea y registrar cómo cambian las variables. Esto ayuda a detectar errores de lógica, condiciones mal planteadas o actualizaciones inesperadas.
Cómo hacer una tabla de variables
- Escribe el pseudocódigo.
- Identifica las variables que aparecen.
- Crea una tabla con columnas: paso, línea ejecutada y una columna por variable.
- Ejecuta mentalmente cada línea y actualiza la tabla.
Ejercicio 1: contador con condición
contador = 0 limite = 3 contador = contador + 1 if contador == limite then mensaje = "llegó" else mensaje = "sigue" end| Paso | Línea | contador | limite | mensaje |
|---|---|---|---|---|
| 1 | contador = 0 | 0 | — | — |
| 2 | limite = 3 | 0 | 3 | — |
| 3 | contador = contador + 1 | 1 | 3 | — |
| 4 | if contador == limite ... | 1 | 3 | "sigue" |
Observa que la condición se evalúa con el estado del paso 3: como contador vale 1 y limite vale 3, no se cumple.
Ejercicio 2: precio final con descuento (estado y validación)
precio = 100 tiene_descuento = true if tiene_descuento then precio = precio * 0.9 end| Paso | Línea | precio | tiene_descuento |
|---|---|---|---|
| 1 | precio = 100 | 100 | — |
| 2 | tiene_descuento = true | 100 | true |
| 3 | if tiene_descuento ... | 90 | true |
La variable precio cambia de estado: pasa de 100 a 90 por la asignación dentro del if.
Ejercicio 3: estado de tarea con cambio de variable
estado_tarea = "pendiente" intentos = 0 intentos = intentos + 1 if intentos >= 1 then estado_tarea = "en_progreso" end| Paso | Línea | estado_tarea | intentos |
|---|---|---|---|
| 1 | estado_tarea = "pendiente" | "pendiente" | — |
| 2 | intentos = 0 | "pendiente" | 0 |
| 3 | intentos = intentos + 1 | "pendiente" | 1 |
| 4 | if intentos >= 1 ... | "en_progreso" | 1 |
Este ejemplo muestra cómo una variable de texto puede representar un “estado” del mundo real, y cómo una condición basada en un número puede disparar el cambio.
Práctica adicional: completa el trazado
Realiza la tabla de variables para este pseudocódigo y determina el valor final de cada variable:
temperatura_c = 18 es_frio = false if temperatura_c < 20 then es_frio = true end temperatura_c = temperatura_c + 3 if es_frio then etiqueta = "abrigo" else etiqueta = "ligero" end