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
Leeruna palabra y se la compara con un número. - Se confunde el texto
"5", entre comillas, con el número5.
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.