Una función es una utilidad que nos da el lenguaje
para poder encapsular cierta lógica de programación,
un fragmento de código que va a realizar una tarea específica.
¿Para qué?
Para que más adelante simplemente llamemos nuestra función
para que ejecute una tarea específica
sin preocuparnos de escribir varias veces la implementación.
Simple.
Imagínate que hay un bloque de código
que estás usando mucho en un software, en tu programa.
Por ejemplo, el lenguaje C, por defecto,
no tiene el operador asterisco, asterisco,
que en otros lenguajes se utiliza
para elevar un número a una potencia.
Entonces, en algún software que estés desarrollando,
puede que llegues a necesitar un programa
o un pedazo de código
que eleva un número a la potencia que tú le indiques.
Eso es un caso de uso perfecto para una función.
¿Por qué?
Lo declaramos una vez,
creamos nuestra función de elevar un número m a la n,
y con esto simplemente cada que queramos
elevar un número a una potencia dada,
llamamos la función y la ejecutamos.
Nos ahorramos tener que escribir la implementación directa
de cómo hacer que un número se eleve a una potencia dada cada vez.
Más adelante, de hecho, en otros cursos dentro de este pad,
veremos sobre librerías o bibliotecas de código.
Y es que son esenciales en C
y lo que hacen principalmente es recopilar funciones
que van a traer utilidades similares.
Por ejemplo, la librería STDIO
que estamos utilizando en otras clases de estos cursos,
nos sirve para manejar inputs y outputs.
Es la librería estándar de inputs y outputs.
Y de hecho, esta librería cuenta con la función printf,
que es la función que contiene el código
para que el lenguaje C pueda imprimir un mensaje
en tu pantalla de tu terminal
y es lo que hemos estado utilizando muchísimo
a lo largo de todos estos cursos anteriores.
Así que ahora no solo vamos a aprender a utilizar funciones,
vamos a aprender a declararlas.
Con esto dicho, vamos al código donde justamente te voy a enseñar
cómo crear una función que eleve un número a una potencia.
Para empezar, abre tu Visual Studio Code, como siempre.
Vamos a guardar este archivo como functions. c
Y quiero comentarte un poco
cómo funciona la definición de una función.
Lo primero es que vamos a tener los siguientes elementos.
return type,
es decir, el tipo de datos que la función va a retornar,
el nombre de la función,
que vamos a escribir como function name.
También vamos a tener parameter,
declarations,
if any.
Muy bien.
Luego, obviamente, adentro de la función
tendríamos que abrir nuestras llaves
y aquí tendríamos nuestras declaraciones
y nuestros statements.
Recuerda que yo ya te había dicho que era un statement en C
y que era un declaration.
Aquí vamos a poder declarar,
en caso de ser necesario, algún tipo de variable,
inicializarle algunas cosas,
todo lo que se necesite para que la función funcione,
valga la redundancia de forma adecuada.
Y statements o declaraciones,
que son las instrucciones que vamos a ejecutar
dentro de nuestra función. ¿Ok?
Con esto dicho, déjame aclararte un poquito más qué es cada cosa.
return type es el tipo de datos que la función va a retornar.
Por ejemplo, si tú dentro de la función
haces un procesamiento con números enteros,
entonces la función va a retornar un tipo de datos enteros.
Y volviendo al código, podríamos poner int.
Si tu función se va a encargar de hacer la potencia de dos números enteros,
entonces power of integers.
Y aquí tenemos nuestra función que se va a encargar
de hacer la potencia de dos números enteros.
Parámetros. ¿Qué son los parámetros?
Los parámetros son los valores
que le vamos a pasar a nuestra función.
Estos valores son importantísimos
porque es lo que va a ocupar el código más,
el código que esté adentro de nuestra función,
para resolver la tarea que le pidamos.
En este caso, estamos hablando de la potencia
de un número entero.
Como bien sabes, vamos a tener dos elementos
que van a ser de tipo entero
y el primero va a ser la base de nuestra potencia,
si va a ser base 2, base 3, etc.
Y el segundo valor va a ser igual entero y va a ser la n,
es decir, a qué factor estamos elevando nuestra base.
Con esto dicho, ya tenemos los parámetros
que necesitaría nuestra función.
Antes de continuar, quiero contarte que en C
esto es correcto y es una buena práctica. ¿Por qué?
Porque te ayuda a tener mejor documentadas tus funciones.
Hay otra forma de hacerlo.
Si tú quisieras, puedes simplemente decirle
a tu función que va a recibir dos valores de tipo entero.
Esto está ok, el compilador lo aceptaría,
sin embargo, no es una buena práctica
porque entonces no vas a tener claro
de qué se trata cada uno de estos valores enteros.
Y aquí ya le estamos diciendo el tipo de dato
y el nombre del valor que estamos teniendo.
Es simplemente para que el código sea legible y fácil de comprender.
Con esto dicho, veamos qué más habría que hacer en nuestra función.
Con esto dicho, ya sabes de qué se trata una función.
Ahora, esto lo vas a utilizar muchísimo
a lo largo de tu desarrollo en C.
Obviamente, vamos a ver una implementación
de esto y lo veremos en la próxima clase.
Así que vamos para allá.