Guía de Pseudocodigo (PSeInt Flexible)
Volver al EditorIntroducción
Bienvenido a la guía de Pseudocodigo, un intérprete en línea para PSeInt diseñado para ser flexible y fácil de usar. PSeInt es una herramienta para asistir a estudiantes en sus primeros pasos en programación mediante un simple pseudolenguaje intuitivo en español.
Este intérprete opera en un modo "flexible", lo que significa:
- Los nombres de variables, procesos y subprocesos no distinguen entre mayúsculas y minúsculas.
- El punto y coma (
;
) al final de la mayoría de las sentencias es opcional. - La definición explícita de variables con
Definir
es opcional; las variables pueden ser usadas directamente y su tipo se infiere (aunque se recomienda definirlas para mayor claridad).
Estructura Básica de un Algoritmo
Todo algoritmo comienza con la palabra clave Proceso
(o Algoritmo
) seguida de un nombre, y finaliza con FinProceso
(o FinAlgoritmo
).
Proceso MiPrimerAlgoritmo
// Acciones del algoritmo aquí
FinProceso
// O también:
Algoritmo EjemploAlternativo
// ...
FinAlgoritmo
Comentarios
Los comentarios se inician con //
y se extienden hasta el final de la línea. Son ignorados por el intérprete.
// Esto es un comentario de una línea
variable <- 5 // Esto también es un comentario
Variables y Tipos de Datos
En modo flexible, puedes usar variables directamente. Sus tipos (Entero
, Real
, Logico
, Caracter
, Cadena
) se infieren. Sin embargo, puedes definirlas explícitamente para mayor claridad usando Definir
.
Proceso TiposDeDatos
// Uso implícito (flexible)
edad <- 25
nombre <- "Ana"
esValido <- Verdadero
pi <- 3.1416
// Definición explícita (recomendado para claridad)
Definir cantidad Como Entero
Definir mensaje Como Cadena
Definir precio Como Real
Definir activo Como Logico
cantidad <- 100
mensaje <- 'Hola Mundo'
FinProceso
Nombres de variables deben empezar con una letra o guion bajo, seguido de letras, números o guion bajo (incluye Ñ y vocales acentuadas).
Asignación
Se usa <-
o =
para asignar valores a variables.
variable <- valor
otraVariable = valor
Entrada y Salida
Escribir
Muestra valores en la consola. Puede mostrar múltiples valores separados por comas. Si se añade SIN SALTAR
, el cursor no pasará a la siguiente línea.
Escribir "Hola Mundo"
Escribir "Tu edad es: ", edad
Escribir "Parte 1" SIN SALTAR
Escribir " Parte 2" // Se mostrará: Parte 1 Parte 2
Leer
Permite al usuario ingresar un valor que se almacena en una variable. Se pueden leer múltiples variables separadas por comas.
Definir nombre Como Cadena
Definir edad Como Entero
Escribir "Ingresa tu nombre:"
Leer nombre
Escribir "Ingresa tu edad:"
Leer edad
Escribir "Hola ", nombre, ", tienes ", edad, " años."
// Leer múltiples variables
// Leer var1, var2
Expresiones
Aritméticas: +
, -
, *
, /
(división real), ^
(potencia), %
o MOD
(módulo).
Relacionales: =
(igual), <>
(distinto), <
(menor), >
(mayor), <=
(menor o igual), >=
(mayor o igual).
Lógicas: Y
(o &
), O
(o |
), NO
(o ~
).
El operador +
también concatena cadenas.
suma <- 5 + 3
esMayor <- edad >= 18
condicion <- (a > b) Y (c < d)
saludo <- "Hola" + " " + "Mundo"
Estructura Condicional: Si ... Entonces
Si condicion Entonces
// acciones si la condición es Verdadera
Sino Si otraCondicion Entonces // Opcional
// acciones si otraCondicion es Verdadera
Sino // Opcional
// acciones si ninguna condición anterior fue Verdadera
FinSi
Ejemplo:
Proceso CondicionalEjemplo
Definir nota Como Entero
Escribir "Ingrese la nota:"
Leer nota
Si nota >= 7 Entonces
Escribir "Aprobado"
Sino
Escribir "Reprobado"
FinSi
FinProceso
Estructura Selectiva: Segun
Segun variable_numerica_o_cadena Hacer
opcion_1:
// acciones
opcion_2, opcion_3: // Múltiples opciones para un mismo bloque
// acciones
De Otro Modo: // Opcional
// acciones si no coincide ninguna opción
FinSegun
Ejemplo:
Proceso SegunEjemplo
Definir dia Como Entero
Escribir "Ingrese número de día (1- Domingo, 2- Lunes...):"
Leer dia
Segun dia Hacer
1: Escribir "Domingo"
2: Escribir "Lunes"
3: Escribir "Martes"
4: Escribir "Miércoles"
5: Escribir "Jueves"
6: Escribir "Viernes"
7: Escribir "Sábado"
De Otro Modo:
Escribir "Día inválido"
FinSegun
FinProceso
Bucle Mientras
Mientras condicion Hacer
// acciones mientras la condición sea Verdadera
FinMientras
Ejemplo:
Proceso MientrasEjemplo
Definir contador Como Entero
contador <- 1
Mientras contador <= 5 Hacer
Escribir contador
contador <- contador + 1
FinMientras
FinProceso
Bucle Repetir ... Hasta Que
Las acciones se ejecutan al menos una vez, y luego se evalúa la condición. El bucle termina cuando la condición es Verdadera.
Repetir
// acciones
Hasta Que condicion
Ejemplo:
Proceso RepetirEjemplo
Definir claveSecreta Como Cadena
Definir intento Como Cadena
claveSecreta <- "1234"
Repetir
Escribir "Adivina la clave:"
Leer intento
Hasta Que intento = claveSecreta
Escribir "¡Correcto!"
FinProceso
Bucle Para
Para variable_contadora <- valor_inicial Hasta valor_final Con Paso incremento Hacer
// acciones
FinPara
// También puede ser:
// Para variable_contadora DESDE valor_inicial Hasta valor_final Con Paso incremento Hacer
// El 'Con Paso incremento' es opcional (por defecto es 1).
// Si el paso es negativo, la condición es variable_contadora >= valor_final.
Ejemplo:
Proceso ParaEjemplo
Definir i Como Entero
Para i <- 1 Hasta 5 Hacer // Paso 1 por defecto
Escribir i
FinPara
Escribir "Conteo regresivo:"
Para i <- 3 Hasta 1 Con Paso -1 Hacer
Escribir i
FinPara
FinProceso
Arreglos (Vectores y Matrices)
Se definen con Dimension
. Los índices en PSeInt son base 1 (empiezan en 1).
// Vector de 5 elementos
Dimension miVector[5]
// Matriz de 3 filas y 4 columnas
Dimension miMatriz[3,4]
miVector[1] <- 10 // Asignar al primer elemento
valor <- miVector[3] // Leer el tercer elemento
Ejemplo:
Proceso ArregloEjemplo
Dimension numeros[3]
Definir i Como Entero
// Cargar el vector
Para i <- 1 Hasta 3 Hacer
Escribir "Ingrese número para la posición ", i, ":"
Leer numeros[i]
FinPara
// Mostrar el vector
Escribir "Los números ingresados son:"
Para i <- 1 Hasta 3 Hacer
Escribir numeros[i]
FinPara
FinProceso
Subprocesos (Funciones y Procedimientos)
Permiten modularizar el código. Pueden recibir parámetros y, opcionalmente, devolver un valor.
Sintaxis Procedimiento (sin retorno explícito):
SubProceso NombreSubProceso (param1, param2 Por Referencia)
// acciones del subproceso
FinSubProceso
// Llamada:
NombreSubProceso(valor1, variable_referencia)
Sintaxis Función (con retorno explícito):
SubProceso variable_retorno <- NombreFuncion (param1, param2)
// acciones
variable_retorno <- valor_a_retornar
FinSubProceso
// Llamada:
resultado <- NombreFuncion(arg1, arg2)
Nota: El paso de parámetros por referencia (Por Referencia
) no está implementado en esta versión. Todos los parámetros se pasan por valor.
Ejemplo:
Proceso PrincipalConSubprocesos
Definir num1, num2, resSuma Como Entero
num1 <- 5
num2 <- 10
// Llamada a procedimiento
Saludar("Usuario")
// Llamada a función
resSuma <- SumarNumeros(num1, num2)
Escribir "La suma de ", num1, " y ", num2, " es: ", resSuma
FinProceso
SubProceso Saludar (nombre_persona) // Procedimiento
Escribir "Hola, ", nombre_persona
FinSubProceso
SubProceso resultado_suma <- SumarNumeros (a, b) // Función
resultado_suma <- a + b
FinSubProceso
Funciones Predefinidas
RC(x)
oRAIZ(x)
: Raíz cuadrada de x.ABS(x)
: Valor absoluto de x.LN(x)
: Logaritmo natural de x.EXP(x)
: Exponencial de x (e^x).SEN(x)
: Seno de x (x en radianes).COS(x)
: Coseno de x (x en radianes).ATAN(x)
: Arcotangente de x (resultado en radianes).TRUNC(x)
: Parte entera de x.REDON(x)
: Redondea x al entero más cercano.AZAR(x)
: Entero aleatorio entre 0 y x-1.CONCATENAR(cadena1, cadena2)
: Concatena dos cadenas (igual que el operador+
con cadenas).
Proceso FuncionesEjemplo
Definir numero, aleatorio Como Real
Definir texto1, texto2, concatenado Como Cadena
numero <- -25.7
Escribir "Valor absoluto de ", numero, " es ", ABS(numero)
Escribir "Parte entera de ", numero, " es ", TRUNC(numero)
Escribir "Redondeado de ", numero, " es ", REDON(numero)
Si numero > 0 Entonces
Escribir "Raíz de ", numero, " es ", RC(numero) // Error si numero es negativo
FinSi
aleatorio <- AZAR(100) // Entero entre 0 y 99
Escribir "Número al azar (0-99): ", aleatorio
texto1 <- "Hola "
texto2 <- "PSeInt"
concatenado <- CONCATENAR(texto1, texto2)
Escribir concatenado // Muestra "Hola PSeInt"
FinProceso