Criando uma função no OpenOffice.org Calc
Em um artigo anterior comentei sobre algumas funções internas aplicáveis à estatística. Pois então, apesar da grande quantidade de funções disponibilizadas no OpenOffice Calc, pode ser que em algum momento você precise criar uma função específica. Logo...
Introdução
Neste artigo vou procurar mostrar o caminho das pedras para a construção de uma função no OpenOffice.org Calc, vou utilizar um conteúdo de álgebra que é uma situação matemática bem simples e que vai servir para ilustrar todo o artigo. Trata-se do cálculo das raízes de uma equação do segundo grau, aplicando a fórmula de Bhaskara.
Temos à nossa disposição um editor de macros que vem junto com o pacote OpenOffice.org Calc e que funciona com uma linguagem de programação muito simples, o Basic, mas que produz grandes resultados quando utilizada com direcionamento adequado. Vou mostrar como se cria uma função a partir de um macro comando, em um nível bem inicial.
Construir um macro comando pode ser uma tarefa fácil se você possuir uma boa lógica na hora de programar e saber bem aonde quer chegar. Estes macros comandos são muito funcionais nas tarefas corriqueiras que necessitam de uma intensa repetição de comandos. Vamos compreender o que é uma função e um procedimento o decorrer do exercício.
Muitos utilizam o termo "uma" macro, eu particularmente discordo e uso o termo "um" macro, pois trata-se de "um" comando "grande" ou grupo de comandos executados em processo batch (lote).
Vamos lá então! Dê o comando:
FILE > SAVE > BHASKARA
Vamos agora acionar o editor de macros. Dê o comando:
TOOLS > MACROS > ORGANIZE MACROS > OPENOFFICE.ORG BASIC...
Veja o comando na figura baixo:
Digite: ModuloBhaskara
Observe que você já está na janela de edição de procedimentos e funções, isto é, um ambiente de programação em linguagem Basic. Note também que o nome da função que criamos, expressa com muita clareza o que estamos fazendo. Um erro comum em programadores sem experiência é sair nomeando procedimentos e funções, variáveis e arquivos sem um certo rigor. Isto, mais tarde, causa sérias dores de cabeça. Bom, voltando ao nosso assunto!
Existe uma procedure (procedimento), a principal do programa, chamada Sub Main, não vamos entrar no detalhe desta Sub neste artigo. A nossa Function (função) ficará digitada abaixo dela, assim como qualquer outra função que desejarmos criar para nossa coleção. Observe a tela abaixo: Vamos começar!
Primeiro entender o que desejamos fazer: CALCULAR RAÍZES DA EQUAÇÃO DO 2° GRAU POR BHASKARA.
O que vamos precisar?
Da fórmula:
De uma equação para testar:
Saber quem são os coeficientes e o termo independente: a, b e c respectivamente 1, 2 e -15, da equação acima. No seu editor Basic, já aberto, digite o código abaixo:
Se estiver difícil de ver, segue abaixo o código (aproveita, copia e cola! rsrs):
Temos à nossa disposição um editor de macros que vem junto com o pacote OpenOffice.org Calc e que funciona com uma linguagem de programação muito simples, o Basic, mas que produz grandes resultados quando utilizada com direcionamento adequado. Vou mostrar como se cria uma função a partir de um macro comando, em um nível bem inicial.
Construir um macro comando pode ser uma tarefa fácil se você possuir uma boa lógica na hora de programar e saber bem aonde quer chegar. Estes macros comandos são muito funcionais nas tarefas corriqueiras que necessitam de uma intensa repetição de comandos. Vamos compreender o que é uma função e um procedimento o decorrer do exercício.
Muitos utilizam o termo "uma" macro, eu particularmente discordo e uso o termo "um" macro, pois trata-se de "um" comando "grande" ou grupo de comandos executados em processo batch (lote).
Preparando o ambiente de desenvolvimento
Primeiramente vamos iniciar o OpenOffice.org Calc e gravar o nosso arquivo com o nome de BHASKARA, o que pode ser feito em uma planilha vazia ou em uma planilha que você esteja desenvolvendo, até chegar o momento da necessidade de construir uma função que você não encontrou no pacote fornecido.Vamos lá então! Dê o comando:
FILE > SAVE > BHASKARA
Vamos agora acionar o editor de macros. Dê o comando:
TOOLS > MACROS > ORGANIZE MACROS > OPENOFFICE.ORG BASIC...
Veja o comando na figura baixo:
Iniciando a criação do módulo
Você deverá estar vendo uma janela parecida com a que está mostrada abaixo. Nesta janela, clique sobre o nome que você salvou o seu arquivo (observe à esquerda), então clique na opção "Standard". Agora clique no botão NEW, como mostra a figura abaixo: Ao surgir a caixa de diálogo, digite o nome do módulo, no nosso caso use um nome sugestivo.Digite: ModuloBhaskara
Observe que você já está na janela de edição de procedimentos e funções, isto é, um ambiente de programação em linguagem Basic. Note também que o nome da função que criamos, expressa com muita clareza o que estamos fazendo. Um erro comum em programadores sem experiência é sair nomeando procedimentos e funções, variáveis e arquivos sem um certo rigor. Isto, mais tarde, causa sérias dores de cabeça. Bom, voltando ao nosso assunto!
Existe uma procedure (procedimento), a principal do programa, chamada Sub Main, não vamos entrar no detalhe desta Sub neste artigo. A nossa Function (função) ficará digitada abaixo dela, assim como qualquer outra função que desejarmos criar para nossa coleção. Observe a tela abaixo: Vamos começar!
Primeiro entender o que desejamos fazer: CALCULAR RAÍZES DA EQUAÇÃO DO 2° GRAU POR BHASKARA.
O que vamos precisar?
Da fórmula:


Function Bhaskara() As String
Dim doubleA, doubleB, doubleC, doubleDelta, doubleX1, doubleX2 As Double
doubleA = Val(InputBox("Digite o coeficiente A:"))
doubleB = Val(InputBox("Digite o coeficiente B:"))
doubleC = Val(InputBox("Digite o termo C:"))
doubleDelta=Val((doubleB*doubleB)-(4*doubleA*doubleC))
if doubleDelta < 0 then
print "A equação não tem solução real !"
exit function
endif
doubleX1=(-doubleB+sqr(doubleDelta))/2*doubleA
doubleX2=(-doubleB-sqr(doubleDelta))/2*doubleA
msgbox doubleX1
msgbox doubleX2
End function
Dim doubleA, doubleB, doubleC, doubleDelta, doubleX1, doubleX2 As Double
doubleA = Val(InputBox("Digite o coeficiente A:"))
doubleB = Val(InputBox("Digite o coeficiente B:"))
doubleC = Val(InputBox("Digite o termo C:"))
doubleDelta=Val((doubleB*doubleB)-(4*doubleA*doubleC))
if doubleDelta < 0 then
print "A equação não tem solução real !"
exit function
endif
doubleX1=(-doubleB+sqr(doubleDelta))/2*doubleA
doubleX2=(-doubleB-sqr(doubleDelta))/2*doubleA
msgbox doubleX1
msgbox doubleX2
End function
Precisamos quebrar o mito de que apenas o excel presta...
Eu utilizo muito Calc. Para tudo, e olha que não são coisas nada simples...
Quanto mais tutoriais tivermos com coisas avançadas, melhor!
Abraço,
Hideo