Sie sind auf Seite 1von 18

Departamento de Ciencias e Ingeniera de la Computacin

Academia de Ciencias de la Computacin


Autor: M. en C. Edgardo Adrin Franco Martnez

Unidad II Modularidad"
2.2 El concepto de funcin, procedimiento y modulo
Estructuras de datos (Prof. Edgardo A. Franco)

Contenido
Funciones y procedimientos Concepto de funcin en C
Funciones en C Funciones y procedimientos en C
Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

Estructura de una funcin en C Llamada o invocacin a una funcin Prototipo o declaracin de funciones Definicin de funciones

Funciones
Son elementos que realizan una tarea en particular y retornan un valor a la salida. Son utilizadas como expresiones primarias y por lo tanto formar parte de expresiones ms complejas, es decir, se pueden utilizar para realizar operaciones con el valor que retornan a la salida. Por ejemplo, sumarse, restarse, multiplicarse, dividirse, etc.
float valor; valor = 2*pow(x,y)+sqrt(4.23245)+7*sin(2*3.1416);
Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

Procedimientos
Son elementos que realizan una tarea en particular pero que no retornan un valor a la salida y pueden recibir o no parmetros a la entrada. Son utilizadas como expresiones instruccin y se invocan cuando se requiere que el programa realice esa tarea en particular.
printf( Imprimir una cadena de caracteres ); scanf( %f, &x );//Capturar el valor de una variable
4
Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

Concepto de funcin en C
Una funcin es un miniprograma dentro de un programa ms general, en otras palabras, una funcin es un pequeo fragmento de cdigo funcional que realiza una tarea especifica.
Desarrollar un programa utilizando funciones ayuda a: Ahorrar espacio eliminando el cdigo repetido. Hace ms fcil la programacin. Proporcionan un medio para dividir un proyecto grande en pequeos mdulos ms entendibles y manejables. Permiten construir nuevos sistemas a partir de otros ya desarrollados. Facilitan la labor de planeacin, desarrollo y documentacin de los programas.
Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

Funciones en C
Un programa en C puede constar de una o varias definiciones de funciones. Cada una de estas funciones realiza una tarea en particular. Las funciones en C no se pueden anidar, es decir, no se puede declarar el cuerpo de una funcin dentro de otra funcin. En C todas las funciones son externas y globales, es decir, pueden ser invocadas desde cualquier parte del programa, incluso dentro de otra funcin.
6
Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

Funciones y procedimientos en C
Las funciones en C provienen de las llamadas a subrutinas de Fortran, sin embargo, su uso intensivo se introdujo con los procedimientos y funciones de Algol y Pascal. Las funciones en C se pueden utilizar para modelar los conceptos de la modularidad como:
Funciones (Retornando un valor y recibiendo o no parmetros) Procedimientos (No retornando ningn valor y recibiendo o no
parmetros)
7
Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

La estructura de una funcin es:


tipo_de_retorno nombreFuncion( listaParmetros ) { /**Cuerpo de la funcin*/ return expresin; }

Donde:

tipo_de_retorno: Es el valor devuelto por la funcin o la palabra reservada void por si la funcin no retorna ningn valor.
nombreFuncion: Es el identificador o nombre de la funcin.

listaParametros: Es la lista de parmetros que la funcin recibe como entrada, separados por comas.
8

Expresin: Es el valor que regresa la funcin.

Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

Estructura de una funcin en C

La sentencia return termina inmediatamente la funcin en la se ejecuta.


tipo_de_retorno nombreFuncion( listaParmetros ) { /**Cuerpo de la funcin*/ return expresin; }

Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

Una llamada a una funcin produce la ejecucin de las expresiones del cuerpo de la funcin y un retorno a la unidad de programa invocadora despus de que la ejecucin de la funcin haya terminando, normalmente cuando se encuentra una sentencia return.

Nombre o identificador de una funcin:


Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

Por convencin el nombre de una funcin debe comenzar con una letra en mayscula o con un guin bajo ( _ ) y puede estar formado de una longitud n se recomienda una longitud no mxima de 32 caracteres alfanumricos, maysculas, minsculas y guiones bajos, pero sin espacios intermedios.

Tipo de retorno:
Una funcin siempre devuelve un tipo de valor a la salida, este tipo de retorno puede ser uno de los datos simples de C o un apuntador a cualquier tipo de dato, sin embargo, si una funcin no devuelve un resultado, se utiliza el tipo void, que se considera como un tipo de dato nulo.

10

Una funcin puede tener cualquier numero de sentencias return, en el momento que el programa encuentre una de estas sentencias, devolver el control a la sentencia invocadora. S no se encuentra ninguna sentencia return la ejecucin de la funcin continuar hasta el final de dicha funcin, es decir, hasta que se encuentre la llave de cerrado }, en ese momento se devolver el control a la sentencia invocadora.

Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

Una funcin devuelve un nico valor, el valor devuelto (expresin) puede ser cualquier tipo de dato conocido en C (simple o estructurado). Sin embargo, tambin se puede retornar valores mltiples devolviendo un apuntador a una estructura o un arreglo.

11

Parmetros de entrada formales:


Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

En C slo se permite el paso de parmetros por valor y nicamente de los tipos de datos bsicos. No obstante, C utiliza el paso de apuntadores para el paso de parmetros por referencia, es decir, se puede pasar apuntadores a tipos de datos simples, estructuras, arreglos e incluso a funciones. (Se retomar con el tema de apuntadores).
El paso de parmetros en una funcin es opcional, pero si se incluyen, deben estar declarados entre los parntesis de la declaracin de la funcin y separados por comas, es decir, cada parmetro debe tener una declaracin independiente.

12

Llamada a una funcin


Las funciones, para poder ser ejecutadas, han de ser llamadas o invocadas. Cualquier instruccin o expresin puede tener una llamada a funcin que redirigir el control del programa a la funcin invocada. Normalmente la invocacin a una funcin ser realiza desde la funcin principal main(), sin embargo, tambin pueden ser invocadas desde otras funciones, incluso desde ellas mismas recursividad. Una funcin invocada recibe el control del programa, se ejecuta y cuando termina (cuando se alcanza una sentencia return o la llave de cierre de la funcin) el control del programa retorna a la funcin principal o a la funcin llamadora.
Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

13

Control del flujo del programa

14

Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

Prototipo o declaracin de funciones


A la declaracin de una funcin se le llama prototipo. Los prototipos de funciones comnmente van declaradas en la cabecera del cdigo despus de la definicin de las macros del preporcesador (directivas #include y #define) pero antes del mtodo main() y con terminacin en (;). El prototipo consta de los siguientes elementos:
tipo_retorno nombre_funcion(lista_prototipos_parametros);
tipo_de_retorno: Es el valor devuelto por la funcin o la palabra reservada void por si la funcin no retorna ningn valor. nombreFuncion: Es el identificador o nombre de la funcin. lista_prototipos_parametros:Es la lista de parmetros que la funcin recibe como entrada, separados por comas. Colocar el identificador de los parmetros es opcional, sin embargo se recomienda colocarlos para mejor entendimiento de la funcin 15
Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

Cuando se realiza una invocacin a una funcin, el compilador ya conoce cuales son el numero y los tipos de dato que la funcin debe recibir, confirma que los datos enviados a la funcin coincidan con los que conoce previamente y si no coinciden se generara un error en tiempo de compilacin. El compilador slo utiliza la informacin de los tipos de dato que debe recibir una funcin. Los identificadores de dichos datos son irrelevantes para tal proceso, sin embargo, se recomienda utilizarlos con propsito de hacer ms comprensible la utilidad de la funcin.

Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

El prototipo de la funcin sirve para que el compilador realice la comprobacin de tipos de dato de retorno y envo.

16

Definicin de funciones
La declaracin de un prototipo de funcin es diferente a la definicin de dicha funcin.
La declaracin contiene slo la cabecera de la funcin, es decir, su prototipo y se listan sus caractersticas. La definicin significa colocar el cuerpo de la funcin, es decir, definir la estructura del cdigo de la funcin en alguna parte del programa, pero fuera del mtodo principal main().
Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

La declaracin del prototipo de la funcin sirve para el compilador pueda validar que nmero y el tipo de datos de entrada de la funcin coincidan con los que se utilizan en la llamada o invocacin a dicha funcin.

17

#include <stdio.h> double calcularCuadrado( double );

int main( void ) { double x = 11.5; double resultado; resultado = calcularCuadrado( x ); printf( "El cuadrado de x es: %8.4lf \n", resultado ); return 0; Definicin de la funcin, } en este momento se double calcularCuadrado( double numero ) colocan los { identificadores en los return numero*numero; tipos de dato }

Declaracin del Prototipo de la funcin sin identificadores en los tipos de dato

Algoritmia y programacin estructurada 2.2 El concepto de funcin, procedimiento y modulo Autor: M. en C. Edgardo Adrin Franco Martnez

Cuando se define el cdigo de la funcin, es este momento, si es necesario colocar tanto tipo de datos y sus identificadores ya que se le estar indicando al compilador que utilice dichos identificadores como elementos de procesamiento para que la funcin realice la tarea especificada.

18

Das könnte Ihnen auch gefallen