Qué significa
Error al ejecutar en la línea 2
No encuentro la variable 'total'. Revisa cómo la escribiste. Si es nueva, créala antes con 'total <- 0' o con 'Leer total'.
Una variable es una caja con nombre. Para usarla, primero tiene que existir y tener algo adentro. Jaguar te avisa en dos situaciones parecidas:
- «No encuentro la variable»: el nombre no existe. O nunca la creaste, o la escribiste distinto (
totalytotallson dos variables diferentes). - «Todavía no tiene valor en este punto»: la variable existe, por ejemplo porque la declaraste con
Definir, pero hasta esa línea nadie le guardó un dato.
En los dos casos el programa se detiene en la línea donde se usa, porque no sabe qué valor poner ahí.
Ejemplos y cómo arreglarlos
La variable nunca se creó
Algoritmo suma
suma <- total + 1
Escribir suma
FinAlgoritmo
Error al ejecutar en la línea 2
No encuentro la variable 'total'. Revisa cómo la escribiste. Si es nueva, créala antes con 'total <- 0' o con 'Leer total'.
Se arregla dándole un valor a total en una línea de arriba:
Algoritmo suma
total <- 0
suma <- total + 1
Escribir suma
FinAlgoritmo
Declarada, pero sin valor
Definir solo reserva la caja y su tipo; no le pone nada adentro:
Algoritmo edad
Definir n Como Entero
Escribir n
FinAlgoritmo
Error al ejecutar en la línea 3
La variable 'n' todavía no tiene valor en este punto. Antes de usarla dale un valor, con 'n <- 0' o con 'Leer n'. Esa línea debe estar más arriba que esta.
Pídele el dato a la persona con Leer, o asígnale un valor:
Algoritmo edad
Definir n Como Entero
Leer n
Escribir "Tienes ", n, " años"
FinAlgoritmo
Por qué aparece
- Escribiste el nombre distinto en dos lugares: una mayúscula no importa, pero una letra de más o de menos sí.
- Usas la variable antes de la línea donde le das valor.
- Declaraste la variable con
Definiry olvidaste elLeero la asignación. - El valor se asigna dentro de un
Sique no siempre se cumple, y luego se usa afuera.
Cómo evitarlo
Da un valor inicial a toda variable en cuanto la creas: total <- 0 para los acumuladores, y un Leer para lo que viene de la persona. Con la prueba de escritorio ves en qué fila aparece cada variable: si una columna sigue vacía cuando la necesitas, ahí está el problema. Hay una guía en la prueba de escritorio.
Preguntas frecuentes
¿Importan las mayúsculas en el nombre de una variable?
No. Jaguar no distingue mayúsculas ni acentos: Total, total y TOTAL son la misma variable. Lo que sí importa es que las letras sean las mismas.
¿Una variable sin valor vale cero?
No. En Jaguar una variable sin valor no vale nada, y por eso usarla es un error. Si necesitas que empiece en cero, asígnalo tú: total <- 0.
¿Este error sale también en PSeInt?
PSeInt avisa de este problema con otro mensaje, pero la causa es la misma: se usa una variable que no tiene valor. El código arreglado de esta página funciona igual en PSeInt.