6. Funções

Introdução e conceito

     Quando estar-se-a fazer um algoritmo, comumente é necessário que seja executada determinada ação predefinida várias vezes, porém não continuamente, ou seja, esta ação não será repetida, não cabendo então o uso de estruturas de repetição. Por exemplo, imagine um algoritmo em que o carrinho faça um círculo, execute uma ação qualquer e depois faça outro circulo. Para isso seria preciso redigir duas vezes o programa que faz com que o carrinho ande em circulo, usar uma função nada mais é do que “nomear” este programa, e “chama-lo” quando precisar dele, para que assim não seja necessário ficar reescrevendo-o diversas vezes, o que em alguns casos tornaria inviável a escrita de alguns algoritmos.

     O uso de funções torna  a escrita do software mais compacta e mais simples de ser entendida pelo próprio, ou ainda por outro programador, visto que reduz o número de linhas de comando (no caso do AsimovBotsEdu o número de blocos), além de várias outras atribuições para funções, como recursividade, por exemplo, que é um artifício sobre o qual não entraremos em detalhes, mas que executa tarefas similares às estruturas de repetição. Sendo assim o seu uso cria uma melhora na visualização do algoritmo e com isso facilita que sejam vistos erros e que seja feito o seu aprimoramento.

Aplicações e métodos

      As funções são amplamente utilizadas na programação mais avançada, para facilitar o entendimento e aplicação de métodos de ordenação (métodos que ordenam números, palavras, letras, etc.), recursividade (uma função chama ela mesmo diversas vezes até uma condição de parada específica), TADs (Tipos abstratos de dados, são usados para o armazenamento e manipulação de dados), entre outras varias aplicações.

     Em quase cem por cento dos softwares para celular, computador, automação, etc. são usadas funções, uma vez que elas são facilitadores de programação. Elas serão de grande auxílio no decorrer  deste conteúdo e de futuros programas feitos pelos usuários do material.

      No AsimovBotsEdu existem blocos dedicados à esse tipo de estruturas e para usa-los basta seguir como nas figuras abaixo:

Composta resto simples

     O bloco cujo a descrição afirma ser uma espécie de estrutura de controle, serve como um conversor de respostas binárias, por exemplo, o programador deseja que uma operação matemática seja realizada dentro da função, caso o resultado seja par ela retorna x unidades, que posteriormente serão usadas para que o carrinho se mova, do contrário, retorna y unidades. Dando duas opções de saída da função, ou seja, um resultado binário.