Sunteți pe pagina 1din 9

FUNCIN DE USUARIO

FUNCIONES Como se menciono anteriormente, el lenguaje dispone de una gran cantidad de funciones de librera que pueden ser utilizadas por el programador. En estas se encuentran las funciones trigonomtricas como sin(seno) , cos (coseno), tan(tangente),la funcin de valor absoluto abs , raz cuadrada (sqrt) y muchas otras .Al final de este captulo se encuentra una referencia de las funciones de la librera estndar de C . Estas se pueden utilizar directamente en el cdigo del programa .Por ejemplo pow que calcula ,se puede utilizar para calcular el rea de un cuadrado : Cuadrado=pow (lado, 2) Las funciones pueden formar parte de cualquier expresin, al igual que las variables. Cada funcin calcula su valor respectivo utilizando un pequeo subprograma, de esta forma cuando se encuentra una funcin, el computador ejecuta el cdigo respectivo para calcular el valor que le corresponde, y retorna al lugar donde se haba quedado para continuar con la ejecucin del programa. Por ejemplo, para calcular la siguiente asignacin del rea de una circunferencia: rea=pi*pow(radio,2);(pi es la constante 3.1416) El computador antes de realizar la multiplicacin ejecuta el cdigo de la funcin pow, con el radio y el numero 2como parmetros para determinar su valor, despus de lo cual se puede calcular la multiplicacin. Las funciones se definen en cualquier parte del archivo y su estructura general es como sigue: Tipo nombre (parmetros) { Declaraciones; Cuerpo } A partir de esta declaracin se encuentra las siguientes partes : 1.-Los parmetros son variables que se utiliza para recibir los argumentos con que se equivoca la funcin . Se definen en forma similar a las variables, pero cada uno independientemente y separados por dos comas. Aunque no se utilicen parmetros , se debe colocar los parntesis.

2.-El tipo que se encuentra antes del nombre indica el tipo de datos que calcula la funcin. Por ejemplo una funcin que calcule el rea de un tringulo debe ser de tipo doubl.Si no se especifica el tipo de la funcin se asume que es int . 3.-En las declaraciones se definen las variables que se utilizan dentro de la funcin . 4.-El cuerpo de la funcin, contiene las sentencias necesarias para calcular el valor de esta apartir de los parmetros. 5.-Se utiliza la sentencia return para asignar el valor que calcula la funcin. Por ejemplo, la siguiente funcin se puede utilizar para calcular el cuadrado de un numero:

Tipo dela funcin

Parametro double { Return x*x; } Valor que calcula la funcin. cuadrado (double x)

Se puede comparar con la respectiva versin en PASCAL : Funcin cuadrado ( x Begin Cuadrado := x * x; End; Para calcular el rea del tringulo, se puede escribir la siguiente funcin: /* funcin para calcular el rea del tringulo */ : real ) ; real ;

Double rea _triangulo( double base, double altura) { Return := (base * altura ) / 2.0; Las funciones definidas se pueden utilizar en cualquier parte del programa. Por ejemplo, se puede calcular el rea de un cuadrado utilizando la funcin definida anteriormente: /* Funcin para calcular el rea de un cuadrado */

Double rea _cuadrado (double lado) { Return } : =cuadrado (lado);

Por ejemplo, la siguiente funcin: int prueba () { return 5; printf (este texto jamas se imprime); } Devuelve 5 al proceso que la invoca. Sin embargo, la funcin printf jams se ejecuta, ya que el clculo de la funcin concluye cuando se llega a una sentencia return. Por ejemplo, se puede utilizar esta propiedad para hacer la funcin min que calcula el menor de dos nmeros: /* funcin para calcular el mnimo de dos nmeros */ double min (double x, double y) { If (x < y) return x ; return y; } Cuando main es una funcin; la sentencia return puede aparecer dentro de esta. Cuando se utiliza esta sentencia dentro de la funcin main, se termina la ejecucin del programa regresando al sistema operativo. El valor de la funcin, el resultado de la expresin de la sentencia return, se devuelve como resultado de la ejecucin al sistema. No obstante, se prefiere utilizar la funcin exit para terminar la ejecucin de los programas. El argumento de esta funcin es el valor que se retorna al sistema.

LA EXPRESIN CONDICIONAL ?: Con frecuencia es necesario hacer clculos que asignan el valor de una variable segn el resultado de una comparacin, como el valor absoluto: If (x < 0) { Absoluto = -x; } else { Absolute = x; } la expresin condicional, escrita con el operador ternario ?: es una forma alternativa para hacer clculos como el anterior o semejantes. La expresin se utiliza como siguiente: expresin1? expresin2: expresin3 En caso de ser verdadera le expresin1 (diferente de cero), el resultado es la evaluacin de la expresin2: en caso contrario es una evaluacin de la expresin3. Por ejemplo, el cdigo del valor absoluto se puede reescribirse de la siguiente manera: Absoluto = (x < 0) ? (-x) : x; Teniendo esto en cuenta, la funcin para calcular el valor absoluto de un nmero, es muy sencilla: /* funcin para calcular el valor absoluto de un nmero */ double absoluto (double x) { return (x<0) ? (-x) : x ; } De manera anloga se puede utilizar este operador para escribir la funcin max, que calcula el mayor de dos nmeros: /* funcin para calcular el mximo de dos nmeros */ double max (double x, double y) { return ( x > y ) ?x:y;

DECLARACIN DE FUNCIONES

En el lenguaje C se puede utilizar las funciones antes de ser definidas en el archivo, incluso su definicin puede encontrarse en un archivo diferente. Sin embargo, el compilador necesita conocer el tipo de la funcin y sus parmetros, por lo que se exige que haya una declaracin que la identifique. Por ejemplo, la siguiente lnea es la declaracin o prototipo de la funcin max anterior: double max ( double x, double y); El tipo, el nombre y el nmero de argumentos deben coincidir con la definicin de la funcin, no obstante los nombres de los parmetros pueden ser diferentes, inclusive algunas veces se omiten. La siguiente declaracin es equivalente a la anterior: double max (double , double ); Se puede hacer un programa que imprima ordenadamente dos nmeros integrando la funcin min y max: #include <stdio.h> /* programa que imprime ordenadamente dos nmeros*/ double min ( double x, double y); double max ( double x, double y); main() { double a , b; printf (Entre dos nmeros : ); scanf(%if %if, &a,&b); printf (Los nmeros ordenados son: %f, %f , min(a,b) , max(a,b)); } double max ( double x, double y) {

return ( x > y ) ?x:y;


} double min ( double x, double y) {

return ( x < y ) ?x:y;


} Ntese que las funciones se utilizan en el cuerpo de la funcin main antes de su definicin, la cual se encuentra al final del archivo.

ARCHIVO DE ENCABEZADOS (HEADERS) Cuando se quiere utilizar las funciones que ya han sido creadas en diferentes programas, es conveniente guardarlas en un archivo diferente al que contiene la funcin main. Se deben hacer las declaraciones antes de utilizar estas funciones. Con esta propsito se utilizan los archivos de encabezados o headers, para no tener que copiar todas las declaraciones cada vez que se utilicen estas funciones. Los encabezados de las libreras se han estado utilizando en casi todos los ejemplos que se han desarrollado, a travs de la directiva #include. De esta forma se puede crear un archivo que solo contenga las constantes simblicas y declaraciones de las funciones que son necesarias para la utilizacin de las mismas, y que posteriormente se pueden incluir dentro de los programas. Por ejemplo, se pueden crear tres archivos a partir del programa anterior. El primero contiene las declaraciones y se debe guardar como decl.h; su contenido es el siguiente: /*Archivo decl.h */ /* Declaracin de las funciones min y max */ /* min calcula el menor nmero entre x e y. */ double min ( double x, double y); /* /* max calcula el mayor nmero entre x e y. */ double max ( double x, double y); /* Fin del archive decl.h */

El segundo, funcs. c, contiene las definiciones de las funciones:

Archivo func.c */ #include decl.h /* Definicin de la funcion max */ double max ( double x, double y) {

return ( x > y ) ?x:y;


} /* Definicin de la funcion min */ double min ( double x, double y) {

return ( x < y ) ?x:y;

} /* Fin del archive funcs.h*/

El tercero, prog.c, es el programa principal: /* Programa principal*/ #include <stdio.h> #include decl.h /*programa que imprime ordenadamente dos nmeros */ main() { double a , b; printf (Entre dos numeros: ); scanf((%if %if, &a,&b); printf (los nmeros ordenados son : %f, %f , main (a,b) , max (a,b)); } /* fin del programa principal*/

FUNCIONES Como se menciono anteriormente, el lenguaje dispone de una gran cantidad de funciones de librera que pueden ser utilizadas por el programador. En estas se encuentran las funciones trigonomtricas como sin(seno) , cos (coseno), tan(tangente),la funcin de valor absoluto abs , raz cuadrada (sqrt) y muchas otras .Al final de este captulo se encuentra una referencia de las funciones de la librera estndar de C . Estas se pueden utilizar directamente en el cdigo del programa .Por ejemplo pow que calcula ,se puede utilizar para calcular el rea de un cuadrado : Cuadrado=pow (lado, 2) Las funciones pueden formar parte de cualquier expresin, al igual que las variables. Cada funcin calcula su valor respectivo utilizando un pequeo subprograma, de esta forma cuando se encuentra una funcin, el computador ejecuta el cdigo respectivo para calcular el valor que le corresponde, y retorna al lugar donde se haba quedado para continuar con la ejecucin del programa.

Por ejemplo, para calcular la siguiente asignacin del rea de una circunferencia: rea=pi*pow(radio,2);(pi es la constante 3.1416) El computador antes de realizar la multiplicacin ejecuta el cdigo de la funcin pow, con el radio y el numero 2como parmetros para determinar su valor, despus de lo cual se puede calcular la multiplicacin. Las funciones se definen en cualquier parte del archivo y su estructura general es como sigue: Tipo nombre (parmetros) { Declaraciones; Cuerpo } A partir de esta declaracin se encuentra las siguientes partes : 1.-Los parmetros son variables que se utiliza para recibir los argumentos con que se equivoca la funcin . Se definen en forma similar a las variables, pero cada uno independientemente y separados por dos comas. Aunque no se utilicen parmetros , se debe colocar los parntesis. 2.-El tipo que se encuentra antes del nombre indica el tipo de datos que calcula la funcin. Por ejemplo una funcin que calcule el rea de un tringulo debe ser de tipo doubl.Si no se especifica el tipo de la funcin se asume que es int . 3.-En las declaraciones se definen las variables que se utilizan dentro de la funcin . 4.-El cuerpo de la funcin, contiene las sentencias necesarias para calcular el valor de esta apartir de los parmetros. 5.-Se utiliza la sentencia return para asignar el valor que calcula la funcin. Por ejemplo, la siguiente funcin se puede utilizar para calcular el cuadrado de un numero:

Tipo dela funcin

Parametro double { Return x*x; Valor que calcula la funcin. cuadrado (double x)

} Se puede comparar con la respectiva versin en PASCAL : Funcin cuadrado ( x Begin Cuadrado := x * x; End; Para calcular el rea del tringulo, se puede escribir la siguiente funcin: /* funcin para calcular el rea del tringulo */ : real ) ; real ;

Double rea _triangulo( double base, double altura) { Return := (base * altura ) / 2.0; Las funciones definidas se pueden utilizar en cualquier parte del programa. Por ejemplo, se puede calcular el rea de un cuadrado utilizando la funcin definida anteriormente: /* Funcin para calcular el rea de un cuadrado */

Double rea _cuadrado (double lado) { Return } : =cuadrado (lado);