Escribe, ejecuta y aprende pseudocódigo PSeInt directamente en VS Code y Cursor. Sin instalar nada más.
- Instala la extensión desde el marketplace
- Crea un archivo
.psc - Escribe tu programa (los snippets te ayudan — escribe
procesoy presiona Tab) - Ejecuta con
F5(o el botón ▶ de la barra superior del editor)
Proceso HolaMundo
Escribir "Hola Mundo!"
FinProceso
Ejecuta programas PSeInt directamente en el editor. No necesitas descargar ni configurar PSeInt.
- F5 para ejecutar (o el botón ▶ del editor)
- Salida en el panel "PSeInt - Intérprete"
- Entrada de datos via cuadro de diálogo (
Leer) - Errores en español con número de línea
- Protección contra ciclos infinitos
Todas las palabras clave de PSeInt resaltadas con colores. Soporte completo para caracteres en español (á, é, í, ó, ú, ñ).
Escribe las primeras letras y presiona Tab:
| Escribe | Genera |
|---|---|
proceso |
Proceso...FinProceso |
si |
Si...Entonces...FinSi |
sisino |
Si...SiNo...FinSi |
mientras |
Mientras...Hacer...FinMientras |
para |
Para...Con Paso...FinPara |
repetir |
Repetir...Hasta Que |
segun |
Segun...FinSegun |
escribir |
Escribir |
leer |
Leer |
escleer |
Escribir + Leer |
defent |
Definir Como Entero |
defreal |
Definir Como Real |
defcad |
Definir Como Cadena |
deflog |
Definir Como Logico |
dim |
Dimension arreglo |
funcion |
Funcion...FinFuncion |
subproceso |
SubProceso...FinSubProceso |
Detecta errores mientras escribes:
- Bloques sin cerrar (falta
FinSi,FinMientras, etc.) - Bloques de cierre sin apertura correspondiente
- Plegado de código (colapsa bloques)
- Indentación automática al entrar en bloques
- Ícono personalizado para archivos
.psc - Soporte para comentarios (
//y/* */)
| Categoría | Instrucciones |
|---|---|
| Tipos | Entero, Real, Cadena, Logico |
| Variables | Definir...Como, asignación con <- |
| Entrada/Salida | Escribir, Escribir Sin Saltar, Leer, Limpiar Pantalla / Borrar Pantalla, Esperar Tecla, Esperar N Segundos |
| Condicionales | Si...Entonces...SiNo...FinSi |
| Ciclos | Mientras...Hacer, Para...Hasta...Con Paso, Repetir...Hasta Que |
| Selección | Segun...Hacer...De Otro Modo...FinSegun |
| Arreglos | Dimension 1D, 2D (matrices) y N-dimensional, indexación base-1 |
| Operadores | +, -, *, /, ^, MOD, =, <>, <, >, Y, O, NO |
El intérprete soporta Funcion (con valor de retorno) y SubProceso (sin retorno), incluyendo recursión, parámetros Por Valor (default) y Por Referencia, y Retornar para salida temprana.
Proceso Main
Definir x Como Entero;
x <- 5;
Escribir "factorial(", x, ") = ", factorial(x);
duplicar(x);
Escribir "x duplicado: ", x;
FinProceso
Funcion r <- factorial(n)
Si n <= 1 Entonces
r <- 1;
SiNo
r <- n * factorial(n - 1);
FinSi
FinFuncion
SubProceso duplicar(v Por Referencia)
v <- v * 2;
FinSubProceso
Detalles:
- Las funciones pueden declararse antes o después de
Proceso/FinProceso. Por Valorcopia el argumento (default).Por Referenciapermite mutar variables, elementos de arreglo, o arreglos completos (1D, 2D, N-D) del caller.Retornar [expr];permite salida temprana. EnFuncion, asigna el valor a la variable de retorno.- En
FuncionsinComo Tipodeclarado, el tipo del retorno es latente: se infiere de la primera asignación al retVar (Cadena, Logico o Real). Si nunca se asigna, retorna0por compatibilidad. - Profundidad máxima de llamadas: 500 (suficiente para recursión razonable).
- El límite de iteraciones (1.000.000) es por frame de llamada, no global: una función con su propio bucle no agota el contador del caller.
Dimension admite arreglos de cualquier número de dimensiones. Indexación base-1 estilo PSeInt clásico:
Proceso Matrices
Definir i, j Como Entero;
Dimension a[3, 4]; // matriz 3x4 (12 elementos, row-major)
Para i <- 1 Hasta 3 Hacer
Para j <- 1 Hasta 4 Hacer
a[i, j] <- i * 10 + j;
FinPara
FinPara
Escribir a[2, 3]; // imprime 23
// Cubos 3D y superior también funcionan
Dimension cubo[2, 3, 4];
cubo[1, 1, 1] <- 100;
FinProceso
Errores reportados en español:
El arreglo tiene N dimensión(es), se proveyeron Mcuando la aridad de los índices no coincide.Índice X fuera de rango [1..N] en dimensión Kcuando un índice se sale del rango.El tamaño del arreglo debe ser un entero positivo, recibió X en dimensión Kal declarar dimensiones inválidas.
| Función | Descripción |
|---|---|
RC(x) / Raiz(x) |
Raíz cuadrada |
Abs(x) |
Valor absoluto |
Trunc(x) |
Truncar a entero |
Redon(x) |
Redondear |
sen(x) / cos(x) / tan(x) |
Trigonométricas (radianes) |
asen(x) / acos(x) / atan(x) |
Trigonométricas inversas (radianes) |
ln(x) |
Logaritmo natural |
exp(x) |
Exponencial natural (e^x) |
log(x) |
Logaritmo base 10 |
pot(b, e) |
Potencia (alias del operador ^) |
Longitud(s) |
Largo de cadena |
Subcadena(s, inicio, fin) |
Extraer subcadena (base-1) |
Mayusculas(s) |
Convertir a mayúsculas |
Minusculas(s) |
Convertir a minúsculas |
Concatenar(s1, s2) |
Unir cadenas |
ConvertirANumero(s) |
Texto a número |
ConvertirATexto(n) |
Número a texto |
Azar(n) |
Entero aleatorio en [0, n-1] |
Aleatorio(a, b) |
Entero aleatorio en [a, b] |
Constante predefinida:
pi(Math.PI). Puedes reasignarla — al estilo PSeInt clásico.
| Atajo | Acción |
|---|---|
F5 |
Ejecutar el archivo PSeInt actual |
F5 ejecuta con PSeInt nativo si está instalado y detectable; en caso contrario usa automáticamente el intérprete embebido. El botón ▶ de la barra superior del editor hace lo mismo.
| Propiedad | Default | Descripción |
|---|---|---|
pseint.executablePath |
"" |
Ruta al ejecutable de PSeInt (solo para ejecución nativa) |
pseint.runArgs |
["--nouser"] |
Argumentos al ejecutar con PSeInt nativo |
pseint.clearTerminalBeforeRun |
true |
Limpiar terminal antes de ejecutar |
pseint.saveBeforeRun |
true |
Guardar archivo antes de ejecutar |
Si prefieres usar el binario oficial de PSeInt:
- Descarga PSeInt desde pseint.sourceforge.net
- Instálalo en tu sistema
- La extensión lo detecta automáticamente, o configura la ruta manualmente:
{
"pseint.executablePath": "/ruta/a/pseint"
}La extensión incluye programas de ejemplo en la carpeta examples/:
01-hola-mundo.psc— Tu primer programa02-calculadora.psc— Operaciones básicas con entrada de datos03-tabla-multiplicar.psc— Ciclo Para04-notas-alumno.psc— Promedio y Segun05-fibonacci.psc— Serie de Fibonacci06-arreglo-mayor.psc— Arreglos con Dimension07-adivina-numero.psc— Juego con Repetir y Aleatorio
El intérprete embebido cubre las instrucciones más usadas en cursos introductorios. Aún no soporta:
- Closures / clausuras
- Funciones de orden superior (pasar funciones como argumento)
- Parámetros con valor por defecto
- Sobrecarga de funciones
- Tipo
Caractercon enforcement de longitud 1 - Depuración paso a paso
- Operaciones con archivos
Para esos casos avanzados, usa la ejecución con PSeInt nativo: configura pseint.executablePath y presiona F5.
git clone https://github.com/Robbyfuu/vscode-pseint.git
cd vscode-pseint
pnpm install
pnpm run watch # compilación en modo watch
pnpm test # correr tests (281 tests)Presiona F5 en VS Code para abrir una ventana de desarrollo con la extensión cargada.
MIT