3dfxzone.it AMDZone.it ATIZone.it HWSetup.it NVIDIAZone.it UnixZone.it 3dfxzone.it Community
Forumzone Community
Torna indietro   Forumzone Community > » Ambiti applicativi | Produttività > Programmazione
Registrazione Ricerca Messaggi recenti Contrassegna i forum come già letti Utenti FAQ Regolamento

In primo piano

Programmazione Programmazione per esperti e per principianti!
Rispondi
 
Strumenti discussione Modalità visualizzazione
Vecchio 29-08-2008, 04.24.21   #1
linda.bellucci
Forumzoniano Novizio
 
Data registrazione: 29-08-2008
Residenza: Rimini
Messaggi: 1
Predefinito Java problemi di Parsing e calcoli

Salve a tutti voi del forum,
sono dietro a redigere un progettino in java, per un esame universitario, premetto che non sono una programmatrice, e sto diventando matta per scrivere quattro righe di codice..

Lo scopo del progetto è quello di leggere da un data base valori di alcuni campi, inserirle in degli array e farci dei calcoli..

I campi di questi datbase contengono sia dati,(numeri reali) che stringhe che non sono altro le operazioni che devono essere eseguite usando i dati recuperati dal primo database.



Tra le miriadi di problematiche ho anche quello di ottenere il risultato di alcuni calcoli scritti in formato stringa contenuti in un array di stringhe, come questo;

// ======= calcoli =============
String [] calcoli;

calcoli = new [n];

calcoli[0] = "id1+id2-id3";
calcoli[1] = "(id1+id2)*id3";
calcoli[2] = "((id1+id2)/id4)+id3";
calcoli[3] = "(((id1+id2)/id4)+id3)*3,14";
calcoli[4] = "(id4/365)+(12,3*id2)";

oltre a non capire come fare una sorta di parsing(credo che si scriva così) che tenga conto di parentesi tonde annidate (e non), e di numeri con e senza virgola (ho le variabili "reali") che sono contenute in un array come questo:

// ======= array valori ===========
double []valori;
valori = new double[4];

valori[0] = 0;
valori[1] = 10,89;
valori[2] = 110,894444;
valori[3] = 0,89;
valori[4] = 3;

nel caso dei calcoli
per esempio
double id0 = 0; -->valori[0]
double id1 = 10,89; -->valori[1]
double id2 = 110,894444; -->valori[2]
double id3 = 0,89; -->valori[3]
double id4 = 3; -->valori[4]

Alla fine dovrei ottenere dalla classe o dal metodo utlizzato i seguenti risultati..

se seleziono l'array "calcoli" con indice 0 dovrò ottenere:
120,8944 --> (id1+id2-id3)

se seleziono l'array "calcoli" con indice 1 dovrò ottenere:
108,3882 --> "(id1+id2)*id3"

se seleziono l'array "calcoli" con indice 2 dovrò ottenere:
41,4848146666667 --> "((id1+id2)/id4)+id3"

se seleziono l'array "calcoli" con indice 3 dovrò ottenere:
130,2623 --> "(((id1+id2)/id4)+id3)*3,14"

se seleziono l'array "calcoli" con indice 4 dovrò ottenere:
1364,01 --> "(id4/365)+(12,3*id2)"

La cosa interessante sarebbe poi trovare un modo di indirizzare il valore della variabile sull'array dei dati, nel senso che se ho per esempio:
calcoli[0] = "id1+id2-id3";

mi vada a prendere il valore delle variabili direttamente dentro l'array dei dati ad esempio valori[1] + valori[2] - valori[3]
avete qualche idea su come procedere?

vi ringrazio anticipatamente Linda ^^

Ps: avete qualche idea su come collegarmi al driver odbc di windows? e poi come posso passare i dati letti in un array? se avete qualche esempio sono molto graditi.
linda.bellucci non è connesso   Rispondi citando
Vecchio 30-08-2008, 11.46.09   #2
benna
Moderatore
 
L'avatar di benna
 
Data registrazione: 10-01-2005
Residenza: Brescia
Messaggi: 1,725
Predefinito

Ciao e benvenuta,
Questo problema non è per nulla banale, cercherò di darti alcuni suggerimenti.
Per prima cosa dovresti trasformare le espressioni in alberi binari, in modo da gestire le parentesi annidate, le priorità degli operatori, ecc.; una volta creato l'albero sarà sufficiente iniziare a eseguire i calcoli dall'ultimo livello fino alla radice.
Per effettuare il parsing puoi usare uno switch che contiene confronti effettuati con il metodo equals(), è molto lungo ma è semplice.
Per non doversi preoccupare delle virgole ti basta castare i numeri reali in numeri float, in modo da evitare anche problemi di troncamento dei decimali.
A questo Link è presente la documentazione ufficiale di java riguardo ad odbc.
Facci sapere se riesci a risolvere.
benna non è connesso   Rispondi citando
Rispondi

Social Network - Segnala e condividi questa discussione

Strumenti discussione
Modalità visualizzazione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Gestire i calcoli PhysX con il tweaker NV PhysX Tweaker 1.0 Glide News 0 04-07-2008 14.39.25
Aiuto java picchietto Discussioni generiche 1 07-03-2008 18.26.18
giochi java e nec emuland Smartphone e cellulari 0 29-08-2005 17.00.39
Java Malink Programmazione 2 11-08-2004 14.51.11
JAVA & Interbase , help me dasvidania Programmazione 1 26-09-2003 09.46.45


Tutti gli orari sono GMT +1. Adesso sono le 07.28.49.


ForumZone.it è la Community dei lettori di 3dfxzone.it, AMDZone.it, ATIZone.it, HWSetup.it, NVIDIAZone.it e UnixZone.it.
ForumZone.it è servita da vBulletin - Copyright ©2000 - 2018 Jelsoft Enterprises Ltd.
E' vietata la riproduzione non autorizzata del contenuto informativo e grafico.
Puoi porre un quesito e segnalare abusi scrivendo alla Redazione.
Norme sulla Privacy degli utenti di ForumZone.it.