Una operación mezcla texto y números

Estos errores aparecen cuando una cuenta o una comparación mezcla un texto con un número. Se arreglan convirtiendo el texto a número, o comparando cosas del mismo tipo.

Qué significa

Error al ejecutar en la línea 3
La resta '-' necesita números, pero recibió el texto "Ana".

Las cuentas (-, *, /) solo se hacen con números, y las comparaciones de orden (<, >) solo entre cosas del mismo tipo: números con números, textos con textos. Si en una de ellas aparece un texto donde va un número, Jaguar se detiene y dice cuál fue.

Ojo con el +: con números suma y con textos los une. Por eso "Ana" + 1 no es una cuenta, y las cuentas con - no tienen versión para textos.

Ejemplos y cómo arreglarlos

Restar un texto

Algoritmo a
    nombre <- "Ana"
    Escribir nombre - 1
FinAlgoritmo

Si lo que tienes es un texto con un número adentro, conviértelo con ConvertirANumero:

Algoritmo a
    texto <- "5"
    Escribir ConvertirANumero(texto) - 1
FinAlgoritmo

Comparar un texto con un número

Algoritmo a
    texto <- "abc"
    Si texto > 3 Entonces
        Escribir "largo"
    FinSi
FinAlgoritmo

Casi siempre lo que querías era comparar el largo del texto, que sí es un número:

Algoritmo a
    texto <- "abcd"
    Si Longitud(texto) > 3 Entonces
        Escribir "largo"
    FinSi
FinAlgoritmo

Por qué aparece

  • Una variable de texto, como un nombre, se usa en una cuenta.
  • Se lee con Leer una palabra y se la compara con un número.
  • Se confunde el texto "5", entre comillas, con el número 5.

Cómo evitarlo

Pregúntate qué tipo tiene cada cosa que usas: lo que va entre comillas es texto, aunque parezca un número. Usa ConvertirANumero y ConvertirATexto para pasar de uno a otro, y Longitud para convertir un texto en un número que se pueda comparar. La guía de variables y tipos de datos lo explica con ejemplos.

Preguntas frecuentes

¿Por qué "5" no es lo mismo que 5?

Entre comillas es un texto: una palabra que se parece a un número. Sin comillas es un número y se puede usar en cuentas. ConvertirANumero pasa de uno al otro.

¿Puedo comparar dos textos con < o >?

Sí, se comparan por orden alfabético. Lo que no se puede es comparar un texto con un número.

Sigue aprendiendo