F FUNCIONES UNCIONES D DEFINIDAS EFINIDAS POR POR EL EL U USUARIO SUARIO
Las funciones que se han utilizado hasta ahora son funciones que el lenguaje de programacin ha predefinido en sus bibliotecas o libreras. Sin embargo, tambin es posible que el programador defina y utilice sus propias funciones. Definicin de Funciones Las funciones definidas por el programador se escriben fuera de la funcin main. Si se recuerda, uno de los objeti!os del uso de las funciones es la descomposicin de problemas complejos y el trabajo en grupo. "l siguiente es un ejemplo de una definicin de una funcin. Se utiliza antes de presentar la sinta#is formal de modo que nos podamos familiarizar con la terminologa$ double square(double numero) { double cuadrado; cuadrado = numero * numero; return cuadrado; } "sta definicin de la funcin square consiste de$ 1) "l encabezado de la funcin double square%double numero& 'bser!e que el encabezado no termina con punto y coma. Las partes del encabezado de una funcin son los siguientes. a& (na lista de los argumentos de la funcin entre parntesis$ (double numero) Si se considera a la funcin como un programa peque)o, la lista de argumentos seran equi!alentes a los datos que en un programa se introducira a tra!s de la instruccin cin. "s importante que obser!e que en la lista de argumentos se Ingeniera Qumica Programacin Instituto Tecnolgico de Celaya indican tanto la lista de los argumentos necesarios como el tipo de cada uno de ellos. b& "l nombre de la funcin square que puede se cualquier identificador !*lido en +,,. c& "l tipo de !alor que regresa la funcin como resultado. double 2) "l cuerpo de la funcin - double cuadrado. cuadrado / numero 0 numero. return cuadrado. 1 "l cuerpo de la funcin se encierra entre lla!es y en l se escriben las sentencias que se necesitan ejecutar para lograr el objeti!o de la funcin. +ontiene al menos una sentencia return. La sentencia return !a seguida del nombre de una !ariable o de un !alor constante. return cuadrado. "l !alor de dicha !ariable %o el !alor de dicha constante& constituye el !alor de regreso de la funcin. "l tipo del !alor que regresa la funcin debe ser consistente con el tipo del !alor de regreso especificado en el encabezado de la funcin. 'bser!e que, en este ejemplo, el !alor de regreso de la funcin %tipo de la !ariable llamada cuadrado& es double, al igual que el tipo de !alor de regreso especificado en el encabezado. Llamado de Funciones "l llamado de las funciones definidas por el usuario se realiza de la misma forma que el llamado a funciones predefinidas. 2or ejemplo, si un programador ha definido la funcin square de este ejemplo, los siguientes seran llamados !*lidos a la funcin$ Ingeniera Qumica Programacin Instituto Tecnolgico de Celaya double x,y,z; x=2.0; y = square(10.0); z = square(x+y); 'bser!e que los argumentos que se pasan a la funcin %10.0 en el primer caso y x+y en el segundo caso& son del tipo double y coinciden con el tipo definido para el argumento de la funcin. 3simismo, a la !ariable y se le asigna el !alor de regreso de la funcin square(10.0&. "sto es correcto porque el !alor de regreso de la funcin es de tipo double y la !ariable y tambin es de tipo double. 4ote que no es necesario que los argumentos con que la funcin es llamada se nombren igual que los identificadores usados en el encabezado de la funcin. Uso de Funciones Definidas por el Programador Si se recuerda, cuando se utilizan funciones predefinidas es necesario incluir a la biblioteca o librera que contiene su definicin. 2or ejemplo, si se usa la funcin po5, es necesario incluir math.h 3lgo similar es necesario para funciones definidas por el programador. "se algo es que, despus de las directi!as include pero antes de la funcin main, es necesario escribir el prototipo de la funcin. "l prototipo de la funcin no es m*s que el encabezado de la funcin seguido de punto y coma. "l siguiente ejemplo muestra como se podra utilizar en un programa una funcin definida por el programador. Ingeniera Qumica Programacin Instituto Tecnolgico de Celaya #include <iostream.! #include <stdlib.! double square(double numero); "# $rototi%o de la &uncion#" int main() ' "# (ste %ro)rama es solo un e*em%lo de la de&inicion y uso de una &uncion de&inida %or el %ro)ramador#" double x,y,z; cin!!x!!y; z = square(x); "# +lamado a la &uncion#" z = z # y; cout<<,-n,; cout<<z; cout<<,-n,; system(,$./0(,); return 0; 1 "# (sta &uncion calcula el cuadrado de un numero#" double square(double numero) ' double cuadrado; cuadrado = numero # numero; return cuadrado; 1 Ingeniera Qumica