Sie sind auf Seite 1von 7

I-MIP7001_M2AA2L1_Cdula

Versin: Septiembre 2012


Revisor: En lista


CmoimplementartuspropiasfuncionesenLenguajeC?


por Ivn Cruz

Cuando se realiza un programa, es importante siempre manejar una buena organizacin del cdigo
fuente, debido a que se puede desear incrementar su funcionalidad en un futuro, y lo que menos se
busca es tener problemas para entender qu parte del cdigo hace tal o cual tarea, es por ello que
siempre se recomienda utilizar algunas estrategias para que el programa sea lo ms legible posible.

En este contexto surgen las funciones, que son segmentos de cdigo que tienen una tarea especfica y
se pueden utilizar en cualquier parte del programa cuantas veces sea necesario. A continuacin para
una mejor conceptualizacin de este tema se presenta la Figura 1, donde se muestran 2 cdigos con
diferente implementacin pero realizan la misma tarea utilizando una funcin.

Figura 1. Implementacin de una funcin que suma de dos nmeros en formas distintas

Aunque los cdigos de la Figura 1 realizan la misma tarea de sumar 2 nmeros, su implementacin es
distinta. A continuacin se procede a analizar cada uno de ellos.

En el inciso a de la Figura 1 el cdigo presenta en la lnea 3 lo que se conoce como prototipo de


funcin, lo cual le indica al compilador que existe una funcin con el nombre sumar, con las
caractersticas ah definidas, localizada despus de la funcin main. El prototipo de funcin lo debes de
utilizar siempre y cuando las funciones que tu realices estn declaradas despus de la funcin main, en
caso contrario no es necesario declarar dicho prototipo tal como lo presenta el inciso b, de la misma
figura. La funcin sumar nicamente tiene como objetivo regresar un dato de tipo float que ser la suma
de 2 variables (en este caso x as como tambin y), ambas tambin de tipo float. Esta funcin es
invocada en el inciso a en la lnea 11 y en el inciso b en la lnea 14. En donde queda de manifiesto la
manera en que es utilizada, pasndole las variables valor1 y valor2 como parmetros y esta funcin
regresar la suma de ambas variables en ambos incisos.

1
UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, mtodo o
sistema impreso, electrnico, magntico, incluyendo el fotocopiado, la fotografa, la grabacin o un sistema de recuperacin de la informacin, sin la autorizacin por
escrito de la Universidad Virtual del Estado de Guanajuato.

I-MIP7001_M2AA2L1_Cdula
Versin: Septiembre 2012
Revisor: En lista

Tiposdefunciones
De acuerdo a Deitel (2004) las funciones pueden ser divididas en 4 categoras:
a) Funciones que no regresan ni reciben variables.
b) Funciones que no regresan y si reciben variables.
c) Funciones que regresan y no reciben variables.
d) Funciones que regresan y reciben variables.

A continuacin explicaremos en qu consiste cada una de ellas.

Funcionesquenoregresannirecibenvariables
Este tipo de funciones no permiten que se les pase alguna variable para su
manipulacin, as como tampoco regresan un valor especifico. La palabra reservada void es
utilizada para identificar un tipo de dato vaco, con lo cual el compilador reconocer que no
espera ningn tipo de variable. En la Figura 2 se presenta un ejemplo de este tipo de
funciones, la cual nicamente muestra por consola el mensaje Hola desde una funcion, y
posteriormente termina la ejecucin del programa.

Figura 2. Cdigo en Lenguaje C con una funcin que no recibe ni regresa variables.

Funcionesquenoregresanysirecibenvariables
Estas funciones no pueden ser asignadas a ninguna variable debido a que no se espera que regrese un
valor, por lo general este tipo de funciones realizan una operacin y despliegan por pantalla el
resultado, adems de tambin poder modificar el valor de variables globales.


2
UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, mtodo o
sistema impreso, electrnico, magntico, incluyendo el fotocopiado, la fotografa, la grabacin o un sistema de recuperacin de la informacin, sin la autorizacin por
escrito de la Universidad Virtual del Estado de Guanajuato.

I-MIP7001_M2AA2L1_Cdula
Versin: Septiembre 2012
Revisor: En lista

Figura 3. Cdigo en Lenguaje C con una funcin que recibe parmetros y no regresa un valor.

En el cdigo fuente de la Figura 3, se invoca a la funcin funcion_cuadrado en la lnea 14 pasando


como argumento la variable de tipo entero numero, posteriormente la funcin calcula el cuadrado de
dicha variable almacenndolo en la variable local de la funcin de tipo int res, la cual muestra su valor
en la siguiente sentencia de la funcin (lnea 6), para a continuacin terminar la ejecucin del programa.

Funcionesqueregresan,peronorecibenvariables

Estas funciones suelen ser usadas para almacenar valores constantes, o en la utilizacin y/o
modificacin de variables globales. En la Figura 4, se presenta un ejemplo de cmo utilizar estas
funciones dentro de un programa, el cual calcula el rea de un crculo, pidiendo ingresar el radio y
posteriormente en la lnea 13, realiza una invocacin a la funcin funcion_pi, que contiene el valor de
(pi), para finalmente mostrar el valor del rea calculada y dar por terminada la ejecucin del programa.


3
UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, mtodo o
sistema impreso, electrnico, magntico, incluyendo el fotocopiado, la fotografa, la grabacin o un sistema de recuperacin de la informacin, sin la autorizacin por
escrito de la Universidad Virtual del Estado de Guanajuato.

I-MIP7001_M2AA2L1_Cdula
Versin: Septiembre 2012
Revisor: En lista

Figura 4. Cdigo en Lenguaje C con una funcin que no recibe parmetros y regresa un valor

Funcionesqueregresanyrecibenargumentos

Este tipo de funciones son utilizadas por ejemplo, cuando el programador necesita a partir de ciertas
variables calcular un nuevo valor y regresar este ltimo para continuar con la ejecucin del programa.
En el cdigo fuente de la Figura 5, se presenta la utilizacin de este tipo de funciones, en donde la
funcin orden_burbuja, realiza el ordenamiento burbuja necesitando para ello recibir como parmetros
un vector de tipo entero y una variable tambin de tipo entero que represente el tamao del vector, y la
cual regresa el vector ordenado en forma ascendente por medio de un puntero.

El arreglo que regresa la funcin orden_burbuja, es almacenado en el vector vec_aux, como se


muestra en la lnea 14, para finalmente desplegar sus valores utilizando la estructura de repeticin for
y dando por terminada la ejecucin del programa.

Figura 5. Cdigo en Lenguaje C con una funcin que recibe parmetros y regresa una variable.


4
UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, mtodo o
sistema impreso, electrnico, magntico, incluyendo el fotocopiado, la fotografa, la grabacin o un sistema de recuperacin de la informacin, sin la autorizacin por
escrito de la Universidad Virtual del Estado de Guanajuato.

I-MIP7001_M2AA2L1_Cdula
Versin: Septiembre 2012
Revisor: En lista








Funcionesqueinvocanaotrasfunciones
En ocasiones para lograr desarrollar un cdigo fuente altamente organizado o modular, es necesario
utilizar una gran cantidad de funciones, las cuales pueden llamarse unas a otras sin ningn tipo de
restriccin, por ejemplo en la Figura 6, se presenta un programa que obtiene el mximo y el mnimo
valor de un vector al que le fueron asignados varios valores provenientes del usuario.
Para este programa se utilizaron 3 funciones
a) Orden_burbuja.-Lacualregresayordenaascendentementeelvectorquealmacenalos
valoresingresadosporelusuario.
b) menor_valor.-Estafuncininvocaalafuncinorden_burbuja,ycomorecibeelvectorya
ordenado,nicamenteaccedealaprimeraposicindelvectorquecontendrdeestaformael
valormspequeoalmacenado.
c) mayor_valor. Estafuncinrealizaelmismoprocedimientoquemenor_valor,nicamentevara
enelhechoderegresarelvalordelaltimaposicindelvectorordenadoquecorrespondeal
mximovalordelarreglo.


5
UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, mtodo o
sistema impreso, electrnico, magntico, incluyendo el fotocopiado, la fotografa, la grabacin o un sistema de recuperacin de la informacin, sin la autorizacin por
escrito de la Universidad Virtual del Estado de Guanajuato.

I-MIP7001_M2AA2L1_Cdula
Versin: Septiembre 2012
Revisor: En lista

Figura 6. Cdigo en Lenguaje C con 2 funciones que invocan a otra funcin.

Conclusin
En cualquier lenguaje de programacin siempre es recomendable el uso de funciones, esto con el
objetivo de que el cdigo sea ms legible y modular, permitiendo con ello poder realizar nuevas
implementaciones al programa con el mnimo de esfuerzo posible, adems de poder reutilizar cdigo
entre diferentes aplicaciones, lo cual ahorra tiempo de programacin.A travs de esta lectura se
analizaron los diferentes tipos de funciones que pueden ser desarrolladas en el Lenguaje de
programacin C, adems de revisar varios ejemplos prcticos de programas que hacen uso de
funciones, con lo que te permite obtener una mejor interpretacin de la forma de utilizar e implementar
tus propias funciones.

Referencias

Deitel, M. (2004). Cmo programar en C/C++ y Java (4. Ed.). Mxico: Pearson
Educacin. [Versin en lnea].
Recuperado el 29 de julio de 2010, de la base de datos de Bibliotechnia. Recurso
disponible en la Biblioteca Digital de la UVEG.


6
UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, mtodo o
sistema impreso, electrnico, magntico, incluyendo el fotocopiado, la fotografa, la grabacin o un sistema de recuperacin de la informacin, sin la autorizacin por
escrito de la Universidad Virtual del Estado de Guanajuato.

I-MIP7001_M2AA2L1_Cdula
Versin: Septiembre 2012
Revisor: En lista

Sedgewick, R. (2000). Algoritmos en C++ (1. Ed.). Mxico: Addison Wesley Longman.
[Versin
en lnea].
Recuperado el 29 de julio de 2010, de la base de datos de Bibliotechnia. Recurso
disponible en la Biblioteca Digital de la UVEG.


7
UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, mtodo o
sistema impreso, electrnico, magntico, incluyendo el fotocopiado, la fotografa, la grabacin o un sistema de recuperacin de la informacin, sin la autorizacin por
escrito de la Universidad Virtual del Estado de Guanajuato.

Das könnte Ihnen auch gefallen