Qué significa
Error al ejecutar en la línea 3
No se puede guardar el número 2.5 en 'n' porque es de tipo Entero. Usa Trunc() o Redon(), o define la variable como Real.
Cuando declaras una variable con Definir y un tipo, Jaguar vigila que solo guarde valores de ese tipo: Entero acepta números sin decimales, Real cualquier número, Texto palabras y Logico Verdadero o Falso. Si intentas guardar otra cosa, el programa se detiene.
El mismo cuidado se aplica a Leer: si la variable es entera y la persona escribe «hola», aparece «Se esperaba un número entero…».
Ejemplos y cómo arreglarlos
Un decimal en un Entero
Algoritmo a
Definir n Como Entero
n <- 2.5
FinAlgoritmo
Error al ejecutar en la línea 3
No se puede guardar el número 2.5 en 'n' porque es de tipo Entero. Usa Trunc() o Redon(), o define la variable como Real.
Si necesitas decimales, define la variable como Real. Si quieres un entero, redondea o corta el decimal:
Algoritmo a
Definir n Como Entero
n <- Redon(2.5)
Escribir n
FinAlgoritmo
Un número en un Texto
Algoritmo a
Definir t Como Texto
t <- 5
FinAlgoritmo
Para guardar un número como texto, conviértelo:
Algoritmo a
Definir t Como Texto
t <- ConvertirATexto(5)
Escribir "Número: " + t
FinAlgoritmo
Leer un entero y escribir letras
Algoritmo a
Definir n Como Entero
Leer n
FinAlgoritmo
El programa está bien; el dato es el que no corresponde. Con un número, funciona:
Algoritmo a
Definir n Como Entero
Leer n
Escribir n * 2
FinAlgoritmo
Por qué aparece
- Una división o un promedio da decimales y la variable se definió como
Entero. - Se mezclan números y textos en la misma variable.
- La persona escribió un dato que no es del tipo que pide el
Leer: letras donde va un número, o un decimal donde va un entero. - Se escribió
Logicoy se esperaba Verdadero o Falso, pero llegó otra palabra.
Cómo evitarlo
Elige el tipo según lo que vas a guardar: Entero para contar, Real para medir o promediar, Texto para palabras. Si dudas, Real acepta enteros también. En la guía de variables y tipos está la tabla completa.
Preguntas frecuentes
¿Tengo que usar Definir para cada variable?
No. Sin Definir, Jaguar decide el tipo con el primer valor que recibe y no exige nada más. Si usas Definir, entonces sí vigila el tipo.
¿Qué diferencia hay entre Trunc y Redon?
Trunc corta los decimales (3.9 queda en 3) y Redon redondea al entero más cercano (3.9 queda en 4).
¿Este error sale también en PSeInt?
PSeInt trata los tipos de otra manera, más permisiva en algunos casos. La causa es la misma: el valor no corresponde al tipo definido.