Curso de Fundamentación

Aprende Fundamentación de una buena vez

gratis
texto

Antes de comenzar...

Fundamentos de funciones en tus programas. Cómo crearlos y usarlos

Las funciones son una herramienta indispensable para programar. Las funciones permiten "automatizar" tareas que requerimos con frecuencia y que además se pueden generalizar por medio de parámetros o argumentos. Aprender a crear funciones y usarlas correctamente es de gran importancia para separar nuestro código en módulos según las tareas que requerimos.Una función debe contener la implementación de una utilidad de nuestra aplicación, esto nos pide que por cada utilidad básica (abrir, cerrar, cargar, mover, etc.) sería adecuado tener al menos una función asociada a ésta, pues sería muy complejo usar o crear una función que haga todo de una sola vez, por esto es muy buena idea separar cada tarea en una función.

¿Funciones en un programa o algoritmo?

Las funciones son un conjunto de líneas de código (instrucciones), encapsulados en un bloque, usualmente reciben parámetros, cuyos valores se utilizan para efectuar operaciones y adicionalmente retornan un valor. En otras palabras, una función puede recibir parámetros o argumentos (algunas no reciben nada), hacer uso de dichos valores recibidos como sea necesario y retorna un valor.

Nota: Cuando una función no retorna un valor, ya no es una función como tal, sino que se le da el nombre de procedimiento. En esencia, un procedimiento, es lo mismo que una función, pues recibe valores y realiza operaciones sobre ellos. Sin embargo, no retorna nada en absoluto, solo se encarga de realizar operaciones.

¿Cómo luce una función en un programa?Crear un método en Java

La "sintaxis" para definir una función, es la siguiente, veamos:

Función nombreDeLaFunción (lista de parámetros) Inicio Instrucciones retornar valor Fin-Función

En términos generales, indicas que habrá una función y le das un nombre específico. Luego, entre paréntesis indicas los diferentes parámetros que recibe esa función (pueden ser muchos o ninguno), luego indicas el inicio de la función, seguido de las instrucciones y el valor a devolver, justo antes de indicar el fin de la misma.

Acerca de los argumentos o parámetros en una función

Hay algunos detalles respecto a los argumentos de un método, veamos:

  • Una función, puede tener una cantidad cualquiera de parámetros, es decir pueden tener cero, uno, tres, diez, cien o más parámetros. Aunque habitualmente no suelen tener más de 4 o 5 (se recomienda que sean la menor cantidad posible).
  • Al recibir un parámetro nada nos obliga a hacer uso de éste al interior del método. Sin embargo, para qué recibirlo si no lo vamos a usar.

Consejos acerca de retorno de un valor

Debes tener en cuenta dos cosas importantes con la sentencia return:

  • Cualquier instrucción que se encuentre después de la ejecución del retorno del valor NO sería ejecutada (si se tratase de un programa en algún lenguaje de programación). Es común encontrar funciones con múltiples instrucciones de retorno de valor al interior de condicionales, pero una vez que el código ejecuta una de ellas lo que haya de allí hacia abajo no se ejecutará y por ende se termina la ejecución de la función.
  • En el caso de los procedimientos que no retornan valores, podemos usar la "instrucción" de retornar pero sin ningún tupo de valor, sólo la usaríamos como una manera de terminar la ejecución del procedimiento en un punto dado.

Veamos algunos ejemplos.

Ejemplos de funciones

Veamos algunos ejemplos prácticos de funciones.

Ejemplo 1:

Función funciónNumérica()//Función sin parámetros { numero suma = 5+5 retornar suma //Acá termina la ejecución de la función retornar 5+5 //Este retorno nunca se ejecutará //Intenta intercambiar la línea 3 con la 5 numero x = 10 //Esta línea nunca se ejecutará }

Como puedes ver es un ejemplo sencillo, es una función llamada "funciónNumérica" que no recibe ningún parámetro. Si ejecutaras esto, la función te retornará el valor de suma que es 10 (5+5). Las líneas posteriores no se ejecutarán nunca, aunque no generan error alguno, no tienen utilidad. Puedes notar que para este caso es lo mismo haber escrito "retornar suma" que escribir "retornar 5+5". Ambas líneas funcionan equivalentemente.

Ejemplo 2:

Función escribirLetra(numero n)//función con un parámetro { if(n == 0) { //Usamos el parámetro en la función retornar "a" //Si n es cero retorna a //Notar que de aquí para abajo no se ejecuta nada más a menos que la condición no se cumpliera } retornar "x"//Este retorno solo se ejecuta cuando n NO es cero }

En este ejemplo creamos una función llamada "escribirLetra", que recibe un valor numérico, a partir del cual define cuál letra escribir ("a" o "x"). Es importante notas que tenemos múltiples sentencias de retorno y aprovechamos la característica de que al ser ejecutadas finalizan inmediatamente la ejecución de la parte restante del método. De este modo podemos asegurar que la función retornará "a" únicamente cuando el valor del parámetro n sea cero y retornará un "x" cuando dicho valor no sea cero, sin necesidad de poner un "else" o un "sino" en nuestro condicional.

Cómo usar funciones

Ya hemos visto cómo crear funciones, ahora veamos cómo usarlas en tus programas.

nombreDeLaFunción([valor,[valor]...])

Como puedes notar es bastante sencillo invocar o llamar funciones en tus programas. Necesitas el nombre de la función y enviarle el valor de los parámetros (si los tiene) dentro de los paréntesis. Hay que hacer algunas salvedades respecto a esto.

Detalles para invocar métodos funciones y procedimientos

  • El nombre debe coincidir exactamente al momento de invocar, pues es la única forma de identificarlo.
  • El orden de los parámetros y el tipo debe coincidir. Hay que ser cuidadosos al momento de enviar los valores para los parámetros (argumentos), debemos hacerlo en el mismo orden en el que fueron declarados y deben ser del mismo tipo (número, texto u otros).
  • Cada parámetro enviado también va separado por comas.
  • Si una función no recibe parámetros, simplemente no ponemos nada al interior de los paréntesis, pero SIEMPRE debemos poner los paréntesis.
  • El valor retornado por una función puede ser asignado a una variable del mismo tipo, pero no podemos hacer esto con un procedimiento, pues no retornan valor alguno.
  • Una función puede llamar a otra dentro de sí misma o incluso puede ser enviada como parámetro a otra (mira el siguiente ejemplo).

Ejemplos de uso de funciones

En el siguiente código vamos a hacer un llamado a algunas de las funciones y al procedimiento, que declaramos anteriormente.

INICIO funciónNumérica() //Llamando a una función sin argumentos texto letra = escribirLetra(0) //Asignando el valor retornado a una variable y pasamos un cero como argumento //Usando una función como argumento de otra texto otraLetra = escribirLetra(funciónNumérica()) //Lo que retorne funciónNumérica (en este caso 10) se envía a escribirLetra (así que retornará "x") FIN

Ya hemos visto entonces en el ejemplo anterior, diferentes formas de usar funciones en tus programas, incluyendo un caso particular que es usar una función como argumento para otra.

Muy bien, eso ha sido todo en esta sección. No te olvides de ver las demás secciones del curso y mejorar tus conocimientos. También puedes dejar tus comentarios y con gusto te responderé.

La última actualización de este artículo fue hace 4 semanas

Imagen descriptiva de JuanDMeGon

Juan David Meza González

JuanDMeGon

Magister, Ingeniero, Desarrollador
Web & Instructor

Lo que dicen los estudiantes

Me parece muy bueno, el punto de la historia me gusto mucho, ya que a veces aprendemos algo y no sabemos sus origenes. FELICITACIONES hermano...

Anthony Castillo

Visitante de ProgramarYa.com

Muchas gracias me has ayudado a quitar mis dudas de qué es For While, if y switch. Esto me ayudara también a mi tarea.

Len Garcia

Visitante de ProgramarYa.com

Estoy muy contento por haber terminado este curso. Estoy aplicando lo aprendido a mis proyectos y quedo totalmente satisfecho. Un curso 100% recomendable.

Jesus Romero

Estudiante del curso "VPS Seguro con DigitalOcean, Nginx, Letsencrypt Ubuntu 14.04"

Muy buena presentación pedagógica, pues nos quita el miedo a la programación. Yo entiendo que ésta tiene como objetivo facilitar el manejo de procesos que serían, demasiado complejos.

Jairo Ibarbo

Visitante de ProgramarYa.com

Genial el ambiente que genera la pagina. Simple, rápido, fácil y al alcance de cualquiera.¡Sigan así cracks!

Fran Garassi

Visitante de ProgramarYa.com

Demoramos mucho para llegar al desarrollo. Aunque la maquina virtual es necesaria son muchos videos. De ahí en fuera está muy bien

Benjamin Ortiz

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Muy detallado y claras las explicaciones. Muchas gracias!

Sr. Erick Evencio

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Buenas explicaciones y temario interesante.

Leonardo Quimpos

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Hice muchos ejercicios y aquí logré comprender lo que realmente estaba haciendo. Llegó un momento en que dejó de gustarme la programación, pero con estos textos, recuperé la motivación. Buen trabajo.

Demetrio Cumplido

Visitante de ProgramarYa.com

Muy buen programador, dominas la POO como en ninguno otro curso, el uso de traits en el proyecto es una delicia.

Sergio Larracoechea

Estudiante del curso "APIs RESTful con Laravel"

Muy bien explicado. Contenido muy actualizado.

Santiago Zuluaga

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Wuau, entendí más en una hora leyendo esto que en todo el semestre con la maestra de informática.

Valeria Sybelle

Visitante de ProgramarYa.com

¡De lo mejor! Saludos desde México, está super bien todo, claro y preciso. Lo mejor es que se usen ejemplos. ¡Mejor que algunos profesores que me han tocado!

Rodrigo Enciso

Visitante de ProgramarYa.com

Habiendo visto el 100% del curso puedo decir que es muy bueno de acuerdo a lo propuesto, cumple con las expectativas.

Holmans Correa

Estudiante del curso " La Guía del Principiante en Java: Fundamentos y Objetos"

El curso es bueno, pero siempre explica demasiado rápido

E-Contact

Estudiante del curso " Aprende Laravel: Crea un Gestor de Fotos con Laravel y PHP"

Buena didáctica y redacción, espero más contenidos en los siguientes capítulos.

Juan Razo Ruiz

Estudiante del curso " La Guía del Principiante en Java: Fundamentos y Objetos"

Estuve un semestre sin programar y me siento bastante perdida. Espero que este curso me ayude a ponerme de nuevo al corriente.

Fernanda Sanchez

Visitante de ProgramarYa.com

¡Listo!

En breve recibirás un mensaje de confirmación. Verifica, por si acaso, la carpeta de correo no deseado.

¡Ups! {{subscriberErrorMessage}}

Si te parece bien, te enviaré, de vez en cuando, mensajes de interés sobre los temas que se tratan en sitio.

Tu dirección de correo electrónico será almacenada con un interés según el artículo en el que te encontrabas.

Además, puedes eliminar tu suscripción en cualquier momento.