Resolver expressões matemáticas  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
marciob7@yahoo.com.br
Debugger

Membro desde: 06/12/2006 11:42:27
Mensagens: 52
Offline

Olá,

Existe alguma maneira de resolver expressões matemáticas ou eu tenho que resolver isso no braço mesmo.

O usuário do sistema vai poder criar formulas matemáticas nada muito complexas mas com "(" e tal... e sei que isso dá muito trabalho pra resolver a mão.

Existe alguma coisa pronta que resolva o meu problema?

Valeu
Abraço
Marcio
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 3201
Localização: Rio de Janeiro
Offline

Bom, vc poderia tentar fazer uso de alguma linguagem script que roda sob a JVM como Beanshell.

se o cara digitar

((1 + 3)/ (2 * 3) * (4 - 1)) + 1

vc le como uma string, concatena com algum comando na frente e manda pro Beanshell.

" a = " + "expressao"

Ai é so mandar imprimir o valor de a.

Veja a sessão "Calling BeanShell From Java"
http://www.beanshell.org/manual/embeddedmode.html#Embedding_BeanShell_in_Your_Application

É claro que vc pode fazer também um analisador/parser matemático dos bão usando muita expressão regular, tokens, recursão, algo como um analisador recursivo descendente simples. Em Java Puro. Seria um grande aprendizado.

http://pacman.blog.br

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
[WWW]
guilherme.chapiewski
JavaEvangelist
[Avatar]

Membro desde: 09/01/2007 16:56:48
Mensagens: 310
Localização: Rio de Janeiro
Offline

JFormula 3.6 - Math expressions API is a library for evaluating various mathematical expressions. User can evaluate instantly a string setting variables, adding its own functions or operators.

Guilherme Chapiewski
http://gc.blog.br - Blog sobre desenvolvimento de software e tecnologia
[Email] [WWW] [Yahoo!] [MSN]
maquiavelbona
JWizard
[Avatar]

Membro desde: 29/06/2006 09:06:51
Mensagens: 2450
Localização: São Paulo - SP
Offline

Se o que queres é fazer cálculo simples e linguagem de script te ajuda, tem o Sleep

Até!.

----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)

"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781)
marciob7@yahoo.com.br
Debugger

Membro desde: 06/12/2006 11:42:27
Mensagens: 52
Offline

Olá,

Eu procurava algo do tipo que o Guilherme citou. Parece que o produto é muito bom. Vc usa ele Guilherme? Recomenda?

Sabe me dizer se tem diferença de funcionalidade entre uma licença e outra:
- JFormula - 1 Site License with Binary
- JFormula - Personnal License

Quero dizer... será que eu posso adquirir o JFormula - Personnal License para usar em um projeto onde vão trabalhar 2 ou 3 desenvolvedores, mas só 1 deles vai usar o produto?

Valeu
Abraço
Marcio
maquiavelbona
JWizard
[Avatar]

Membro desde: 29/06/2006 09:06:51
Mensagens: 2450
Localização: São Paulo - SP
Offline

http://www.japisoft.com/license.html wrote:As a registered license holder you can distribute copies of JAPISoft products together with your applications at no further cost, i.e. JAPISoft products are royalty free


Leia o resto da licença em:

http://www.japisoft.com/license.html

Editado: Em geral, licenças Personal é para uso realmente pessoal e não para uso comercial.

Até!

----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)

"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781)
marciob7@yahoo.com.br
Debugger

Membro desde: 06/12/2006 11:42:27
Mensagens: 52
Offline

Olá,

Pois é Maquiavelbona... vamos ter que abrir a mão e gastar uns Euros...

Valeu pessoal
Abraço
Marcio
guilherme.chapiewski
JavaEvangelist
[Avatar]

Membro desde: 09/01/2007 16:56:48
Mensagens: 310
Localização: Rio de Janeiro
Offline

Cara, eu nunca usei não. É que eu achei a pergunta interessante e que eu poderia precisar disso algum dia, então resolví procurar e acabei achando o JFormula.

Pelo que eu ví ele me pareceu bem razoável, agora só usando para ter certeza.

Depois não esqueça de contar o que você achou!!!!!

[ ]s, Guilherme

Guilherme Chapiewski
http://gc.blog.br - Blog sobre desenvolvimento de software e tecnologia
[Email] [WWW] [Yahoo!] [MSN]
marciob7@yahoo.com.br
Debugger

Membro desde: 06/12/2006 11:42:27
Mensagens: 52
Offline

valeu Guilherme...

eu não vou usar logo... mas qdo usar informo sim como é o jformula.

Abraço Galera
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

E porque não usar o interpretador do Groovy pra fazer isso?

http://groovy.codehaus.org/Bean+Scripting+Framework

Não vai precisar gastar nem um centavo e faz ainda mais do que simplesmente avaliar expressões matemáticas

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4306
Localização: Vargem Grande do Sul - SP
Offline

Pessoal, alôôôô!

Válido no java 1.6




Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP. What Have You Tried? | The SSCCE

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm | Stack Overflow
[WWW]
lkmazaki
HelloWorld

Membro desde: 05/05/2010 08:56:06
Mensagens: 14
Offline

uau! Obrigada por esse script, salvou minha pele o.o

Não se limite ao seu próprio conhecimento jamais
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team