[ Foro de Pascal ]
Hola a todos
Estoy haciendo un trabajo para la universidad pero no puedo hacerlo funcionar.
Ocupo una matriz simple, de una solo fila. Quiero leer uno de los números de la matriz, pero cuando le doy a correr el programa me sale "index out of the bonds of the array"
No se muy bien a que se refiere y no se en donde esta el problema
por favor necesito ayuda
El mensaje error es claro: estás mirando más allá de los límites de la matriz.
Por ejemplo si es una matriz declarada como 1..5, estás mirando la posición 0 o la 6
Ahi esta el problema, aun no ingreso ningun valor como para que me pase de los limites
Esta es la parte del programa en la que falla
case b of
1:
begin
p:=c*3;
for var i:=1 to 15 do
begin
X[i]:=i;
write(X[i],' ');
end
readln(X[i]); !!me marca el problema en esta linea!!
Si has declarado una matriz:
var arreglo: array[1..10] of integer;
debes asegurarte que el recorrido de los índices esté comprendido entre 1 y 10 incluyéndolos, seguramente estás leyendo o escribiendo en un arreglo[0] y en un arreglo[11], zonas de memoria que no está reservadas en la declaración del array y por por eso te genera el error.
Saludos.
Gracias por responder, pero mi problema es cuando quiero seleccionar un dato de la matriz
por ejemplo en este estilo: readln(X[i]);
Por alguna razon no me deja
Insisto: porque "i" está más allá de los límites de la matriz.
Si haces "for var i:=1 to 15 do" y tu matriz tiene taño 14 o menos, fallará. Además, en ese fuente estás haciendo un "readln" fuera del "for" (¿por qué?), así que quizá estés guardando en la posición 16, si ya ha terminado el bucle que va de 1 a 15.
A mi parecer hay un error en esa línea
for var i:=1 to 15 do
esto porque var es una de las palabras reservadas por el compilador.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)