«Pidió un dato con Leer, pero ya no hay datos de entrada»

Este error aparece cuando el programa tiene más instrucciones Leer que datos de entrada. Pasa en las pruebas, en la prueba de escritorio y en los ejercicios con casos de prueba.

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 Leer dentro da más vueltas de las que supones.
  • Un Mientras que 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í.

Sigue aprendiendo