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 4con 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.