«La posición … está fuera del arreglo»

Este error aparece cuando el programa usa una posición que el arreglo no tiene. En Jaguar las posiciones empiezan en 1 y terminan en el tamaño con el que creaste el arreglo.

Qué significa

Error al ejecutar en la línea 3
La posición 4 está fuera del arreglo 'notas'. Las posiciones válidas van de 1 a 3.

Un arreglo es una fila de casillas numeradas. Si lo creas con Dimension notas[3], tiene tres casillas: la 1, la 2 y la 3. Pedir la 4 es como buscar un asiento que no existe, y Jaguar se detiene para avisarte.

En Jaguar las posiciones empiezan en 1, no en 0. El mensaje siempre te dice cuáles son las válidas.

Ejemplos y cómo arreglarlos

Una posición de más

Algoritmo lista
    Dimension notas[3]
    notas[4] <- 10
FinAlgoritmo

Error al ejecutar en la línea 3
La posición 4 está fuera del arreglo 'notas'. Las posiciones válidas van de 1 a 3.

Usa una posición que exista, o crea el arreglo con más casillas:

Algoritmo lista
    Dimension notas[4]
    notas[4] <- 10
    Escribir notas[4]
FinAlgoritmo

Empezar en 0

Si vienes de otro lenguaje, es normal empezar en 0. En Jaguar la primera casilla es la 1:

Algoritmo lista
    Dimension notas[3]
    notas[0] <- 10
FinAlgoritmo

Con un ciclo, que vaya de 1 al tamaño:

Algoritmo lista
    Dimension notas[3]
    Para i <- 1 Hasta 3 Hacer
        notas[i] <- i * 10
    FinPara
    Escribir notas[1], " ", notas[3]
FinAlgoritmo

Una posición que nunca se llenó

Algoritmo lista
    Dimension notas[3]
    notas[1] <- 8
    Escribir notas[2]
FinAlgoritmo

La posición existe, pero está vacía. Llénala antes de leerla:

Algoritmo lista
    Dimension notas[3]
    notas[1] <- 8
    notas[2] <- 9
    Escribir notas[1] + notas[2]
FinAlgoritmo

Usar como arreglo algo que no lo es

Algoritmo lista
    n <- 5
    n[1] <- 3
FinAlgoritmo

Para que una variable sea arreglo hay que crearla con Dimension antes: Dimension n[5]. Más sobre esto en la guía de arreglos.

Por qué aparece

  • El ciclo llega más lejos que el arreglo: Para i <- 1 Hasta 4 con un arreglo de tres casillas.
  • Se empieza en 0, como en otros lenguajes, o se calcula una posición que se sale por uno.
  • El tamaño se escribió mal en Dimension, o cambió el dato que lo define.
  • Se lee una casilla antes de llenarla.

Cómo evitarlo

Que el ciclo y el arreglo usen el mismo número: guarda el tamaño en una variable (n <- 3), crea el arreglo con Dimension notas[n] y recorre con Para i <- 1 Hasta n. Así, si cambias el tamaño, cambia todo junto. Y en la prueba de escritorio, mira qué valor tiene i en la última fila.

Preguntas frecuentes

¿Por qué las posiciones empiezan en 1 y no en 0?

Porque así lo hace el pseudocódigo de PSeInt, que Jaguar sigue. En muchos lenguajes de programación (Python, Java, C) empiezan en 0; la guía de pseudocódigo a Python explica cómo cambian los números.

¿Puedo agrandar un arreglo después de crearlo?

No. Un arreglo tiene un tamaño fijo desde Dimension. Si necesitas más casillas, créalo más grande desde el principio, y Jaguar avisa si intentas dimensionar el mismo arreglo dos veces.

¿Y si el tamaño lo escribe la persona?

Puedes leerlo con Leer y usarlo en Dimension: Leer n, Dimension notas[n]. Jaguar exige que sea al menos 1.

Sigue aprendiendo