Error 303 en PSeInt: subíndice fuera de rango (2026)

El Error 303 en PSeInt aparece cuando tu programa intenta acceder a una posición de un arreglo (vector o matriz) que no existe. Es el clásico «subíndice fuera de rango»: declaraste un arreglo de cierto tamaño y luego pediste leer o escribir en una posición más allá de sus límites.

¿Qué causa el Error 303?

Un arreglo declarado con Dimension tiene un número fijo de posiciones. Si declaras Dimension notas[5];, las posiciones válidas son un conjunto limitado (según tu perfil, los índices pueden empezar en 0 o en 1 — revísalo en la configuración del perfil). Cualquier acceso fuera de ese conjunto provoca el Error 303, por ejemplo:

  • Leer notas[6] cuando el arreglo solo llega hasta la posición 5.
  • Usar un índice negativo o cero cuando tu perfil empieza en 1.
  • Que una variable usada como índice tome un valor inesperado (por ejemplo, un contador que se pasa del límite).

Ejemplo que provoca el error

Proceso Error303
    Dimension notas[5];
    Definir i Como Entero;
    Para i <- 1 Hasta 6 Con Paso 1 Hacer
        notas[i] <- i * 10;
    FinPara
FinProceso

El arreglo tiene 5 posiciones, pero el bucle llega hasta i = 6. En la última iteración se intenta escribir en notas[6], que no existe: Error 303.

El mismo ejemplo, corregido

Proceso SinError303
    Dimension notas[5];
    Definir i Como Entero;
    Para i <- 1 Hasta 5 Con Paso 1 Hacer
        notas[i] <- i * 10;
    FinPara
FinProceso

La única diferencia es el límite del Para: ahora va de 1 a 5, exactamente el tamaño del arreglo. Regla de oro: el rango del bucle debe coincidir con el tamaño declarado en Dimension.

Cómo revisar los límites de tus bucles

La mayoría de los Error 303 nacen en bucles, no en accesos aislados. Cuando te aparezca:

  1. Localiza el Dimension del arreglo implicado y anota su tamaño.
  2. Revisa cada bucle que lo recorre: ¿el valor inicial y el final están dentro del tamaño declarado?
  3. Cuidado con el índice inicial: según tu perfil, los índices pueden empezar en 0 o en 1. Si tu perfil empieza en 0, un arreglo de 5 va de 0 a 4; si empieza en 1, va de 1 a 5. Mezclar ambas convenciones es una fuente típica de este error.
  4. Vigila los índices calculados: si el índice viene de una operación (por ejemplo v[i+1]), comprueba el caso extremo: con i en su valor máximo, ¿i+1 sigue siendo válido?

Si el error aparece en una matriz, aplica la misma lógica a ambas dimensiones: filas y columnas tienen sus propios límites.

Ejemplo con matriz: el error en dos dimensiones

Proceso Error303Matriz
    Dimension tabla[3, 4];
    Definir f, c Como Entero;
    Para f <- 1 Hasta 3 Con Paso 1 Hacer
        Para c <- 1 Hasta 5 Con Paso 1 Hacer
            tabla[f, c] <- 0;
        FinPara
    FinPara
FinProceso

La matriz tiene 3 filas y 4 columnas, pero el bucle interno llega hasta la columna 5: al intentar tabla[1, 5] aparece el Error 303. La corrección es ajustar el segundo bucle a Hasta 4. Fíjate en que el error puede estar en cualquiera de las dos dimensiones, así que revisa ambas.

Estrategia de depuración paso a paso

Cuando el Error 303 te frene, sigue este orden y lo encontrarás en minutos:

  1. Anota el tamaño declarado: busca el Dimension del arreglo y escribe en un papel sus límites.
  2. Identifica el acceso que falla: el mensaje de error indica la línea; mira qué índice se usa allí.
  3. Rastrea el valor del índice: si es una variable de bucle, comprueba sus valores inicial y final; si viene de un cálculo, evalúa el caso extremo.
  4. Verifica la convención de tu perfil: recuerda que, según tu perfil, los índices pueden empezar en 0 o en 1. Un bucle Para i <- 0 Hasta 5 sobre Dimension v[5] falla en ambos casos: en un perfil que empieza en 1, v[0] no existe; en uno que empieza en 0, el rango válido es 0 a 4 y v[5] se sale. La moraleja: el bucle y el perfil deben usar la misma convención.
  5. Corrige el límite, no el arreglo: salvo que realmente necesites más posiciones, lo habitual es ajustar el bucle al tamaño declarado, no al revés.

Otros errores relacionados

El 303 suele aparecer junto a otros errores de principiantes: variables sin declarar (ver Error 208) o problemas de sintaxis en los bucles (ver errores comunes). Si estás repasando fallos típicos, la guía de Para…Hasta también te ayudará a afinar los límites de tus ciclos.

Preguntas frecuentes

¿Los índices de los arreglos empiezan en 0 o en 1?
Depende de tu perfil de lenguaje: según tu perfil, los índices pueden empezar en 0 o en 1. Revísalo en la configuración del perfil de PSeInt, porque usar la convención equivocada es la causa más común del Error 303.
¿El Error 303 también ocurre con matrices?
Sí. En una matriz como Dimension m[3,4] tanto la fila como la columna tienen límites, y salirte de cualquiera de los dos provoca el mismo error. Revisa ambos índices.
¿Puedo cambiar el tamaño de un arreglo durante el programa?
No. El tamaño queda fijado en la instrucción Dimension y no puede ampliarse en ejecución. Si necesitas más posiciones, declara el arreglo con el tamaño máximo desde el inicio.
El error aparece solo a veces, ¿por qué?
Suele deberse a un índice que depende de datos de entrada o de un cálculo: con algunos valores queda dentro del rango y con otros se sale. Revisa el valor del índice justo antes del acceso que falla.

Publicaciones Similares