Logaritmo di un numero.

di il
29 risposte

29 Risposte - Pagina 2

  • Re: Logaritmo di un numero.

    Perfetto! Ora si che funziona alla grandissima.
    Ora però vorrei fare in modo che quando il programma ha terminato di risolvere le equazioni dica all'utente se vuole ripetere o uscire. Come si fa?
  • Re: Logaritmo di un numero.

    The man in the plans ha scritto:


    Perfetto! Ora si che funziona alla grandissima.
    Ora però vorrei fare in modo che quando il programma ha terminato di risolvere le equazioni dica all'utente se vuole ripetere o uscire. Come si fa?
    Questo il nuovo codice:
    #include <iostream.h>
    #include <math.h>
    #include <stdio.h>

    int main ()
    {
    int test=0; //variabile che ti serve per fare il test di uscita dal ciclo while
    double T, RH, P, Td, Dp, es, e, g, a, d, Tw;

    while(test==0)
    {
    cout << "Dammi la temperatura dell'aria(°C): ";
    cin >> T;
    cout << "Dammi l'umidita'(%): ";
    cin >> RH;
    cout << "Dammi la pressione(hpa): ";
    cin >> P;
    Td=T-31.25*(2-log10(RH));
    cout << "Il dew point e'(°C): "<< Td<< endl;
    cout << "La temperatura di bulbo umido e'(°C): "<< (T+Td)/2<< endl;
    cout <<endl;
    es=0.611*exp(17.27*T/(T+237.3));
    e=(RH/100)*es;
    g= 0.00066*(P/10);
    a= 4098*(e)/(Td+237.3);
    d= (a*a);
    Dp= (116.9+237.3)*(ln(e))/(16.78-ln(e));
    Tw= ((g*T)+(d*Td))/(g+d);
    cout << "Pressione di vapore saturo: "<< es<<endl;
    cout << "Pressione di vapore: "<< e <<endl;
    cout << "Temperatura di bulbo umido: "<< Tw<< endl;
    cout << "Temperatura di rugiada: "<< Dp<< endl;
    cout << " se vuoi uscire premi 1, altrimenti per continuare premi 0"<<endl;
    cin>>test;
    } // fine while

    } //fine main

    non sono sicuro della sintassi che ho scritto perke io programmo in C, cmq l idea e quella di avere una variabile "test" che se a 0 ti fa continuare il ciclo while, se e 1 ti fa uscire.....
  • Re: Logaritmo di un numero.

    Nessun errore di sintassi, grande!
    Il programmino è finito...nel caso avessi ancora bisogno scriverò qua.
    Grazie ragazzi.
  • Re: Logaritmo di un numero.

    Siamo qua
  • Re: Logaritmo di un numero.

    Ragazzi, ora però vorrei integrare queste nuove formule:
    Wet bulb by dry bulb and humidity:

    1) compute e as [es(T)*rH/100]
    where es(T) = 0.611*EXP(17.27*T/(T+237.3)) in kPa
    T is drybulb temp in C

    e = (rH/100)* 0.611*EXP(17.27*T/(T+237.3))
    where e is ambient vapor pressure in kPa

    2) compute dewpoint temperature (Td)
    Td = [116.9+237.3ln(e)]/[16.78-ln(e)] in C

    3) compute wet bulb temperature (Tw)
    Tw = [(GAMMA*T)+(DELTA*Td)]/(GAMMA+DELTA)
    GAMMA = 0.00066*P where P is barometric pressure in kPa
    DELTA = 4098*e/(Td+237.3)^2

    unico problema è che ho provato a scriverle io così come sono, ma mi da Td e Tw quasi uguali quando invece dovrebbero venire ben diversi.
    Sapete aiutarmi?
  • Re: Logaritmo di un numero.

    Uhm posta il tuo codice e vediamo
  • Re: Logaritmo di un numero.

    Es=0.611*exp(17.27*T/(T+237.3));
    e=(RH/100)*es;
    g= 0.00066*(P/10);
    a= 4098*(e)/(Dp+237.3);
    d= (a*a);
    Dp= (116.9+237.3*log(e))/(16.78-log(e));
    Tw= ((g*T)+(d*Dp))/(g+d);
    non viene...
  • Re: Logaritmo di un numero.

    Hai dichiarato tutte le variabili di tipo float?
  • Re: Logaritmo di un numero.

    UltraBeginner ha scritto:


    Hai dichiarato tutte le variabili di tipo float?
    No, sono double.
  • Re: Logaritmo di un numero.

    Puoi postare allora tutto il codice? dalle dichiarazioni di variabile al modo in cui stampi a video i dati...
  • Re: Logaritmo di un numero.

    Ecco qua:

    #include <iostream.h>
    #include <math.h>
    #include <stdio.h>

    int main ()
    {
    int test=0;
    double T, RH, P, Dp, es, e, g, a, d, Tw;

    while(test==0)
    {
    cout << \" MeteoPrev v1.0\"<< endl;
    cout << endl;
    cout << \"Dammi la temperatura dell'aria(°C): \";
    cin >> T;
    cout << \"Dammi l'umidita'(%): \";
    cin >> RH;
    cout << \"Dammi la pressione(hpa): \";
    cin >> P;
    cout << endl;
    cout << \"Risultati\";
    cout << endl;
    cout << endl;
    es=0.611*exp(17.27*T/(T+237.3));
    e=(RH/100)*es;
    g= 0.00066*(P/10);
    a= 4098*(e)/(Dp+237.3);
    d= (a*a);
    Dp= (116.9+237.3*log(e))/(16.78-log(e));
    Tw= ((g*T)+(d*Dp))/(g+d);
    cout << \"Vapore saturo(kPa): \"<< es<<endl;
    cout << \"Vapore(kPa): \"<< e <<endl;
    cout << endl;
    cout << \"Dew point(°C): \"<< Dp<< endl;
    cout << \"Wet-bulb(°C): \"<< (T+Dp)/2<< endl;
    cout << endl;
    cout << \"Se vuoi uscire premi 1, altrimenti per continuare premi 0\"<<endl;
    cin>>test;
    }
    cin.get();
    }
  • Re: Logaritmo di un numero.

    Guarda ora esco da lavoro, domani lo guardo meglio e lo faccio girare sul mio pc....ti faccio cmq sapere qualcosa in mattinata....A domani!
  • Re: Logaritmo di un numero.

    The man in the plans ha scritto:


    Ecco qua:

    #include <iostream.h>
    #include <math.h>
    #include <stdio.h>

    int main ()
    {
    int test=0;
    double T, RH, P, Dp, es, e, g, a, d, Tw;

    while(test==0)
    {
    cout << " MeteoPrev v1.0"<< endl;
    cout << endl;
    cout << "Dammi la temperatura dell'aria(°C): ";
    cin >> T;
    cout << "Dammi l'umidita'(%): ";
    cin >> RH;
    cout << "Dammi la pressione(hpa): ";
    cin >> P;
    cout << endl;
    cout << "Risultati";
    cout << endl;
    cout << endl;
    es=0.611*exp(17.27*T/(T+237.3));
    e=(RH/100)*es;
    g= 0.00066*(P/10);
    a= 4098*(e)/(Dp+237.3);
    d= (a*a);
    Dp= (116.9+237.3*log(e))/(16.78-log(e));
    Tw= ((g*T)+(d*Dp))/(g+d);
    cout << "Vapore saturo(kPa): "<< es<<endl;
    cout << "Vapore(kPa): "<< e <<endl;
    cout << endl;
    cout << "Dew point(°C): "<< Dp<< endl;
    cout << "Wet-bulb(°C): "<< (T+Dp)/2<< endl;
    cout << endl;
    cout << "Se vuoi uscire premi 1, altrimenti per continuare premi 0"<<endl;
    cin>>test;
    }
    cin.get();
    }
    guarda ho provato il codice e funziona...forse che ci sia qualche formula errata o parentesi messa male?
  • Re: Logaritmo di un numero.

    Mi pare che tu abbia mal interpretato la formula del delta... così l'hai postata:
    DELTA = 4098*e/(Td+237.3)^2
    E così l'hai implementata:
    a= 4098*(e)/(Dp+237.3);
    d= (a*a);
    Se la formula originale è scritta così, il quadrato va calcolato solo sul denominatore e non su tutta l'espressione.

    Ciaociao
  • Re: Logaritmo di un numero.

    bottomap ha scritto:


    Mi pare che tu abbia mal interpretato la formula del delta... così l'hai postata:
    DELTA = 4098*e/(Td+237.3)^2
    E così l'hai implementata:
    a= 4098*(e)/(Dp+237.3);
    d= (a*a);
    Se la formula originale è scritta così, il quadrato va calcolato solo sul denominatore e non su tutta l'espressione.

    Ciaociao
    Urca è vero! Provo a modificarla...
    EDIT: ho modificato la formula in questo modo [d= 4098*(e)/((Dp+237.3)*(Dp+237.3));], ma, se confronto i risultati su questo sito: http://www.srh.noaa.gov/elp/wxcalc/rh.shtm noto che c'è un piccolo errore che però più l'umidità è bassa e più diventa grande l'errore.
Devi accedere o registrarti per scrivere nel forum
29 risposte