DEFINICIÓN
Cuando es necesario escribir programas
complicados para resolver problemas complejos, una práctica común entre los
programadores es descomponer el algoritmo o seudocódigo en varias partes. Cada una
de estas partes puede codificarse en forma independiente en la forma de
subprogramas. Así, habrá un cierto número de subprogramas que se encargan de
realizar sólo parte de las tareas requeridas para resolver el problema; estos
subprogramas estarán relacionados de forma que su ejecución conjunta permitirá
la solución del programa global.
Las funciones
son los bloques de construcción básicos de C/C++. Dentro de ellas se da toda la
actividad del programa. En algunos lenguajes de
programación, las funciones son llamadas módulos, procedimientos, subprogramas
o subrutinas.
TIPOS DE FUNCIONES
FUNCIÓN PRINCIPAL.- Cada programa de C/C++ tiene una función
principal que se debe llamar main que sirve como punto de partida para la ejecución del programa. Normalmente, controla la ejecución del programa dirigiendo las llamadas a otras funciones del programa. Un programa deja de ejecutarse normalmente al final de main, aunque puede finalizar en otros puntos por distintos motivos.
FUNCIONES ESTÁNDARES.- El lenguaje C/C++,
como la mayoría de los lenguajes de programación, permite el uso de “bibliotecas
o librerías” que contienen funciones estándares o predefinidas que se pueden
utilizar en cualquier programa. Como por ejemplo la librería <stdio.h>
proporciona funciones estándares de entrada y salida con formato, tales como
scanf ( ), printf ( ), getchar(
); la librería o biblioteca <math.h> contiene funciones
matemáticas como sqrt ( ), sin ( ), pow (
), entre otras.
FUNCIONES DE USUARIO.- Cada
programador puede definir sus propias funciones de acuerdo a sus necesidades.
Las funciones que define el programador son conocidas como funciones de
usuario.
Probablemente, dentro de un mismo
programa se realicen las mismas tareas varias veces, lo que se facilita
mediante la utilización de funciones. Sin embargo, es probable que ciertas
funciones no sean reutilizables, pero al usarlas se mejora la legibilidad del
programa.
CRITERIOS PARA CREAR LAS FUNCIONES:
Se usa la estrategia de
“Dividir y Conquistar”, en otras palabras, es realizar la partición de la tarea
en subtareas más fáciles de abordar. Todo problema se puede resolver con
funciones o sin ellas, pero su uso adecuado
hace que el programa sea más eficiente, fácil de leer y probar.
1. Facilita el diseño descendente.
2. Los procedimientos dentro de ellas se pueden ejecutar
varias veces.
3. Facilita la división de tareas.
4. Se pueden probar individualmente
5. Con funciones apropiadamente diseñadas, es posible
ignorar como se realiza una tarea, sabiendo qué es lo que hacen.
TRES MOMENTOS DE LA FUNCIÓN DE USUARIO
DECLARACIÓN
Antes de empezar a
utilizar una función debemos declararla. La declaración de una función se
conoce también como prototipo de la función. En el prototipo de una función se
tienen que especificar los parámetros de la función, así como el tipo de dato
que devuelve.
tipo_dato nombre_funcion (lista de parámetros);
DEFINICIÓN
Tras
declarar una función, el siguiente paso es implementarla. Generalmente, este
paso se conoce como definición. Es precisamente en la definición de una función
donde se especifican las instrucciones que forman parte de la misma y que se
utilizan para llevar a cabo la tarea específica de la función. La definición de
una función consta de dos partes, el encabezado y el cuerpo de la función.
tipo_dato nombre_funcion(lista
de parámetros)
{
//cuerpo
de la función;
return
<expresión>;
}
LLAMADA
Se puede acceder (llamar) a una
determinada función desde cualquier parte de un programa. Cuando se llama a una
función, se ejecutan las instrucciones que constituyen dicha función. Una vez que
se ejecutan las instrucciones de la función, se devuelve el control del
programa a la siguiente instrucción (si existe) inmediatamente después de la
que provocó la llamada a la función.
nombre_funcion
(argumentos o parámetros);
RETURN
Una función en C sólo puede
devolver un valor. Para devolver dicho valor, se utiliza la palabra reservada return
cuya sintaxis es la siguiente:
return
<expresión>;
Donde <expresión>
puede ser cualquier tipo de dato. Además, el valor de la expresión debe
coincidir con el tipo de dato declarado en el prototipo de la función.