5.2 Subprogramas

5.2.1 Funciones

Una función toma uno o más valores, denominados argumentos o parámetros y, según el valor de éstos, devuelve un resultado a nombre de la función. La declaración de una función expresada en pseudocódigo tendría la siguiente forma:

<tipo_de_dato> función <nombre_función>(lista_de_parámetros)

inicio
    ......
    acciones
    ......
    devolver(<expresión>)
fin_función

Para invocar a una función se utiliza su nombre seguido por los parámetros entre paréntesis. La llamada a una función se podrá colocar en cualquier instrucción en donde se pueda usar una expresión.

Ejercicio: Mediante un diagrama de flujo diseñe un subalgoritmo para obtener el factorial \(\left(n!\right)\) de un número entero no negativo. Dicho subalgoritmo debe recibir un número entero \((n)\) y debe devolver como resultado un número entero \(\left(n!\right)\) (¿qué valor debería devolver el subalgoritmo en caso de recibir un número entero negativo?).

5.2.2 Procedimientos

La declaración de un procedimiento es similar a la de una función. Las pequeñas diferencias son debidas a que el nombre del procedimiento no se encuentra asociado a ningún resultado. La declaración de un procedimiento expresada en pseudocódigo tendría la siguiente forma:

procedimiento <nombre_procedimiento>[(lista_de_parámetros)]
    
inicio
    ......
    acciones
    ......
fin_procedimiento

Un procedimiento se invoca o se llama de la misma manera que una función, pero al no devolver un resultado, un procedimiento solamente se puede usar como instrucción del algoritmo principal y no como parte de una expresión.

Ejercicio: Mediante un diagrama de flujo diseñe un subalgoritmo que le pida al usuario su nombre, lo salude y le dé la bienvenida. Dicho subalgoritmo no debe recibir ni devolver valor alguno.