CONALEP LIC. FRANCISCO MEDINA ASCENCIO MEXICANO-ITALIANO
PROGRAMACIN DE FUNCIONES Como vimos anteriormente C tiene como bloque bsico la funcin main() , tambin hemos visto la sentencia printf() que es otra funcin, y de igual forma hay muchas ms funciones predefinidas, pero nosotros mismos tambin podemos definir nuestras propias funciones. De hecho, es fundamental hacerlo. Es un bloque de instrucciones que realiza tareas bien definidas. Todo programa en C consta de una o ms funciones. La ejecucin de un programa en C siempre comienza por la funcin. Cuando se ejecuta una funcin el control pasa al punto donde esta inicia. Una vez finalizada su ejecucin, se devuelve el control al punto desde el que se hizo la llamada a la funcin. Son un grupo de sentencias bajo el mismo nombre que realizan una tarea especfica.
ESTRUCTURA DE UNA FUNCION De forma similar que las variables las funciones tambin deben ser declaradas con la siguiente forma predefinida: tipoDatoRetorno nombreFuncion (lista Parametros); DEFINICIN DE LA FUNCIN: La definicin de la funcin se hace despus de cerrar la llave de main. Esta formado por las siguientes partes: a) Encabezado de la funcin. Es igual al prototipo pero no termina con ; b) Cuerpo de la funcin. Entre llaves se declaran las variables locales y luego se escriben las instrucciones. El cuerpo de la funcin termina con la sentencia return() que marca el final de la funcin. Slo se puede incluir una expresin (variable u operacin) en la sentencia return.
Nombre de la funcin El nombre que se les da a las funciones, debe ser un identificador vlido, es decir, - Debe comenzar con una letra o subrayado (_). MARTN RAMREZ PINTOR 14/MAYO/2014 CONALEP LIC. FRANCISCO MEDINA ASCENCIO MEXICANO-ITALIANO - Despus de la primera letra pueden aparecer otras letras, dgitos y caracteres. - No debe contener espacios en blanco. LLAMADA A LA FUNCIN. Es la ejecucin de la Funcin. La funcin se realiza en el momento en que desde el programa principal se hace referencia a su nombre. RESULTADO DE UNA FUNCIN Si la funcin debe generar lo retornar usando la sentencia return dentro del cuerpo de la misma: Return(variable o expresin que se debe retornar); Hay funciones que no retornan valores, en este caso se puede usar return pero sin mencionar una expresin: Return; PROTOTIPO DE UNA FUNCIN. A excepcin de la funcin main(), en el mdulo del programa debe aparecer la declaracin de las funciones que se utilicen en dicho mdulo. Esta declaracin recibe el nombre de PROTOTIPO. Tiene la sintaxis: tipo nombre(parmetro 1, parmetro 2, ...parmetro N ); donde : Tipo: es el tipo de valor devuelto por la funcin. Los procedimientos son tipo void. Nombre: es el nombre de la funcin Parmetros: conjunto de argumentos, separados por comas y encerrados entre parntesis. Los parmetros son opcionales, en caso de que no se especifiquen, enseguida del nombre de la funcin se escribe un par de parntesis vacos. #include <iostream.h> void potencia (int x, int y, int& z ); void main() { MARTN RAMREZ PINTOR 14/MAYO/2014 CONALEP LIC. FRANCISCO MEDINA ASCENCIO MEXICANO-ITALIANO ... } void potencia( int x, int y, int& z) { . } Lista de parmetros: Es la lista de declaracin de los parmetros que son pasados a la funcin. stos se separan por comas. Debemos tener en cuenta que pueden existir funciones que no utilicen parmetros. Los parmetros permiten la comunicacin de la funcin con el resto del programa mediante transferencia de datos. Paso de parmetros por valor - Cuando se llama a la funcin, se pasa solo el valor de la variable. - Este mtodo tambin se llama paso por copia. - El compilador hace una copia de los parmetros. Esto implica que cualquier modificacin en el valor de los parmetros no se mantiene cuando termina la funcin. - Utilizaremos ste mtodo cuando no necesitemos que se modifiquen los parmetros con los que se llama. Paso de parmetros por referencia - Tambin se llama paso por direccin. - Cuando se llama a la funcin, se pasa la direccin de memoria donde se encuentra almacenada la variable parmetro. - El compilador no hace copia, no reserva memoria para los parmetros. - Usaremos ste mtodo cuando necesitamos que la funcin modifique el valor de los parmetros y que devuelva el valor modificado. Para pasar un parmetro por referencia, hay que poner el operador de direccin & detrs del tipo del parmetro. MARTN RAMREZ PINTOR 14/MAYO/2014 CONALEP LIC. FRANCISCO MEDINA ASCENCIO MEXICANO-ITALIANO void cubo (int & a) { . } EJEMPLO: void main() { int m; m = area_rectangulo( 2 , 3 ); cout << m ; int lado1 = 2, lado2 = 6 ; m = area_rectangulo( lado1 , lado2 ); cout << m; int b = 10, e = 4, r= 0; potencia (b, e, r); cout << r; } int area_rectangulo (int a, int b) { int aux; aux = a*b; a=0; b=0; return aux; } void potencia( int x, int y, int& z) { MARTN RAMREZ PINTOR 14/MAYO/2014 CONALEP LIC. FRANCISCO MEDINA ASCENCIO MEXICANO-ITALIANO z = 1; for ( int i=1; i<= y ; i++ ) z = z * x ; } Parmetros por valor: a, b, x, y Parmetros por referencia: z