Contenido del Curso
Fundamentos de C
Fundamentos de C
Argumentos
Las funciones pueden considerarse minifábricas que toman materias primas y las transforman en diversos productos. Del mismo modo, las funciones procesan datos de entrada. Los datos de entrada de una función se denominan argumentos o parámetros.
Recordemos la estructura de una función:
arguments_placeholder
es el lugar donde se listan los argumentos de la función.
Como ejemplo, diseñaremos una función para convertir grados a radianes:
Main
#include <stdio.h> // my function for convertation degrees to radians double degreesToRadians(double degree) // *double degree* is argument { double rads = (degree * 3.14) / 180; return rads; // output of function } int main() { double degree = 30; // We immediately print the result of our function printf("30 degrees equals %.2f radians\n", degreesToRadians(degree)); return 0; }
Alcance
Imagina una llamada a una función como un portal a un reino separado y autónomo donde tienen lugar acciones específicas. Los objetos que nacen en este reino sólo existen allí, y una vez que el reino deja de existir, ellos también.
Por ejemplo, si declaramos una variable dentro de una función, sigue siendo inaccesible desde fuera de esa función. La única información que podemos extraer de la ejecución de una función es la que recuperamos mediante la sentencia return
.
Argumentos
Las funciones pueden tomar una variedad de argumentos: tipos de datos básicos (como int, char, double), arrays/strings, punteros (teaser!), e incluso otras funciones.
También es importante tener en cuenta que los nombres de los argumentos dentro de la función pueden diferir de los datos reales que se le pasan.
La variable int inputVar
vive sólo dentro del ámbito de la función, actuando como un marcador de posición para los datos que queremos introducir en la función. Sin embargo, los tipos de datos de los argumentos y los datos reales pasados a la función deben coincidir.
Ahora, programemos una función que señale el elemento más grande de una array:
Main
#include <stdio.h> int findMaxElement(int arr[]) // 1 { int max = arr[0]; // 2 for (int i = 1; i < 5; i++) // 3 { if (arr[i] > max) // 3 { max = arr[i]; // 4 } } return max; } int main() { int array[] = { 10, 5, 7, 14, 3 }; int maxElement = findMaxElement(array); printf("Max element is: %d\n", maxElement); return 0; }
He aquí el algoritmo:
- Pasa el array a la función;
- La función etiqueta cualquier elemento del array elegido como "max" (independientemente de su valor real);
- A continuación, un loop dentro de la función examina cada elemento, contrastándolo con "max";
- Si cualquier elemento nuevo es mayor que "max", entonces ese elemento toma el título de "max".
¡Gracias por tus comentarios!