destacada_NO-return

O que é uma função?

Uma função é um fragmento de programa desenhado para ser reutilizado em diversas ocasiões. Normalmente, uma função efectua uma ou várias tarefas podendo, ao terminar, devolver um valor (funções com retorno)… ou não devolver nada (funções sem retorno).

A nossa primeira função. Reutilizar uma melodia.

Imagina que queremos tocar uma pequena melodia, várias vezes em diversos momentos do programa e acender um LED, pressionando um botão. Normalmente deveríamos repetir todos os blocos da melodia cada que vez que quiséssemos usá-la. No final, teríamos um programa gigante e difícil de entender ou modificar. Porque não reutilizar sempre os mesmos blocos? Vamos criar uma função que contenha a melodia, para mais tarde utilizá-la sempre que necessitemos. Para isso, utilizaremos um besouro, um botão e um LED.
esquema_conexion

Criar a função

Para poder utilizar uma função, primeiro é necessário criá-la dentro da zona Variáveis e funções globais. Para isso, utiliza o bloco Declarar função, que podes encontrar dentro da aba Funções.

Chamar a função

Uma vez criada a função, é necessário chamá-la dentro do programa. Apesar de terem blocos dentro delas, as funções não se executam… a não ser que as chames. Para chamar uma função, utiliza o bloco Executar função.

À esquerda tens o programa sem funções e à direita com funções. Como podes ver, o programa fica muito mais pequeno usando funções, sendo muito mais rápido e fácil criá-lo. Além disso, se por alguma razão quiseres modificar a melodia, apenas terás que alterá-la na função e não em cada parte do programa.

Personalizar funções. Os argumentos

Imagina agora que queremos utilizar no programa a mesma melodia… mas em cada sítio, com uma duração diferente. As notas na função são sempre as mesmas. Como poderíamos realizá-lo? Os argumentos são variáveis que apenas existem dentro de uma função, e cujo valor definimos quando a chamamos. Se utilizármos o bloco avançado Criar função com os seguintes argumentos poderemos criar um argumento chamado tempo que estabeleça qual a duração de cada nota.

Uma vez criada a nossa função com argumentos, apenas temos que chamá-la. Para isso, utilizaremos o bloco avançado Executar função com os seguintes argumentos.

No caso de pressionarmos o botão, a melodia executa-se com um tempo de 2000 ms para cada nota. Em caso contrário, cada nota durará 500 ms. Desta forma podemos reutilizar o mesmo fragmento do programa todas as vezes que queiramos adaptá-lo a cada situação.

Ainda há mais…

    A seguir, propomos-te algumas ideias para continuar a praticar:

  • Cria uma melodia completa, separando uma função para cada compasso.
  • Modifica o programa anterior e adiciona outro argumento para controlar o tempo de pausa entre as notas. Para isso, necessitarás utilizar o bloco vírgula, que está em Avançados.
  • Cria uma função em que insiras como parâmetros, o número de vezes que desejas fazer piscar um LED e o tempo de intermitência. Necessitarás utilizar um ciclo de controlo for.

 

Quando chega a hora de programar, é mais importante programar bem… do que ter uma grande quantidade de blocos. As funções permitem-te reutilizar muitas partes do teu programa de uma forma muito inteligente, poupando-te erros, tempo e esforço. Queres descobrir tudo o que são capazes de fazer? Vamos ver tudo no post seguinte!