Inicio » Programacion » Facilino » Facilino Tutorial » Funciones y Procedimientos en Facilino

Funciones y Procedimientos en Facilino

En esta entrada se explica el uso de funciones y procedimientos en Facilino.

Las instrucciones de funciones y procedimientos podemos encontrarlas en la categoría «Funciones» dentro de la lista de categorías de Facilino.

Las funciones y procedimientos nos permitirán encapsular un conjunto de instrucciones que posteriormente podréis llamar desde cualquier lugar en vuestro programa. Existen dos tipo de funciones, las que no devuelven ningún valor de salida y las que devuelven un valor de salida. Las primeras, también conocidas como procedimientos, se utilizan para llamar a un conjunto de instrucciones, pero no se espera que como resultado de esa llamada obtener ningún valor a su salida y volverán al punto en el que se hizo la llamada. Por otro lado, las funciones, que devuelven algún valor a su salida retornarán obligatoriamente dicho valor antes de volver al punto de ejecución donde se hizo la llamada.

Además, las funciones pueden tener múltiples argumentos de entrada, que permitirán modificar el comportamiento de la función según su valor. Típicamente podemos aceptar como argumentos de entrada los valores que necesitamos para realizar algún cálculo y que por tanto afectará al valor devuelto en la salida. También podemos incluir en los argumentos de entrada expresiones, números o cualquier valor que podría condicionarnos la ejecución de las instrucciones que están encapsuladas por la función. Los argumentos de entrada pueden agregarse a la función simplemente desplegando el menú desplegable o «mutador» del icono azul en la esquina superior izquierda y arrastrando tantas variables como se deseen (el nombre de las variables debe ser único para cada función).

A cada función y/o procedimiento debemos asignarle un nombre que será único, para que no entre en conflicto con el resto de nombre o funciones existentes en el programa.

Tanto en los argumentos de entrada como el valor devuelto de salida se debe especificar el tipo de variable:

  • Entero: Número entero de 16bits, corresponde al tipo «int» en Arduino.
  • Entero Largo: Número entero de 32bits, corresponde al tipo «long int» en Arduino.
  • Byte: Número entero de 8bits, corresponde al tipo «byte» en Arduino.
  • Binaria: Número binario, corresponde al tipo «bool» en Arduino.
  • Decimal:Número real, corresponde al tipo «float» en Arduino.
  • Texto: Cadena de texto, corresponde al tipo «String» en Arduino.

La llamada de las funciones o procedimientos se puede hacer con los bloques correspondientes que se crearán en la barra de categorías en «Funciones» y que podremos seleccionar la función a llamar simplemente desplegando la lista y seleccionando la función con el nombre que deseemos llamar. Los argumentos de entrada se modificarán en caso de que se cambie el nombre de la función, con lo que todo lo que tengamos conectado a los argumentos de entrada se desconectará. Para el caso de las dos funciones creadas anteriormente, se muestran los bloques que deberíais tener. Como podéis observar, para el caso de «func1» la llamada no devuelve ningún valor de salida y por tanto lo que se espera es que se «enganche» con los conectores superior e inferior de la instrucción. Por otro lado, «func2» devuelve un valor de salida, con lo que este valor deberá «engancharse» a una entrada de otra instrucción de tipos compatibles.

Adicionalmente, las funciones que devuelven un valor disponen de un par de instrucciones más que podrían utilizarse dentro de la función que nos permite devolver el valor en cualquier parte de la función sin necesidad de tener que alcanzar el final de la misma. Concretamente, una instrucción devuelve un valor si se cumple una condición, mientras que la otra instrucción siempre devolvería un valor si llegara a ejecutarse.