dove trovo un parser (di espressioni algebriche e funzioni trigonometriche:sin,cos,tan ecc ecc) già pronto da poter utilizzare nel mio programma java...una volta trovato suggerimenti sull'utilizzo?!
chi me lo trova?
dove trovo un parser (di espressioni algebriche e funzioni trigonometriche:sin,cos,tan ecc ecc) già pronto da poter utilizzare nel mio programma java...una volta trovato suggerimenti sull'utilizzo?!
chi me lo trova?
Non ne ho mai usate ... ma se segui questa ricerca ne trovi eccome!Originariamente inviato da zipangulu
dove trovo un parser (di espressioni algebriche e funzioni trigonometriche:sin,cos,tan ecc ecc) già pronto da poter utilizzare nel mio programma java...una volta trovato suggerimenti sull'utilizzo?!
chi me lo trova?
Verifica alcuni progetti e valuta tu in base al tipo di progetto (se è valido/attivo, se ha documentazione javadoc completa e magari una guida o tutorial sull'uso).
Per domande più specifiche ... ovviamente dipende dalla libreria scelta.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
grazie!gentilissimo
un'altra cosa:ho trovato molti parser on line ma a me ne servirebbe uno del quale poter vedere il codice sorgente
per farvi capire meglio cerco un parser tipo questo che vi linko:
http://www.cs.bris.ac.uk/Teaching/Re...alc/index.html
questo parser non era male ed ero anche riuscito ad integrarlo nel mio codice,ma il difetto sta nel fatto che è un parser di sole espressioni algebriche(es:3+2/5*9) a me ne serve uno per le espressioni matematiche in genere,con anche sin cos tan ecc(es:sin56+89-tan52)
potete trovarmene uno che rispecchi queste caratteristiche?
per andbin:tutti i parser che ho trovato tramite la tua ricerca saranno anche ottimi ma emmm emmm non so come integrarli nel mio codice :master:
Prendi la JEP, ad esempio. Nel pacchetto c'è la libreria, c'è la documentazione javadoc e ci sono pure piccoli sorgenti di esempio.Originariamente inviato da zipangulu
per andbin:tutti i parser che ho trovato tramite la tua ricerca saranno anche ottimi ma emmm emmm non so come integrarli nel mio codice :master:
P.S. Se hai proprio dubbi circa l'uso, posso anche prenderla io un momento e provare a scrivere un esempio.![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ok...ma un favore:
mi potresti fare un esempio di come tipo utilizzando il parser in questione,all'interno di una mia classe,posso fare un metodo che prendendo una stringa come parametro mi restituisca un valore double
scusami ma sono ancora alle prime armi![]()
allora spiego meglio quali sono le mie intenzioni
ho fatto un programma in java rappresentante una calcolatrice scientifica con la funzione aggiuntiva di poter disegnare grafici delle funzioni matematiche.
Inizialmente stavo cercando di gestire la "traduzione" della stringa-funzione inserita dall'utente(che rappresenza la funzione di cui tracciare il grafico) manualmente,cioè a modo mio senza l'utilizzo di un parser.Ma ho notato che così facendo innanzitutto non riuscivo a coprire tutti possibili inserimenti dell'utente e poi giunto ad un certo punto è anche difficile la gestione del programma,e insomma il tutto va anche a discapito dell'efficienza del programma stesso.
Ho pensato a questo punto,in base ad altrui suggerimenti,di utilizzare un parser matematico già esistente e di cercare di integrarlo nel mio programma.
Pensavo fosse una cosa facile e invece non so da dove partire!Mi spieghi passo passo cosa fare per integrare il parser "JEP",o un altro,nel mio programma?
cioè vorrei riuscire,utilizzando il parser,a fare un metodo nella mia classe del tipo:
cioè un metodo che prendendo una stringa es:2sin90+5codice:public double compute(String espressione){ }
mi dia il relativo risultato numerico in double
come faccio?
sono disperato!![]()
Esempio semplicissimo ma completo:
L'esempio è davvero semplice e comprende l'uso di: costanti numeriche nella espressione, costanti/funzioni predefinite da JEP e anche l'uso di una "variabile" personalizzata.codice:import org.nfunk.jep.*; public class ProvaJEP { public static void main(String[] args) { JEP jep = new JEP(); jep.addStandardConstants(); // Aggiunge costanti "pi" e "e" jep.addStandardFunctions(); // Aggiunge funzioni tra cui es. sin() e cos() jep.addVariable("angoloInGradi", 45); jep.parseExpression("20 * sin(angoloInGradi / 180 * pi)"); if (jep.hasError()) { System.out.println("ERRORE: " + jep.getErrorInfo()); } else { double risultato = jep.getValue(); System.out.println("Risultato: " + risultato); } } }
Il funzionamento e i metodi sono sicuramente facilmente comprensibili.
Per poter compilare e avviare il programma è solo necessario che il jar jep-X.X.X.jar sia "in classpath" (le solite questioni sul classpath ... dipende da come/da dove si compila, vedere Setting the class path).
Nota: quel jar si trova nella directory 'dist' presente nel pacchetto che si può scaricare qui.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
grazie mille per l'esempio,chiarissimo e utilissimo!
ora però trovo difficoltà nell'impostare la classpath,ho letto la documentazione relativa,ma evidentemente continuo a sbagliare qualcosa.
nella mia classpath c'è già salvato un percorso,io ho fatto così dimmi cosa c'è di sbagliato
cosa c'è che non va?codice:percorsoprecedente;C:\Users\pippo\Downloads\jep parser\jep-2.4.1-ext-1.1.1-gpl\dist\ext-1.1.1.jar
grazie mille per l'esempio,chiarissimo e utilissimo!
ora però trovo difficoltà nell'impostare la classpath,ho letto la documentazione relativa,ma evidentemente continuo a sbagliare qualcosa.
nella mia classpath c'è già salvato un percorso,io ho fatto così dimmi cosa c'è di sbagliato
cosa c'è che non va?codice:percorsoprecedente;C:\Users\pippo\Downloads\jep parser\jep-2.4.1-ext-1.1.1-gpl\dist\ext-1.1.1.jar
mi spieghi in più cosa fa questa istruzione?codice:jep.addVariable("angoloInGradi", 45);