Arreglos y Vectores en PSeInt
Necesitas guardar treinta calificaciones, y no quieres treinta variables distintas. Buscas arreglos en PSeInt, copias un ejemplo y tu programa se detiene con Subíndice fuera de rango, porque el ejemplo empezaba en 1 y el perfil de tu escuela empieza en 0.
Esta página explica los arreglos en PSeInt desde cero. Verás la sintaxis, cómo definir un vector y una matriz, por qué la primera posición puede ser 0 o 1, ejemplos probados en el programa, los errores comunes y cómo llenar y usar un arreglo con un ciclo.
Sintaxis Básica de los Arreglos en PSeInt
Un arreglo, que también se llama array, es un grupo de valores del mismo tipo guardados bajo un solo nombre, y cada valor tiene una posición. Cuando el arreglo tiene una dimensión se llama vector, y cuando tiene dos dimensiones se llama matriz, como una tabla con filas y columnas. La palabra reservada para declarar un arreglo en PSeInt es Dimension, y Dimensionar es la misma palabra. Esta es la sintaxis de los arreglos en PSeInt, y los arrays en PSeInt son lo mismo que los arreglos.
Definir v Como Entero;
Dimension v[5];
Vector en PSeInt con sus posiciones en base 1 y en base 0
| Lo que quieres | Sintaxis | Significado |
| Definir un vector | Dimension v[5]; | Un vector con 5 posiciones |
| Definir una matriz | Dimension m[3,3]; | Una tabla con 3 filas y 3 columnas |
| Usar más dimensiones | Dimension t[2,2,2]; | Un arreglo con tres dimensiones |
| Guardar un valor | v[2] <- 30; | Pone 30 en la posición 2 |
| Leer un valor | Escribir v[2]; | Muestra el valor de la posición 2 |
| Cambiar el tamaño | Redimensionar v[8]; | Le da 8 posiciones al vector y conserva sus valores |
El Arreglo Empieza en 0 o en 1
Esta es la pregunta que causa más errores, y la respuesta depende de tu perfil. En el perfil flexible y en el perfil por defecto la primera posición es 1, y en muchos perfiles de escuelas es 0. PSeInt trae 467 perfiles, y 293 de ellos usan 0, como los perfiles de la UNAM, la UANL, Conalep y CBTis, y también el perfil estricto. En los dos casos Dimension v[5] crea 5 posiciones, y solo cambian los números.
| Perfil | Posiciones de Dimension v[5] |
| Flexible y por defecto | 1, 2, 3, 4 y 5 |
| Estricto, UNAM, UANL, Conalep y CBTis | 0, 1, 2, 3 y 4 |
Para saber cuál es tu base, escribe un vector de 5 posiciones y usa la posición 5. Si el error dice de 0 a 4, tu perfil empieza en 0, y si dice de 1 a 5, empieza en 1. También puedes ver la opción en el menú Configurar, Opciones del Lenguaje, con el nombre Utilizar índices en arreglos y cadenas en base 0.

Tamaño desde una Variable y Valores por Defecto
Puedes leer el tamaño del usuario, como Leer n; y luego Dimension v[n];, en los perfiles flexible y por defecto. El perfil estricto pide un número constante y da el error Las dimensiones deben ser constantes. En el perfil estricto también necesitas Definir antes de Dimension.
Las posiciones que no llenas tienen un valor por defecto, que es 0 en un vector de Entero, texto vacío en un vector de Caracter y FALSO en un vector de Logico. Los arreglos de texto se declaran igual.
Definir nombres Como Caracter;
Dimension nombres[3];
nombres[1] <- “Ana”;
Matrices en PSeInt
Una matriz usa dos números en cada posición, la fila y luego la columna. Con Dimension m[3,3]; la celda de la segunda fila y la tercera columna es m[2,3]. Matriz en PSeInt con sus filas y columnas
Cómo Usar Arreglos en PSeInt Paso a Paso
Sigue estos cuatro pasos con cualquier arreglo.
Llenar un Vector con Para
Este es el programa base, y llena un vector de 5 posiciones y lo muestra. Fue probado en los perfiles flexible y por defecto, donde la primera posición es 1.
Proceso LlenarVector
Definir v Como Entero;
Dimension v[5];
Definir i Como Entero;
Para i <- 1 Hasta 5 Hacer
v[i] <- i * 10;
FinPara
Para i <- 1 Hasta 5 Hacer
Escribir “Posicion “, i, “: “, v[i];
FinPara
FinProceso
El programa muestra las cinco líneas desde Posicion 1 hasta Posicion 5, y la última tiene el valor 50. Si tu perfil empieza en 0, cambia los dos ciclos para que vayan de 0 a 4.
Para i <- 0 Hasta 4 Hacer
v[i] <- i * 10;
FinPara
En un perfil con base 0 el programa muestra las cinco líneas desde Posicion 0 hasta Posicion 4, y la última tiene el valor 40.
Llenar un Vector con Leer
Para pedirle los valores al usuario, usa Leer dentro del ciclo. Este programa pide la cantidad de calificaciones, llena el vector y calcula el promedio, la mayor y la menor.
Proceso LeerNotas
Definir notas Como Real;
Definir n, i Como Entero;
Definir suma, mayor, menor Como Real;
Escribir “Cuantas notas vas a escribir”;
Leer n;
Dimension notas[n];
suma <- 0;
Para i <- 1 Hasta n Hacer
Escribir “Escribe la nota “, i;
Leer notas[i];
suma <- suma + notas[i];
FinPara
mayor <- notas[1];
menor <- notas[1];
Para i <- 2 Hasta n Hacer
Si notas[i] > mayor Entonces
mayor <- notas[i];
FinSi
Si notas[i] < menor Entonces
menor <- notas[i];
FinSi
FinPara
Escribir “Promedio “, suma / n;
Escribir “Mayor “, mayor, ” y menor “, menor;
FinProceso
Con 4 calificaciones, 8, 6, 9 y 7, el programa muestra Promedio 7.5 y Mayor 9 y menor 6.
Recorrer un Arreglo con Para Cada
Para Cada visita cada elemento y no le importa la base, así que el mismo código funciona en todos los perfiles.
Proceso SumaConParaCada
Definir v Como Entero;
Definir e, suma Como Entero;
Dimension v[4];
v[1] <- 4;
v[2] <- 9;
v[3] <- 1;
v[4] <- 6;
suma <- 0;
Para Cada e De v Hacer
suma <- suma + e;
FinPara
Escribir “La suma es “, suma;
FinProceso
El programa muestra La suma es 20. En un perfil con base 0 solo cambian las cuatro líneas que guardan los valores, de v[0] a v[3].
Ejemplos de Arreglos en PSeInt
Estos ejercicios son los más comunes en clase, y cada programa fue probado.
Buscar un Número en un Vector
Proceso BuscarNumero
Definir v Como Entero;
Dimension v[5];
Definir i, buscado, posicion Como Entero;
v[1] <- 7;
v[2] <- 3;
v[3] <- 9;
v[4] <- 3;
v[5] <- 1;
Escribir “Que numero buscas”;
Leer buscado;
posicion <- 0;
Para i <- 1 Hasta 5 Hacer
Si v[i] = buscado Y posicion = 0 Entonces
posicion <- i;
FinSi
FinPara
Si posicion > 0 Entonces
Escribir “Esta en la posicion “, posicion;
SiNo
Escribir “No esta en el arreglo”;
FinSi
FinProceso
Con 9 el programa dice que está en la posición 3, con 3 dice la posición 2, que es la primera, y con 8 dice que no está en el arreglo.
Mostrar un Vector al Revés
Proceso InvertirVector
Definir v Como Entero;
Dimension v[5];
Definir i Como Entero;
Para i <- 1 Hasta 5 Hacer
v[i] <- i;
FinPara
Para i <- 5 Hasta 1 Con Paso -1 Hacer
Escribir Sin Saltar v[i], ” “;
FinPara
Escribir “”;
FinProceso
El programa muestra 5 4 3 2 1.
Ordenar un Vector
Este es el método de la burbuja, que compara cada par de vecinos y cambia sus lugares cuando están en el orden incorrecto. La primera versión es para base 1.
Proceso OrdenarLista
Definir v Como Entero;
Dimension v[5];
Definir i, j, aux Como Entero;
v[1] <- 40;
v[2] <- 10;
v[3] <- 50;
v[4] <- 20;
v[5] <- 30;
Para i <- 1 Hasta 4 Hacer
Para j <- 1 Hasta 5 – i Hacer
Si v[j] > v[j + 1] Entonces
aux <- v[j];
v[j] <- v[j + 1];
v[j + 1] <- aux;
FinSi
FinPara
FinPara
Para i <- 1 Hasta 5 Hacer
Escribir Sin Saltar v[i], ” “;
FinPara
Escribir “”;
FinProceso
El programa muestra 10 20 30 40 50. Este es el mismo programa para un perfil con base 0.
Proceso OrdenarLista
Definir v Como Entero;
Dimension v[5];
Definir i, j, aux Como Entero;
v[0] <- 40;
v[1] <- 10;
v[2] <- 50;
v[3] <- 20;
v[4] <- 30;
Para i <- 0 Hasta 3 Hacer
Para j <- 0 Hasta 3 – i Hacer
Si v[j] > v[j + 1] Entonces
aux <- v[j];
v[j] <- v[j + 1];
v[j + 1] <- aux;
FinSi
FinPara
FinPara
Para i <- 0 Hasta 4 Hacer
Escribir Sin Saltar v[i], ” “;
FinPara
Escribir “”;
FinProceso
Llenar y Mostrar una Matriz
Dos ciclos, uno dentro del otro, recorren las filas y las columnas. Este programa llena una matriz de 3 por 3 con el producto de la fila y la columna, la muestra y suma el total y la diagonal.

Proceso Matriz3x3
Definir m Como Entero;
Dimension m[3,3];
Definir f, c, diag, total Como Entero;
diag <- 0;
total <- 0;
Para f <- 1 Hasta 3 Hacer
Para c <- 1 Hasta 3 Hacer
m[f,c] <- f * c;
total <- total + m[f,c];
FinPara
diag <- diag + m[f,f];
FinPara
Para f <- 1 Hasta 3 Hacer
Escribir m[f,1], ” “, m[f,2], ” “, m[f,3];
FinPara
Escribir “Suma total “, total, ” y diagonal “, diag;
FinProceso
El programa muestra las filas 1 2 3, 2 4 6 y 3 6 9, y luego Suma total 36 y diagonal 14.
Errores Comunes con Arreglos en PSeInt
Cada mensaje te dice la causa, y estos son los que más verás, probados en el programa.
| Mensaje | Causa | Solución |
| Subindice fuera de rango, con el rango | Una posición que no existe, como v[0] en base 1, o v[5] en base 0 | Lee el rango del mensaje, y revisa la base de tu perfil |
| Faltan subindices para el arreglo | Se usó el arreglo sin posición, como Escribir v; | Escribe la posición, como v[i], o usa un ciclo |
| Cantidad de indices incorrecta para el arreglo | Una matriz usada con una sola posición | Usa dos, como m[f,c] |
| No coinciden los tipos | Un valor de otro tipo, como texto en un vector de Entero | Usa valores del mismo tipo del arreglo |
| Identificador en uso | Dimension usado dos veces con el mismo nombre | Usa otro nombre, o Redimensionar |
| Las dimensiones deben ser numeros enteros | Un tamaño con decimales, como v[2.5] | Usa un entero |
| Las dimensiones deben ser constantes | Un tamaño desde una variable en el perfil estricto | Usa un número, o cambia el perfil |
Ejercicios de Arreglos en PSeInt para Practicar
Practica con estas ideas, y prueba cada una en tu perfil.
Conclusión
Ahora sabes cómo definir y usar arreglos en PSeInt, por qué la primera posición cambia con tu perfil y cómo evitar el error del subíndice. El siguiente paso es combinarlos con ciclos y decisiones, y puedes ver todas las instrucciones en nuestra página de comandos de PSeInt. Si necesitas repasar primero los tipos de datos, lee nuestra página sobre variables y tipos de datos.
