Programação: Uso de funções

Programas complicados e extensos podem se tornar bem mais simples de ler e manter se usarmos o conceito de funções. Portanto, quer esteja aprendendo a programar, quer esteja seguindo a série de artigos sobre Octave, certamente achará muito útil o uso de funções em programação.

[ Hits: 21.238 ]

Por: Juliao Junior em 10/12/2008


Introdução



Programas complicados e extensos podem se tornar bem mais simples de ler e manter se usarmos o conceito de funções. Portanto, quer esteja aprendendo a programar, quer esteja seguindo a série de artigos sobre Octave, certamente achará muito útil o uso de funções em programação.

No último caso, se ainda não o fez, leia os primeiros artigos da série (veja os links em Programação.

De forma simples, funções podem ser vistas como caixas pretas, onde colocamos algo. A caixa então nos devolve outra coisa como resposta. Compreenda que, para usar a função, não precisamos saber como ela trabalha internamente. O importante é saber o que a função nos devolve, sem se preocupar como ela faz isso. É como uma caixa "mágica", onde damos a entrada e ela fornece uma saída.

Este tipo de artifício é muito útil, principalmente quando temos tarefas que serão repetidas ao longo de um programa, ou ainda em vários programas. É aí que entram as funções. Basicamente escrevemos o trecho do código que será usado, e apenas fazemos uma chamada desse trecho em nosso programa "principal". Em Octave, a definição de uma função tem a seguinte forma:

function NOME
   código
endfunction

O código incluído dentro de uma função é a parte mais importante, pois é o motivo de sua existência. Por exemplo, a função abaixo escreve a string "Viva O Linux":

function VOL
   printf ("Viva O Linux\n");
endfuction

O comando printf irá exibir na tela a expressão "Viva O Linux". Depois que escrevemos a função, podemos executá-la simplesmente por usar seu nome.

Como falamos no começo do artigo, podemos passar informações para uma função e a resposta dada será dependente de tais informações. Chamamos de parâmetro cada dado que entregamos para a função, e a sintaxe é a seguinte:

function NOME (ARGUMENTOS)
   código
endfunction

Os argumentos, ou seja, os dados que passaremos, devem ser separados por vírgulas. Dentro do código da função, usamos os mesmos nomes dos argumentos da definição. Quando chamamos a função para a execução, os valores dos argumentos dados passam a ser usados. Um exemplo certamente esclarece melhor. Vejamos uma adaptação da função anterior.

function VOL (texto)
   printf ("%s\n",texto);
endfuction

Na maioria das vezes, como já indicamos, o que realmente queremos é produzir informação a partir das funções. Ou seja, quando chamamos uma função desejamos que ela nos retorne algum valor. Nos exemplos acima isso não foi necessário. A sintaxe no Octave para uma função retornar valor, não é muito bonito. Outras linguagens são mais "eficientes". No entanto, a idéia é sempre a mesma. Veja:

function VALOR = NOME (ARGUMENTOS)
   CÓDIGO
endfunction

No trecho acima você deve ter notado que a sintaxe é quase igual ao caso anterior. O acréscimo se deve ao termo VALOR =. No "CÓDIGO" a ser executado, usaremos o termo VALOR para definir a informação retornada pela função. Lembre que as variáveis usadas dentro da função são variáveis locais. Variáveis locais são acessadas apenas de dentro da função, e o restante do programa não consegue "ver" essas variáveis. Abaixo, um exemplo.

function VALOR = soma (a,b)
   VALOR = a + b;
endfunction

Note que dentro da função o termo VALOR é bem definido, e é esse o valor que a função entrega de volta ao programa. Só um lembrete: VALOR deve ser definida antes do fim da função, ou o Octave retornará uma mensagem de erro. Por exemplo, no caso abaixo a função pode terminar sem definir o termo ret-var.

function VALOR = soma (a,b)
   if (a<100)
      VALOR = a + b;
   endif
endfunction

O código acima é passível de erro, pois se a variável a tiver valor maior ou igual a 100, o código dentro do if não será executado, e VALOR não será definida - a consequência é um erro de execução.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Cuidados e bibliotecas
   3. Scripts e funções embutidas
Outros artigos deste autor

Grace - Usando a função "Regression"

Inkscape - Introdução (Parte 3)

Guia Introdutório do Linux VI

Reconstructor: Crie seu próprio Linux liveCD

SystemRescueCd - Corrigindo o sistema e recuperando dados

Leitura recomendada

Instalando o Automatix no Debian Etch

Usando o JIGDO - How To

Kivy no Fedora 25/26 com auxílio do Virtualenv

Monitorando seu servidor Jabber

AIXGL + Beryl + Slackware + ATI

  
Comentários
[1] Comentário enviado por removido em 16/12/2008 - 18:04h

Simples e direto.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts