Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Java] script e funzioni matematiche

    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
    Ultima modifica di LeleFT; 05-02-2014 a 17:26 Motivo: Aggiunti i tag CODE

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quello di cui stai parlando è JavaScript, non Java.
    Sono due cose completamente diverse che hanno in comune solo le prime 4 lettere del nome e null'altro.

    C'è una sezione apposita per JavaScript.

    Sposto, dopo aver aggiunto i tag CODE.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Oook, grazie!
    Scusa se ho sbagliato sezione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.