Logotipo de Orbis Sapientia Elearning Services

Servicios de formación. Especialistas en E-learning.

Progreso de Tema:

Funciones y procedimientos

Un programa resuelve uno o más problemas: un programa de almacén lleva en cuenta la entrada y salida de mercaderías, el stock que existe para cada una de ellas, el precio de éstas, el stock mínimo de cada una y un largo etcétera. Muchas funcionalidades, cada una como solución a un problema.

Siguiendo el ejemplo de la aplicación de control de almacén. Durante el día han habido 5 entradas y 10 salidas en total. Hemos tenido que utilizar por tanto, la funcionalidad de entrada y salidas de mercadería, no las otras y además, en varias ocasiones.

La funcionalidad de entradas y salidas no es un programa aparte, sino un código un tanto independiente, que puede llamarlo el programa de control de almacén cuando le hace falta. Es una especie de subaplicación.

Las funciones y procedimientos son subprogramas que realizan una o más tareas relacionadas entre si y que han de ser llamadas o ejecutadas por el programa principal. Cuando el programa principal ejecuta una función o un procedimiento, se interrumpe el flujo normal del programa. La función o procedimiento toma el control, ejecuta su código con su propio flujo de ejecución y cuando termina, devuelve el control al programa principal donde se interrumpió.

La función o procedimiento toma el control, ejecuta su código con su propio flujo de ejecución y cuando termina, devuelve el control al programa principal donde se interrumpió

Procedimientos

Los procedimientos son aquellos subprogramas que realizan una tarea dentro de un programa principal. Puede tener sus propias variables e instrucciones de código para conseguir su objetivo y cumplir su tarea.

El programa va siguiendo su flujo de ejecución de código, lleva al procedimiento, le cede el control. El procedimiento realiza su tarea, termina y le devuelve el control al programa que continua con su flujo de trabajo.

Funciones

Las funciones al igual que los procedimientos son subprogramas que podrían ser ellos mismos programas pero que por realizar una tarea muy concreta, suelen formar parte de un programa principal. Como los procedimientos, pueden tener sus propias variables e instrucciones de código para conseguir realizar su cometido.

Nuevamente, el programa sigue su trabajo normal, necesita la función, le cede el control. La función realiza su trabajo y cuando termina, devuelve el control al programa principal además de un valor. Con ese valor, resultado del trabajo de la función, el programa principal podrá continuar su trabajo normal.

Las funciones realizan una tarea y tras realizar su trabajo devuelven un valor al programa principal que las llama. Los procedimientos no devuelven ningún valor, solamente realizan un trabajo.

Ejemplo de función

Necesitamos calcular la media de las notas de cada alumno. El programa principal mostrará un listado de todos los alumnos y la nota media de cada uno de ellos.

Para indicar la nota media de cada uno, llamará y ejecutará por cada alumno, la función que calcula la media de sus notas.

Cada vez que el programa principal llama a la función de cálculo de media, cuando ésta termina su trabajo, le devolverá el resultado: la media calculada.

Ejemplo de procedimiento

Un programa necesita informar a cada alumno de la nota media conseguida durante el curso y para ello lo hará mediante correo electrónico.

Por cada alumno, el programa llamará y ejecutará un procedimiento que se encargará de enviar un correo electrónico indicando la nota media, a cada uno de ellos.

El procedimiento envía el correo electrónico, termina su tarea o trabajo y devuelve el control al programa principal. No entrega ningún valor, hace un trabajo, termina y se acabó.

Visibilidad de las variables

Tanto los procedimientos como las funciones pueden trabajar con sus propias variables y con las del programa principal.

Este comportamiento puede ocasionar problemas de ambigüedad: el programa principal usa una variable llamada vDatos y la función declara otra función vDatos. Se llaman igual, ¿cuál estará usando la función?

Para evitar estas situaciones existe la llamada visibilidad o alcance de las variables.

Las variables declaradas dentro de la función o procedimiento solamente son visibles o utilizables dentro de su bloque pero no desde fuera, en el programa principal o desde otras funciones. Las variables declaradas en el programa principal, pueden ser accesibles dentro de las funciones o procedimientos pero siguiendo unas reglas determinadas. Esas reglas dependen de cada lenguaje en particular pero muchos de ellos suelen tener una determinada sintaxis en común.

Declaración de funciones y procedimientos

Posible sintaxis para declarar funciones:

tipoValorDevuelto nombreFuncion(parametro1, parametro2, parametroN...){
...
... código de la función...
...
... return valor;
}

// También es frecuente este tipo de declaración:
function nombreFuncion(parametro1, parametro2, parametroN...){
...
... código de la función...
...
... return valor;
}
Posible sintaxis para declarar procedimientos:

nombreProcedimiento(parametro1, parametro2, parametroN...){
...
... código del procedimiento...
...
... return;
}

// También es frecuente este tipo de declaración:
procedure nombreProcedimiento(parametro1, parametro2, parametroN...){
...
... código del procedimiento...
...
... return;
}

La declaración de una función o un procedimiento es indicar cómo está construida, cuál es el código que ejecutará cuando sea llamada: básicamente, cómo está construida la función o el procedimiento.

En el caso de las funciones es frecuente indicar cuál es el tipo de dato del valor que devuelve.

En muchos lenguajes, la palabra clave return indica que en ese punto termina su tarea. En las funciones, return además de indicar el fin de la función, irá acompañada del valor que devuelve (cuyo tipo de dato coincidirá con el indicado en la declaración de la función). En el caso de los procedimientos, solamente aparecerá return.

Los datos que el programa principal envíen a las funciones y procedimientos, como por ejemplo las variables del programa principal, se pasarán a través de los paréntesis que están detrás del nombre del procedimiento o función.

Insistimos en que depende del lenguaje usado la declaración de una función o de un procedimiento. Los ejemplos de sintaxis muestran una forma común de declaración. Las funciones llevarán indicado el tipo de valor que devuelven y devolverán un valor de ese tipo. Los procedimientos nada de eso.

Otra forma muy común de declararlos es usar la palabra clave function para todo: el propio lenguaje lo tratará como función o procedimiento, dependiendo de si devuelve un valor o no.

En otros lenguajes se usa function para indicar que se trata de una función y procedure para señalar un procedimiento.

Llamada o ejecución de las funciones y procedimientos

Si declarar una función o un procedimiento es indicar el programa cómo son y qué trabajo tienen que hacer, llamar a una función o a un procedimiento, es ejecutarlo, hacer que haga el trabajo que tienen definido.

Ejemplo de llamada a función:
variableQueRecibeValorDevueltoPorFuncion = nombreFuncion();

Ejemplo de llamada a procedimiento:
nombreProcedimiento();

Parámetros o argumentos

Tanto las funciones como los procedimientos pueden necesitar trabajar con valores declarados o creados en el programa principal.

Según hemos visto, para que sean visibles dentro de la función o procedimiento, tiene que haber una manera de pasarlos o hacerlos visibles en ese lugar. Como se ha indicado, esto depende de cada lenguaje de programación pero es frecuente pasarlos por un lugar previamente indicado en la declaración de la función o del procedimiento. Esos lugares reciben un nombre y dentro del procedimiento o función que los recibe, pasarán a ser variables locales de éstos. Son los llamados parámetros o argumentos.

En los ejemplos de sintaxis de declaración vistos más arriba, se puede comprobar cómo. En la declaración, entre los paréntesis que van después del nombre de la función o el procedimiento, se indican lugares donde podemos pasar estas variables y valores desde fuera: cuando se ejecuten, se situarán en esos lugares los valores y variables del programa principal que queramos hacer llegar al procedimiento o función.

Del mismo modo, el resultado de una función, también se puede hacer llegar a otra gracias a los parámetros o argumentos.

Resumiendo. Cuando declaramos una función o un procedimiento, podemos indicar lugares por donde pasarle datos desde fuera. Esos lugares son llamados argumentos o parámetros.

";}
X