Logaritmo di un numero.

di Anonimizzato3345 il
29 risposte
Qualcuno saprebbe aiutarmi?
So che devo inserire la <math.h>, ma poi?

P.S. sono un ragazzo di 16 anni che studia elettronica.

29 Risposte

  • Poi richiami una delle seguenti funzioni:





    La prima restituisce il logaritmo naturale (in base e) di x.
    La seconda il logaritmo in base 10 di x.
    La terza il logaritmo naturale di x + 1.

    Se usi i float puoi aggiungere una f dopo il nome della funzione, esempio , ecc.
  • stan ha scritto:


    Poi richiami una delle seguenti funzioni:





    La prima restituisce il logaritmo naturale (in base e) di x.
    La seconda il logaritmo in base 10 di x.
    La terza il logaritmo naturale di x + 1.

    Se usi i float puoi aggiungere una f dopo il nome della funzione, esempio , ecc.
    Quindi devo aggiungere:
    <math.h> e...double log(double x)
    Ma quindi "x" sarà la variabile da cui devo ricavare il logaritmo giusto?
    Praticamente a me servirebbe fare un calcolo di questa formula:
    Td= T-31.25*(2-logRH)
    Come la scrivo?
  • #include <math.h>
    #include <stdio.h>

    int main ()
    {
    double RH,Td,T; /* dichiarazione variabili RH,Td e T di tipo double */

    Td=T-31.25*(2-log10(RH))

    }
  • Questo è il programma intero e mi da un errore sull'ultimo cout, perchè?

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

    int main ()
    {
    double RH,Td,T; // dichiarazione variabili RH,Td e T di tipo double //
    cout << \"Dammi la temperatura dell'aria: \";
    cin >> T;
    cout << \"Dammi l'umidità \";
    cin >> RH;
    Td=T-31.25*(2-log10(RH))
    cout << Td;
    cin.get();
    cin.get();
    }

    sapete risolverlo?
  • Controlla bene il sorgente, ti manca un ;

    Ciaociao
  • I soliti errorini del c++...dannati \";\"
  • Verissimo ora va che è una meraviglia e finalmente mi da soddisfazioni perchè fare quel conto sempre con la calcolatrice è una rottura.
    Domani comunque voglio farci una modifica con una formula più difficile, ma più precisa.
    Mi aiuterete vero?!
    P.S. come faccio a scrivere la riga per la funzione \"exp\".
    la formula sarebbe: \"0.611*exp(17.27*T/(T+237.3))\", ma scritta così non va. Perchè?
  • Questo il nuovo codice:
    #include <iostream.h>
    #include <math.h>
    #include <stdio.h>

    int main ()
    {
    double T, RH, P, Td, Dp, es, e, g, a, d, Tw;
    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;
    cin.get();
    cin.get();
    }

    solamente che c'è un errore nel calcolo del \"Dp\". Perchè?
  • Ciao,

    rileggiti i prototipi che ti hanno suggerito ed usa la funzione giusta... ln cosa sarebbe? In algebra può avere un senso, per math.h no.

    Ciaociao
  • The man in the plans ha scritto:


    Questo il nuovo codice:
    #include <iostream.h>
    #include <math.h>
    #include <stdio.h>

    int main ()
    {
    double T, RH, P, Td, Dp, es, e, g, a, d, Tw;
    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;
    cin.get();
    cin.get();
    }

    solamente che c'è un errore nel calcolo del "Dp". Perchè?
    we man in the plan, suppongo che con ln(e) tu volessi fare il logratimo naturale, e li l errore in quanto la funzione che fa il logaritmo naturale e

    log(x) e non ln(x)

    ti consiglio di cercare della documentazione in rete sulle funzioni!!! per es prova ad andare a questo link:

    http://www.cplusplus.com/ref/cmath

    troverai tutte le funzioni della libreria math!!! Buono studio!!!!!
  • Non so che funzione sia quella li \"ln\", ma sulla mia calcolatrice scientifica non fa lo stesso del logaritmo.
  • The man in the plans ha scritto:


    Non so che funzione sia quella li "ln", ma sulla mia calcolatrice scientifica non fa lo stesso del logaritmo.
    La ln della tua calcolatrice dovrebbe corrispondere alla funzione log() del C, mentre la log alla log10() del C. Almeno così è sulla mia.
  • stan ha scritto:


    The man in the plans ha scritto:


    Non so che funzione sia quella li "ln", ma sulla mia calcolatrice scientifica non fa lo stesso del logaritmo.
    La ln della tua calcolatrice dovrebbe corrispondere alla funzione log() del C, mentre la log alla log10() del C. Almeno così è sulla mia.
    Ahhh, perfetto.
    Quindi nel C devo mettere log(e)...provo.
  • Direi che è la scelta migliore...

    Ehm, tra i tasti di una calcolatrice e la sintassi di un linguaggio di programmazione c'è qualche \"lievissima\" differenza... non ti spaventare ma non sono proprio la stessa cosa

    Ciaociao
Devi accedere o registrarti per scrivere nel forum
29 risposte