INTRODUCCIÓN
Las funciones que se han utilizado hasta ahora son funciones
que el lenguaje de programación ha predefinido en sus bibliotecas o librerías.
Sin embargo, también es posible que el programador defina y utilice sus propias
funciones.
FUNCIONES DEFINIDAS POR EL USUARIO Y FUNCIONES DEFINIDAS POR EL LENGUAJE EN
PROGRAMACIÓN C
Una función, como ya se ha dicho, es un bloque de código
dentro del programa que se encarga de realizar una tarea determinada. Por lo
tanto un programa en c debe constar de una o más funciones, y por supuesto no
puede faltar la función principal main().
Si un programa, está constituido por más de una función, las
llamadas a la misma, pueden realizarse desde cualquier parte del programa, y la
definición de ellas debe ser independiente unas de otras.
Por lo tanto sería un grave error el tratar de definir una
función dentro de otra.
Una función puede ser llamada desde cualquier parte del
programa no sólo una vez, y cuando es llamada, empieza a ejecutar las acciones
que están escritas en código. Para mayor comodidad del lector vamos a ver
varios ejemplos, del uso de funciones y a medida que vayamos avanzando se
volverán más complejos.
El orden será el siguiente:
1.
Funciones que no devuelven ningún valor
2.
Funciones que devuelven un valor entero
3.
Funciones que devuelven un valor Real
4.
Funciones combinadas
5.
Funciones en las que usamos Menú.
Funciones que no devuelven ningún valor
Cómo se ha dicho las funciones pueden o no devolver algún
valor, para mi parecer, este tipo de funciones son las más sencillas, ya que
cuando se llama la función, esta realiza lecturas, asignaciones, cálculos o
impresiones, finaliza la ejecución de la función y el programa continúa
normalmente.
Ejemplo 1
Diseñe un programa que dados dos números enteros determine
la suma y cual de ellos es mayor, usando dos funciones diferentes.
#include
<stdio.h>
#include
<conio.h>
void suma (int a, int b); /*Declaración de la función*/
void mayor (int a, int b); /*Tipo de dato, nombre de la
función y el tipo y nombre de los argumentos*/
main()
{
int a, b;
printf("Ingrese el valor de a:\n");
scanf("%d", &a);
printf("Ingrese el valor de b:\n");
scanf("%d", &b);
suma(a,b); /*Llamado de la funci¢n*/
mayor(a,b); /*Unicamente el nombre de la funci¢n y de los
par metros*/
getch();
return 0;
}
void suma(int a, int b) /*Definición de la función*/
{ /*Abrimos llaves al inicio de la definición*/
int sum; /*Declaración de las variables locales*/
sum=a+b;
printf("El valor de la suma es %d:\n\n", sum);
} /*Fin de la función suma*/
void
mayor(int a, int b)
{
if(a==b)
printf("Son iguales\n\n");
else
{
if(a>b)
printf("El valor de a es mayor que el de b\n\n");
else
printf("El valor de b es mayor que el de a\n\n");
}
}
Definición de la Función
La función ha sido declarada, ha sido llamada y por lo tanto
deber haber sido definida. Lo cual consta de dos partes, las cuales son:
Que como su nombre lo indica, es la primera línea de la
definición de la función y con ella le indicamos al compilador que está en
presencia de una función. Su formato es el siguiente:
Tipo_de_dato nombre_de_la_función (tipo y nombre de los
argumentos)
·
La Primera Línea
·
Cuerpo de la función
Se inicia con una llave "{", y en ella, se pueden
realizar asignaciones, cálculos, impresiones, así como la declaración de las
variables locales. Puede estar constituidas por estructuras secuenciales,
selectivas, iterativas, anidamientos, se pueden llamar otras funciones, etc;
finaliza con "}". Puede devolver uno o ningún valor.
Las funciones que devuelven algún valor, se les llama
PROTOTIPOS DE FUNCIONES:
Antes de usar una función C debe tener conocimiento acerca
del tipo de dato que regresara y el tipo de los parámetros que la función
espera.
El estándar ANSI de C introdujo una nueva (mejor) forma de
hacer lo anterior respecto a las versiones previas de C.
La importancia de usar prototipos de funciones es la
siguiente:
Se hace el código más estructurado y por lo tanto, más fácil
de leer.
Se permite al compilador de C revisar la sintaxis de las
funciones llamadas.
Lo anterior es hecho, dependiendo del alcance de la función.
Básicamente si una función ha sido definida antes de que sea usada (o llamada),
entonces se puede usar la función sin problemas.
Si no es así, entonces la función se debe declarar. La
declaración simplemente maneja el tipo de dato que la función regresa y el tipo
de parámetros usados por la función.
Es una práctica usual y conveniente escribir el prototipo de
todas las funciones al principio del programa, sin embargo esto no es
estrictamente necesario.
Para declarar un prototipo de una función se indicara el
tipo de dato que regresará la función, el nombre de la función y entre
paréntesis la lista del tipo de los parámetros de acuerdo al orden que aparecen
en la definición de la función. Por ejemplo:
int longcad(int n); Lo anterior declara una función llamada
longcad que regresa un valor entero y acepta otro valor entero como parámetro.
Este método es un poco complejo y puede realizarse de manera
más fácil, haciendo uso de las funciones predefinidas en C, de las cuales
hablaremos a continuación.
·
Funciones que devuelven un valor entero
·
Funciones que Devuelven un Valor Real
Antes que nada, trataremos las funciones predefinidas en C.
Ya que C, posee ciertas funciones que nos ayudan hacer nuestros programas más
fáciles y utilizar menos código.
El lenguaje c, cuenta con una serie de funciones de
bibliotecas que realizan operaciones y cálculos de uso frecuente.
Para acceder a una función, se realiza mediante el nombre
seguido de los argumentos que le servirán a la función a realizar la tarea
específica. Podemos realizar muchas otras combinaciones de funciones, según
necesitemos y lo solicite nuestro programa.
·
Funciones Combinadas
·
Funciones en las que usamos Menú
En la práctica, muchas veces debemos diseñar programas, que
nos permitan elegir la acción o acciones a realizar, es decir haciendo uso de
un menú. El cual, no es más ni menos que la aplicación de un selector múltiple.
Un switch.
CONCLUSIÓN
El uso de las funciones en C sirve muchas ventajas:
1.
Facilita la programación modular de arriba hacia
abajo. En este estilo de programación, el alto nivel del problema general se
resuelve primero.
2.
La longitud de un programa de origen se puede
reducir mediante el uso de las funciones en un lugar adecuado.
3.
Es fácil de localizar y aislar una función
defectuosa de nuevas investigaciones.
4.
Una función puede ser utilizada por muchos otros
programas. Esto significa que un programador de C se puede construir sobre lo
que otros ya lo han hecho, en lugar de empezar desde cero.
Paréntesis para chulear el diseño del blog
ResponderEliminar