destcada_return

¿Qué es una función con retorno?

Una función con retorno es un fragmento de código diseñado con el objetivo de ser lo más reutilizable posible y que, tras ejecutarse, devuelve un valor numérico, textual, lógico o de otros tipos que será utilizado por el programa principal. Las funciones con retorno son ampliamente usadas ya que permiten, junto con el uso de argumentos, crear fragmentos de código que pueden ser usados en múltiples programas sin necesidad de reescribirlos en cada situación.

La suma del cuadrado de los catetos. Creando una función con retorno.

He de reconocer una cosa, no soy bueno con las matemáticas. Al comprar nunca sé cuánto cambio me deben dar, y cuando divido una cuenta entre amigos sospecho que siempre acabo pagando de más. Esto en la escuela era un problema. Hubo un año, el año mundial de Pitágoras, en el que no hacíamos más que calcular valores de hipotenusas, catetos y más catetos. Al final me liaba tanto que el único cateto que hallaba era yo. “En un triángulo rectángulo, el cuadrado de la hipotenusa es igual a la suma de los cuadrados de los catetos”. Nunca lo olvidaré. ¡Pero ahora sé programar, así que voy a solucionar mi problema con los triángulos de una vez por todas! Para ello crearé un programa al que le introduzca el valor de los catetos y me muestre por puerto serie el valor de la hipotenusa. Así nunca más hará falta calcular el valor de una hipotenusa a mano y, probablemente, el mundo sea un lugar un poco mejor.

En primer lugar es necesario definir la función:

ejemplo 1

La función necesita dos argumentos numéricos: cateto_A y cateto_B. Puedes utilizar dos parámetros dentro de una función en vez de uno utilizando el bloque coma, que encontrarás dentro de Funciones->Avanzados.

Una vez creada ya podemos utilizarla dentro del programa principal (loop):

ejemplo1_principal

La único que hacemos dentro del programa principal es llamar a la función paśandole como argumentos el valor de los catetos de nuestro triángulo y mostrarlo por el puerto serie. Prueba el programa con distintos valores y comprueba que el resultado de la operación es siempre correcto.

Sin embargo, esta forma de introducir el valor de los catetos es muy lenta. ¿Por qué no intentamos introducir los valores mediante el puerto serie? Podremos reutilizar la función del teorema de Pitágoras, solo tendremos que modificar el bucle principal.

Aún hay más

    A continuación te proponemos algunas ideas para seguir practicando:

  • Amplia el programa anterior con más funciones para calcular cosas como la velocidad, la gravedad o una fuerza.
  • Utiliza un potenciómetro, un botón y el puerto serie para introducir el valor de cada cateto y mostrar su hipotenusa. Necesitarás utilizar una máquina de estados.
  • Crea funciones para tu PrintBot que reutilicen acciones como avanzar, retroceder o comprobar el valor de un sensor e incorpora sonidos para hacerlas más atractivas.


Puedes practicar más viendo el siguiente vídeo:




Las funciones son de gran importancia en programación, ya que nos permiten simplificar los programas y hacerlos mas comprensibles. Si divides tu código en funciones bien programadas podrás reutilizar esa misma función en otros programas, agrupándolas en librerías donde podrás reutilizarlas siempre que las necesites. A partir de ahora tus programas serán mucho más profesionales ¡No lo dudes y utiliza funciones siempre que lo necesites!

3 comentarios

  1. En divide y venceras.
    Teorema hipotenusa al cuadrado es igual a la suma de los catetos al cuadrado.
    Pero en la funcion hipotenusa es igual a la suma de los catetos multiplicados por dos ¿?

    1. Julián Caro

      Buenas noches Jaime

      No sé si entiendo muy bien tu duda.

      En la función la hipotenusa es igual a la raíz de la suma de los cuadrados de los catetos (h^2=c1^2+c^2 que es lo mismo que h=raíz(c1^2+c^2)).

      Creo que tu duda reside en que estás confundiendo el símbolo de elevado a “^” con la multiplicación.

      En muchos lenguajes de programación, incluido Arduino (que es el lenguaje en el que se basa Bitbloq) el símbolo “^” significa “elevado a” por lo que cateto_A=cateto_A^2 no significa “cateto A es igual a cateto A por dos” si no “cateto A es igual a cateto A elevado al cuadrado”.

      Espero que esto aclare tu duda, si no no dudes en consultarnos.

      Un saludo

  2. Hola Julián
    Gracias por contestar. Efectivamente en la pantalla de mi telefono confundi un símbolo con otro. Al leer tu contestacion y ampliar repetidas veces la pantalla, he comprobado mi error y visitare al ocultista. Disculpa la molestias

Los comentarios están cerrados.