Criar uma função no Octave
Nesta lição, vou mostrar como criar uma função no Octave.
O que é uma função? É um trecho de código que pode ser executado quando necessário. O código da função é separado do programa principal. Ele pode estar no mesmo arquivo ou em um arquivo diferente. Funções são muito importantes na programação. Elas tornam o código de um programa mais conciso e compacto.
A sintaxe geral para definir uma função é a seguinte:
function [y1, y2, ... ] = namefunction([x1,x2,...])
code of the function
endfunction
- Os termos x1,x2... são as variáveis (dados de entrada) que a função recebe como entrada na chamada.
- Os termos y1,y2... são as variáveis (dados de saída) que a função retorna como saída.
Depois de definir uma função, você pode chamar e executar a função de diferentes pontos do programa.
Vou te dar um exemplo prático.
Digite um script com qualquer operação de cálculo. Por exemplo, com 1;
1;
Nota. Se você começar o script digitando function..., o interpretador do Octave pensa que é um arquivo de função em vez de um script.
Em seguida, você precisa criar uma função nomeada "average()" que recebe como entrada dois dados numéricos x1 e x2 e retorna como saída a média aritmética y.
1;
function y = average(x1,x2)
y = (x1+x2)/2;
endfunction
Agora adicione no código do programa uma chamada à função "average()" com dois valores de entrada, 2 e 4.
1;
function y = average(x1,x2)
y = (x1+x2)/2;
endfunction
m=average(2,4);
disp(m);
A função recebe os dois valores de entrada x1=2 e x2=4, calcula a média y=(2+4)/2 e retorna o resultado y=3.
Portanto, a saída do programa é 3.
3
Agora adicione uma segunda chamada à função com dois números diferentes, por exemplo, 4 e 6.
1;
function y = average(x1,x2)
y = (x1+x2)/2;
endfunction
m=average(2,4);
disp(m);
m=average(4,6);
disp(m);
Neste caso, o programa chama a função "average()" duas vezes em dois lugares diferentes.
- Na primeira vez, envia os valores 2 e 4, recebendo 3 como resposta.
- Na segunda vez, envia os valores 4 e 6, recebendo 5 como resposta.
Portanto, a saída do programa é:
3
5
Uma função também pode retornar múltiplos valores de saída.
Por exemplo, a função [y1, y2] = pwr(x) recebe um valor numérico (x) como entrada e produz dois valores como saída.
1;
function [y1, y2] = pwr(x)
y1=x^2;
y2=x^3;
endfunction
[y1,y2]=pwr(2);
disp(y1);
disp(y2);
A chamada da função envia x=2 como valor de entrada.
A função pwr() calcula o quadrado y1 = 4 e o cubo y2 = 8, retornando dois resultados de saída.
4
8
Se você quiser antecipar o encerramento da função e o retorno dos resultados, use a declaração return.
Aqui está um exemplo prático.
1;
function [y1, y2] = pwr(x)
if x<0
y1=0
y2=0
return
endif
y1=x^2;
y2=x^3;
endfunction
[y1,y2]=pwr(-2);
disp(y1);
disp(y2);
A declaração return encerra a execução da função e retorna os resultados y1 = 0 e y2 = 0 se o valor de entrada for negativo.
Neste caso, a saída da função é
0
0