Las funciones, talvez es la parte más importante en un lenguaje de programación, de ahí, la importancia de saber cómo funcionan y como se pueden crear y usar. en microbit, las funciones son bloques que encajan en otros bloques. hay una gran variedad, clasificadas según la actividad que hacen. en este apartado veremos su rol y como crear y usar funciones.

 

Se puede generalizar que casi todos los bloques en Makecode son funciones. Para entender el rol de una función, vamos a ver un ejemplo práctico. Supongamos que tienes un proyecto donde es necesario mostrar el “nombre y edad” de una persona como el mostrado en el siguiente programa:

 


 

 

 

Mirando en los bloques podemos observar que, al mostrar el nombre y la edad, hay 3 sectores de bloques “muy similares” como mostrado en la siguiente imagen:

 


 

 

 

Aquí es donde son útiles las funciones, pues podemos organizar mejor el programa creando funciones para estos bloques similares. Para hacer esto, vaya a la caja de herramientas y de click en el botón: “Avanzado”, como mostrado en la siguiente imagen:

 


 

 

 

Después, de click en el botón: “Funciones”, como mostrado en la siguiente imagen:

 

 


 

 

 

Aparecerá una venta llamada: “Funciones”, con un botón llamado: “crear una función…”, como mostrado en la siguiente imagen:

 


 

 

 

Al dar click en el botón: “crear función”, aparecerá una ventana como la mostrada en la siguiente imagen:

 


| Clique na imagem para ampliar |

 

 

En esta ventana podemos dar un nombre a la función que se desea crear. Es importante dar el nombre de la función de acuerdo con la tarea que la función va a realizar. Por ejemplo, para los bloques:

 


 

 

 

Podemos dar un nombre como: “UsuarioMaria”. Cuando creamos una función, aparecerá en el editor de bloques, un bloque como muestra la siguiente imagen:

 


 

 

 

También, aparecerá un bloque en el menú: “funciones”, representando la función creada y anteponiendo la palabra: “llamada” al nombre dado a la función. Esto se repite por cada función creada. Observe la siguiente figura:

 


 

 

 

Así, cree 3 funciones como mostrado en la siguiente imagen:

 


 

 

 

Después, encaje en cada función los bloques correspondientes a cada usuario como mostrado en la siguiente imagen:

 

 


 

 

 

Y observe que en el menú: “funciones”, ahora aparecen 3 bloques con los respectivos nombres dados a cada función, antepuesto de la palabra: “llamada”, como se ve en la siguiente imagen:

 


 

 

Ahora, arrastre y encaje en el bloque: “para siempre”, estas funciones como mostrado en la siguiente imagen:

 


 

 

 

Podemos observar que este programa funciona igual al proyecto inicialmente propuesto, con la diferencia que ahora usamos funciones, permitiendo una mejor organización del proyecto. Cuando los proyectos son muy grandes, las funciones ayudan a organizar mejor los proyectos.

 

 

PASANDO PARAMETROS A FUNCIONES.

 

Talvez la ventaja más grande de las funciones está en el hecho de poderle pasar parámetros o datos a las funciones. Los “tipos” de datos que pueden ser pasados a una función, son los siguientes:

• Booleano.

• Numero.

• Texto.

• Array.

• LedSprite.

• Imagen.

Observa la ventana: “Editar función”, la cual tiene una opción: “Añadir un parámetro”, para agregar parámetros a la función, como mostrado en la siguiente imagen:

 


| Clique na imagem para ampliar |

 

 

Veamos los parámetros en la práctica. Tomemos como ejemplo el proyecto donde mostramos el “nombre y la edad” de los usuarios. Siendo así, podemos crear una función que reciba como parámetros el: “nombre” y la “edad”. Notemos que el dato: “nombre” es de tipo “texto” y el dato: “edad” es de tipo “entero”. Entonces vaya al menú: “funciones” y cree una función que reciba 2 parámetros (datos) como mostrado en la siguiente imagen:

 


| Clique na imagem para ampliar |

 

 

Ahora, en el menú: “funciones”, aparecerá una función llamada: “usuario”, la cual recibe 2 parámetros como mostrado en la siguiente imagen:

 


 

 

 

En el editor de bloque aparecerá un bloque llamado: “función usuario nombre edad”, como se puede ver en la siguiente imagen:

 


 

 

 

Ahora, llene la función con los bloques que mostraran el nombre y la edad como se observa en la siguiente imagen:

 


 

 

 

Para llevar los parámetros a los bloques que los usan, de click en el parámetro y arrástrelo hasta donde va a ser usado, como mostrado en la siguiente imagen:

 


 

 

 

Ahora podemos usar la función: “usuario” y enviar como parámetro un nombre y la edad como se muestra en el siguiente programa:

 


| Clique na imagem para ampliar |

 

 

Como se puede observar, la función cumple con su actividad como si estuviera en el bucle (loop) principal. Esto se debe a que cuando usamos cualquier función, el programa pasa el control del procesador a la función que llama (call) y se ejecutan las instrucciones y bloques de igual manera como si estuviera en el bucle principal. De ahí la gran potencia de las funciones, pues permiten organizar los programas de cualquier proyecto en actividades o funciones específicas y además podemos pasar parámetros aumentando más aun su rol.

Volviendo al proyecto inicial de mostrar nombres y edades, se puede construir un programa como el siguiente, pero usando funciones y parámetros:

 


| Clique na imagem para ampliar |

 

 

Al comparar los 2 modelos de programación, podemos sacar algunas conclusiones interesantes:

• Usando funciones el programa es más organizado.

• Usando funciones se reutiliza partes de bloques de un programa.

• Usando funciones se necesitan menos bloques de programa.

• Usando funciones podemos crear un programa similar al diagrama de actividades.

• Usando funciones hay menos riesgos de cometer errores de programación.

• Además, se pueden colapsar las funciones para tener una mejor visual en el editor de bloques.

La siguiente figura muestra el mismo programa sin funciones y con funciones:

 

 


| Clique na imagem para ampliar |

 

 

Para colapsar las funciones de click en el circulo mostrado a la derecha del nombre de la función. El siguiente programa es igual al mostrado anteriormente, pero con la función colapsada:

 


| Clique na imagem para ampliar |

 

 

Para volver a desplegar la función, de click en el circulo a la derecha del nombre de la función.

Al usar funciones, se adapta mejor un programa al diagrama de actividades. Por ejemplo, el diagrama de actividades para el proyecto visto, sería similar al siguiente:

 

 


 

 

 

Observando en el diagrama de actividades, vemos que estas se ejecutan en forma secuencial y siempre se repiten. Podemos hacer un programa que muestre las informaciones de usuario (nombre y edad) dependiendo de algo que suceda en la tarjeta microbit. El siguiente programa muestra el usuario, dependiendo si se presionó algún botón o si se ajito la tarjeta:

 


| Clique na imagem para ampliar |

 

 

El diagrama de atividades para este programa seria similar al seguinte:

 

 


| Clique na imagem para ampliar |

 

 

 

CLASIFICACION DE FUNCIONES.

 

El editor de bloques “Makecode” tiene disponibilidad de muchas funciones listas para ser usadas, organizadas por menús de acuerdo a su clase de actividad que realiza. Observa en la siguiente figura como están clasificadas las funciones:

 


 

 

 

Estas funciones están dirigidas a sacar el mejor provecho del hardware de la tarjeta microbit:

 

 


 

 

 

Además de las funciones encontradas en el menú, puedes ir al menú: “Extensiones” y encontrar funciones específicas para muchos propósitos:

 


 

 

 

Algunos textos llaman estas extensiones de: librerías o bibliotecas. La siguiente figura muestra estas extensiones de funciones clasificadas según algún propósito:

 


| Clique na imagem para ampliar |

 

 

Para usar cualquiera de estas extensiones o librerías, basta seleccionarla y automáticamente aparecerá en el menú.

 

 

DEVOLVIENDO UN DATO DESDE UNA FUNCIÓN.

 

Es posible devolver un dato desde una función. Se puede devolver cualquier tipo de dato: texto, numero, booleano, imagen, etc. Veamos un ejemplo práctico. Supongamos que queremos crear una función para calcular el porcentaje de un número. Así, necesitamos una función que reciba 2 parámetros, una para el numero a calcular y otra para el porcentaje. El siguiente programa muestra como calcular el porcentaje:

 


| Clique na imagem para ampliar |

 

 

Para hacer esto, cree una variable llamada: “resultado” y una función llamada: “porcentaje”. Llene la función como mostrado en el programa. Observe que primero multiplicamos el numero por el porcentaje y guardamos el resultado en la variable: “resultado”. Después, dividimos por 100 el resultado y volvemos a guardar el resultado en la variable: “resultado”. Después usamos el bloque: “devuelve” y como dato a devolver usamos la variable: “resultado”. Ahora, ya la podemos usar la función: “porcentaje” en el bucle (loop) principal y ver su funcionamiento. He creado una variable llamada: “resultado”, con fines didácticos, para acumular el valor de la operación de multiplicación, pero podemos también programar la función: “porcentaje”, como mostrado en el siguiente programa:

 


| Clique na imagem para ampliar |

 

 

Podemos presidir, es decir no usar la variable: “resultado”, para obtener el mismo resultado de los programas anteriores como muestra la siguiente imagen:

 


| Clique na imagem para ampliar |

 

 

Una función puede devolver cualquier tipo de datos. El bloque: “devuelve” nos permite hacer esto y la encontramos en el menú: “funciones” como muestra la siguiente imagen:

 


 

 

 

Todos los bloques con una forma arredondeada,

 


 

 

 

retornan o devuelven algún tipo de dato, como se muestra en los bloques de la siguiente imagen:

 


 

 

 

Los bloques con forma de rombo, también retornan un dato booleano (verdadero o falso).

 


 

 

Como conclusión, podemos notar que todos los bloques usados en programar la tarjeta microbit son funciones. Algunas no reciben parámetros, otras si, otras devuelven algún dato, otras no. Podemos crear o inventar nuestras propias funciones y dar a los proyectos mejor organización y legibilidad.

 

 

 

Buscador de Datasheets



N° de Componente