Documente Academic
Documente Profesional
Documente Cultură
Funciones
11.1. Objetivos del tema.
Visto y nombrado los elementos de un programa y sus estructuras, as como la
forma de representar las soluciones y el uso de procedimientos, ahora hemos de
profundizar sobre el uso de las funciones, el paso de parmetros y sus
caractersticas.
Las veremos desde el punto de vista genrico, sin entrar en lenguajes en concreto.
11.2. Introduccin.
Un programa es una estructura ms o menos compleja, en funcin del tamao del
mismo.
Pero el cdigo que lo compone no puede estar todo en el Main del mismo, sera
difcil de entender y de modificar, adems de muy largo, por lo tanto conviene
trocear.
Si recordamos el ejercicio del primer tema, ese es el camino, pequeos trozos de
programa, fciles de escribir y de modificar.
Y la solucin era el dividir el programa y crear procedimientos.
Ahora vamos a ver las funciones, pero las funciones a pesar de que en su interior
pueden albergar el mismo tipo de estructuras que un procedimiento, tienen un fin
distinto dentro de un programa.
11.3. Creacin.
Hay una mxima que s podra servir, y es que en el momento en que en el
programa aparece cdigo repetido, ya podemos empezar a pensar en la creacin de
una funcin o un procedimiento, segn corresponda.
Tambin hay que tener en cuenta que la llamada a una funcin o un procedimiento
consume recursos y tiempo de ejecucin, pero en la actualidad se piensa poco en
esos parmetros.
Resolver de forma recursiva el factorial de un nmero es bonito, pero y si el
nmero es algo grande?
Con un procedimiento resuelvo el programa y voy creando la estructura del mismo.
Una funcin es un trozo de cdigo especializado en hacer algo en concreto, por
ejemplo, el ejercicio del rea de un triangulo o de una circunferencia, se resolvi
mediante un procedimiento, pero su solucin correcta es la de una funcin, por
qu?, pues normalmente el rea del triangulo es un dato que voy a calcular y que
puede aparecer hasta en una expresin habitualmente.
Altura = 5
Base = 10
AreaTriangulo(Base,Altura,Area)
Como podemos
ver con una
funcin es
mucho ms
elegante el
cdigo
resultante.
Cuando escribir
una funcin o un
procedimiento?,
en el ejemplo
podemos ver un
criterio.
Un procedimiento es una lnea de mi programa, lo llamo y se ejecuta, resuelvo el
problema estructural del programa con ellos.
Una funcin forma parte de una instruccin, una funcin siempre devuelve un dato,
un procedimiento no tiene porque hacerlo.
En el diseo de una funcin, hay que mantener el criterio, de que solo se utilice las
variables que se definan en la misma, y las que se reciban en la lnea de entrada,
pero de forma todava mucho ms taxativa, una funcin, por naturaleza, es una
parte de cdigo mucho ms reutilizable, normalmente, que un procedimiento, por lo
tanto debe ser todava mucho ms aislado, autnomo.
De todos modos, ser la experiencia la que nos ira marcando cuando usar el
procedimiento y cuando la funcin.
11.4. Funciones o Procedimientos.?
En el peor de los casos, todo lo que se puede escribir en un procedimiento se puede
resolver tambin con una funcin, o al revs, tcnicamente!, en la realidad no debe
abordarse as, porque en algunas ocasiones para hacerlo, hay que cometer alguna
incorreccin.
Una funcin devuelve siempre un nico dato, un procedimiento puede devolver uno
o varios, o ninguno, pero es que si se usan adecuadamente las funciones, con un
nico dato es suficiente.
11.5. Tipos de la funcin.
Hemos dicho que una funcin
devuelve un dato, por lo tanto si
devuelve un dato, ese dato debe de
ser de un tipo, de ah que la funcin
cuando se crea hay que declarar de
que tipo es, y ese tipo es el del dato
devuelto.
Otra forma de clasificar las funciones
es dividirlas por las propias del
lenguaje y las que diseemos
nosotros, todos los lenguajes de
programacin disponen de funciones
preescritas en el mismo.
La funcin del ejemplo es del tipo alfanumrico porque lo que devuelve es un dato
alfanumrico.
Por lo tanto tendremos tantos tipos de funciones como tipos de datos disponga el
lenguaje que estamos utilizando.
11.6. mbito de las funciones.
El mbito de una funcin va ligado al punto en el cual se utiliza y como se declara,
igual que con los procedimientos.
Actualmente hay lenguajes que permiten que haya variables de uso opcional en la
lnea de parmetros.
Cuando se pasa un dato por valor el dato es recibido por el procedimiento o funcin,
pero ste dato si se modifica en su interior no se recibe modificado en el lugar en el
que se realiza la llamada a la funcin.
Hay que pensar que tanto una funcin como un procedimiento son mini programas,
pero en el caso de una funcin an ms.
Esta es una forma de plantear una funcin, pero el momento y el estilo de cada uno
es personal e intransferible, por lo que a partir de ah cada cual puede ir creando su
estilo.