Qué significa
Error al ejecutar en la línea 3
El programa pidió un dato con Leer, pero ya no hay datos de entrada.
Cada Leer necesita un dato. Cuando usas Jaguar normalmente, el programa se detiene y te espera a que lo escribas. Pero cuando el programa se ejecuta con datos ya escritos, como en la herramienta de prueba de escritorio o en las pruebas de un ejercicio, los datos se acaban: si hay tres Leer y solo diste dos datos, el tercero no tiene nada que leer.
El programa no está mal escrito: le faltan datos.
Ejemplos y cómo arreglarlo
Faltan datos
Algoritmo suma
Leer n
Leer m
Escribir n + m
FinAlgoritmo
Error al ejecutar en la línea 3
El programa pidió un dato con Leer, pero ya no hay datos de entrada.
Hay dos Leer, así que hacen falta dos datos, uno por renglón y en el orden en que el programa los pide:
Algoritmo suma
Leer n
Leer m
Escribir n + m
FinAlgoritmo
Un ciclo que lee de más
Si un Leer está dentro de un ciclo, se repite en cada vuelta. Con tres vueltas se necesitan tres datos:
Algoritmo total
suma <- 0
Para i <- 1 Hasta 3 Hacer
Leer x
suma <- suma + x
FinPara
Escribir suma
FinAlgoritmo
Por qué aparece
- En la herramienta de prueba de escritorio, el cuadro de datos de entrada tiene menos renglones que
Leer. - Un ejercicio tiene una prueba con menos datos de los que pide la solución.
- Un ciclo con
Leerdentro da más vueltas de las que supones. - Un
Mientrasque lee hasta un valor final nunca recibe ese valor.
Cómo evitarlo
Cuenta los Leer que va a ejecutar el programa (incluidos los de los ciclos) y escribe un dato por cada uno, un valor por renglón. Si el programa lee hasta que llegue un valor de salida, como un 0, no olvides ponerlo al final de los datos.
Preguntas frecuentes
¿Este error sale cuando uso Jaguar normalmente?
No. En el uso normal, el programa te espera y tú escribes el dato. Solo aparece cuando los datos ya están escritos de antemano y se acaban.
¿En qué orden va cada dato?
En el mismo orden en que el programa ejecuta los Leer. El primer renglón es para el primer Leer, el segundo para el segundo, y así.