En esta clase podrás:
Familiarizarse con las Funciones y Procedimientos de Facilino, así como la interfaz de programación de Facilino y su configuración.
Hola, soy Leopoldo Armesto y en este vídeo os vamos a explicar
el uso de funciones y procedimientos en Facilino. Mirad,
para ello vamos a acceder a lo que es la categoría de funciones
de Facilino en la que, como veis aquí, tenemos un conjunto
de instrucciones que nos van a permitir definir funciones en
nuestro programa, vale, las funciones nos van a permitir
desarrollar un conjunto de, o agregar un conjunto de instrucciones
dentro de ellas que queréis luego posteriormente llamar en
cualquier otra parte de vuestro programa, vale, pues entonces, para evitar
tener que estar copiando y pegando ese mismo código en vuestro
programa, lo lógico sería utilizar funciones. Bien, existen
dos tipos de funciones principalmente: las que no devuelven
nada, que son sin retorno, o las que tienen retorno, vale. Vamos
a empezar con las que no tienen retorno, vale, que simplemente
son funciones en las que lo que nos van a permitir es hacer
una llamada de un conjunto de operaciones y en principio no
tenemos porqué estar esperando nada sobre ellas, vale. Entonces,
por ejemplo, mirad, aquí en esta casilla de aquí lo que tenemos
que hacer es especificar el nombre la función, vamos a poner
un nombre que se ha suma, vale, sum, y entonces pues aquí
en este icono de la izquierda de arriba lo que vamos
a permitir es un mutador, lo que nos va a permitir es agregar
diferentes argumentos de entrada de nuestra función, vale, entonces
podemos agregar tantos como queramos, vale, en este caso voy
a agregar dos, perdón,
y vamos a modificar el nombre de uno de ellos y vamos a hacerlos
que sean del tipo float, vale que sería un número real, vale,
que sería el equivalente al número real. Vale, entonces en
este caso lo que queremos hacer es una suma
y lo que vamos a hacer, en realidad no vamos a devolver la suma,
sino lo que vamos a hacer es mostrarla por consola, entonces, como no
devolvemos nada lo que vamos a hacer es que, aquí dentro vamos
a mostrar la suma, vale, entonces, realmente vamos a hacer
aquí esto, vamos a hacer la operación de suma
y aquí en el menú variables es donde tenemos las dos argumentos
de entrada tanto X como Y que vamos a poder utilizar en nuestra
suma, vale, como veis aquí lo que estamos haciendo es sumar
X con Y, y mostrarlo por consola en este caso, vale.
Mientras tanto observáis que lo que se ha ido generando
un código es una función aquí está la declaración de la
función en la que tenemos el nombre de la función que hemos
puesto, los argumentos de entrada que hemos especificado, y en
este caso, como es una función que no retorna nada, devuelve un
void, vale, entonces más abajo del todo está lo que sería
la definición de la función que es lo que realmente coge
este código que pongamos aquí dentro, todo el código que
podamos poner aquí dentro y nos lo va a poner aquí, vale, entonces
aquí concretamente lo que está haciendo es que, bueno, pues
simplemente está cogiendo el argumento X más Y, está
haciendo la suma y lo está mostrando por consola, vale. Esto podríamos
hacer después ya que en nuestro programa,
pues por ejemplo aquí, en la parte del setup de arduino
podríamos hacer la llamada a la función, vale, para que nos
muestre la suma de dos números, pues por ejemplo, este con este,
vale y esto, como es una función, podemos hacer tantas llamadas
como queramos y en diferentes lugares del
del programa, vale, pues, por ejemplo, vamos a hacer otra
suma, en este caso pues, por ejemplo, con un -7,4
con 6,25.
Vale, entonces tenemos esa suma de ahí, y lo que va a hacer
aquí esta función, lo que va a hacer es mostrarnos
por consola, realmente no nos devuelve la suma, vale. Si quisiéramos
que una función nos devolviera la suma tendríamos utilizar
el otro tipo de funciones que son estas de aquí que son las
de with_return, vale, entonces a esta vamos a llamarle pues, por ejemplo,
vamos a llamarle la norma, vale, para hacer otra vez la suma, vamos
a hacer la norma y en este caso vamos a hacer la norma
de dos variables también, vale, vamos a llamarle
a y b, por ejemplo, podrían haberse llamado X e Y, también
pero vamos a llamarles a y b, vale, y vamos a hacerles también
que sea del tipo real, vale, float, de
acuerdo, ya tenemos los dos argumentos de entrada y ahora vamos
a especificar aquí el tipo de salida que queremos, vale, que
también va a ser de tipo float, vale. Entonces lo que vamos
a querer hacer aquí es la norma de un vector de dos
elementos, vale, que sería a y b, entonces bueno, pues esto es
bastante fácil porque es a al cuadrado más b al cuadrado, la
raíz cuadrada de todo eso, vale, entonces, por ejemplo, vamos
aquí y nos debería aparecer aquí la a que vamos a hacer
la multiplicación
consigo mismo, vale, es la forma hacer cuadrado fácil, vale, duplicamos
esto y hacemos la b, entonces ahora lo que tenemos que hacer es sumar
los números
y todo esto devolver la raíz cuadrada de todo
esto, vale, que sería la norma, por ejemplo, en esta operación
aquí. Vale, pues esto de aquí nos definiría lo que es la norma
de un vector, vale, de dos elementos, entonces esto es lo que tenemos
que retornar, vale, las funciones con retorno nos van a permitir
hacer lo que queramos hacer aquí dentro, arrastrar todo tipo instrucciones
que queremos hacer aquí dentro, vale, y al final con lo que
tengamos, tanto los argumentos de entrada con las
operaciones que hayamos hecho aquí dentro, vamos a tener que
devolver un valor, vale. También existen otro, bueno vamos
a hacer la llamada, en este caso, a la norma, y como veis aquí
la diferencia principal con respecto antes es que ahora tiene
un conector este de salida en el que es el valor, está representando
el valor que va a hacer la operación aquí está que
hemos especificado, vale, pues, por ejemplo, vamos a hacer la norma
el vector 1, 1,
vale, y esto es lo que vamos a mostrar por consola, por ejemplo,
de acuerdo, vamos a arrastrar esto por aquí, y esto por aquí.
Esto sería la forma de llamar en este caso a la función
que tiene argumento de salida, bien, lo que estaba diciendo
es que concretamente las funciones que tiene el momento
de salida tienen dos conjuntos de instrucciones adicionales que
es el if return y el return que lo que hacen es que nos van
a permitir salir de la función o devolver un valor antes de
llegar incluso al último punto de la instrucción o de
la función, perdón, que sería este de aquí, vale, es decir,
en ocasiones, pues por ejemplo, si, vale esto no sería matemáticamente
no sería correcto lo de la norma, pero si quisiéramos que
si en este caso, perdón, el a es mayor o es negativo, vamos a
hacer que sea negativo,
vale, en este caso si a es negativo vamos a devolver,
pues, por ejemplo, un cero, vale, no sería la norma, pero no
pasa nada, vale, podríamos hacer algo así como esto y devolver
directamente ceros, vale, o salir en este punto. Entonces, esto
sólo saldría en el caso de este de aquí y entonces ya no
calcularía el resto instrucciones que veis aquí, vale, que
lo voy a desplazar un poco, de
acuerdo, para eso sirve la instrucción if return o luego también
tenemos la instrucción return, que directamente, si se alcanza
a lo largo del código este bloque de instrucción,
entonces, devolvería lo que le especificamos aquí, vale. Entonces,
bien, simplemente pues que veáis que el código generado pues
es correcto, lo que está haciendo es que aquí en el caso este
de la norma hemos puesto if a menor que cero, entonces devuelve
cero, si no lo que hace es que devuelve la raíz cuadrada de
a por a más b por b, vale. Bien, como, desde el punto vista matemático esto no
es correcto, simplemente lo he hecho para mostrar como
ejemplo, lo voy a quitar, vale, para que veamos cómo funciona
realmente las dos operaciones que os estoy mostrando, vale, que sería
la suma y la norma. Bien, pues en este caso lo que vamos a hacer
es a subir el código de arduino, un segundo a ver que acabe
de cargarse, debería compilar correctamente
hasta que aparezca la palabra finished,
un segundo que está ya a punto de acabar, finished, vale, entonces
ahora resetearíamos el arduino y nos vamos al monitor
y nos debería aparecer las operaciones que hemos mostrado,
vale, las dos llamadas a la suma, que eran cuatro y siete, si
no recuerdo mal, nos daba 11, luego unos números que tenían
decimales, no recordar exactamente los números, y nos da un
resultado negativo y en este caso la raíz cuadrada del vector
1, 1, que es 1,41. De acuerdo, bien pues
nada, simplemente a modo de resumen en este vídeo os hemos mostrado
cómo utilizar las funciones y procedimientos en
muchas gracias.