Un valor que no corresponde al tipo de la variable

Estos errores aparecen cuando una variable con tipo (Entero, Real, Texto o Lógico) recibe un valor de otro tipo: un decimal en un Entero, un número en un Texto o letras donde se esperaba un número.

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ó Logico y 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.

Sigue aprendiendo