Ciao a tutti, sono nuovo sul forum, ho iniziato da settembre a programmare in C, di java non so praticamente nulla e mi sono registrato per chiedervi delle delucidazioni su uno script di una pagina web.
A scuola con scienze stiamo seguendo un progetto chiamato GREEN (Global River Environment Educational Network) e a marzo faremo un'uscita al fiume per determinare il WQI (Water Quality Index), che si basa su diversi parametri. Questi parametri hanno unità di misura diverse e per essere computate nel calcolo del WQI devono essere normalizzate con l'uso di alcuni grafici appositi. Il mio gruppo sarà quello incaricato del computo e volevo scrivere un programma non troppo complesso (in C) per normalizzare e fare i calcoli, solo che online non ho trovato le funzioni matematiche legate ai grafici di normalizzazione, ma solo un sito che, inserendo il valore iniziale, calcola quello normalizzato. Proprio da qui proviene lo (anzi gli) script, da cui spero sia possibile ricavare l'algoritmo o la funzione per questa conversione.
La pagina web è http://www.water-research.net/watrqu...alityindex.htm
Gli script li ho ottenuti visualizzando la sorgente della pagina con il browser, da qui ho visto che le funzioni sono per esempio (questa per i coli fecali):
codice:
function calcfcwqi()
{
var intext=document.fcform.fc;
var outtext=document.fcform.fcwqi;
var xarray=new Array( 0.0, 2.0, 3.0, 4.0,5.0);
var yarray=new Array(99.0,44.0,22.0,10.0,4.0);
var inval,outval;
var cnt=5;
if (intext.value=="")
{
inval=intext.value;
outval="Blank";
}
else
{
inval=parseFloat(intext.value);
if (inval<1)
{
outval="Out of range";
}
else
{
if (inval>100000)
{
outval="2";
}
else
{
outval=Math.round(dattowqi(Math.log(inval)/Math.LN10,cnt,xarray,yarray));
}
}
}
intext.value=inval;
outtext.value=outval;
}
Se non sbaglio il calcolo del valore normalizzato (se è compreso nei limiti analizzati in precedenza) viene effettuato nella riga "outval=Math.round(dattowqi(Math.log(inval)/Math.LN10,cnt,xarray,yarray));" solo che non conoscendo java a questi livelli non so che cosa faccia questa riga.
La funzione dattowqi è specificata prima, esattamente qui:
codice:
function dattowqi(dat,len,xarray,yarray)
{
var i,found=false;
for (i=0;i<len && !found;i++)
{
if (xarray[i]<=dat && dat<=xarray[i+1] && !found)
{
found=true;
}
}
if (found)
{
i--;
return(xtoy(dat,xarray[i],xarray[i+1],yarray[i],yarray[i+1]));
}
return(100);
}
Qualcuno potrebbe gentilmente spiegarmi che calcoli fa questo programma? O il modo/conoscenze per capirlo da solo 
Grazie a tutti per l'aiuto