Funciones/Subprocesos en PSeInt
Si el perfil de lenguaje seleccionado lo permite (ver Opciones del Pseudocódigo), se pueden declarar nuevas funciones o subprocesos en un algoritmo en Pseudocódigo. La sintaxis para ello es la siguiente:
`Funcion variable_de_retorno <- nombre_de_la_funcion ( argumento_1, argumento_2, ... )
acción 1;
acción 1;
.
.
.
acción n;
FinFuncion`
Comienza con la palabra clave Funcion (alternativamente puede utilizarSubProceso o SubAlgoritmo, son sinónimos) seguida de la variable de retorno, el signo de asignación, el nombre del subproceso, y finalmente, la lista de argumentos entre paréntesis. Existen variantes para esta estructura. Si la función no retorna ningún valor, pueden omitirse la variable de retorno y el signo de asignación. Es decir, se puede colocar directamente el nombre y los argumentos a continuación de la palabra clave Funcion. Si el subproceso no recibe ningún valor pueden colocarse los paréntesis vacíos u omitirse, finalizando la primer línea con el nombre del subproceso. Las reglas para los nombres de subprocesos, variables de retorno y argumentos son las mismas que para cualquier identificador en pseudocódigo.
Además, opcionalmente pueden agregarse las palabras claves Por Valor o Por Referencia para indicar el tipo de pasaje en cada argumento. Si no se indica, los arreglos se pasan por referencia, las demás expresiones por valor. El pasaje por referencia implica que si la función modifica el argumento, se modificará en realidad la variable que se utilizó en la llamada, mientras que el pasaje por valor implica que la función opera con una copia de la variable (o el resultado de la expresión) que se utilizó en la llamada, por lo que las modificaciones que aplique la función no se verán reflejadas fuera de la misma.
Para invocar a la función se debe utilizar su nombre y entre paréntesis los parámetros, que podrán ser expresiones sólo si el tipo de pasaje es por referencia. Una llamada puede ser en sí una instrucción, pero si la función retorna algún valor, también puede utilizarse como operando dentro de una expresión.
El ejemplo Subprocesos, muestra un programa que declara dos funciones, una que retorna un valor y se que es luego utilizado dentro de una expresión para mostrar en pantalla, y otra que no recibe argumentos; el ejemplo Potencia, muestra una función recursiva; y el ejemplo Promedio muestra una función que recibe un arreglo como argumento.