Beruflich Dokumente
Kultur Dokumente
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.
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.
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.
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.
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
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.