08/06/08 14:04
alex2thebest
Ecco la mia calcolatrice... tutto funziona correttamente ma ciò che volevo chiedervi è:
come faccio a impostare il logaritmo in modo che la base venga scelta tramite input?
la sintassi è questa:
log<base>(<numero>);
esempio:
log10(1000);
ma come faccio a far stabilire la base con un input da cin, cioè per esempio se faccio:
#include <iostream.h>
#include <math.h>
main()
{
float num, base, result;
cout << "inserisci base" << endl;
cin >> base;
cout << "Inserisci numero" << endl;
cin >> num;
result = log base(num);
cout << "Il risultato è: " << result << endl;
_sleep(2000);
return 0;
}
Il compilatore Dev-C++ mi da errore dicendo che dopo log va messo il punto e virgola... e se metto tutto attaccato logbase mi dice che non è dichiarata la variabile logbase perchè la considera tutta insieme...
help me, please!
Ultima modifica effettuata da alex2thebest 08/06/08 14:05
aaa
08/06/08 21:20
alex2thebest
Ho capito, ma log e la base devono essere attaccati, esempio:
log10(1000)
e NON devono essere:
log 10(1000)
se no da errore... ma se metto attaccato con la variabile, esempio:
int base;
base = 10;
logbase(1000);
il compilatore dice che logbase non è compilato...
come trovare un alternativa?
risp please!
aaa
09/06/08 5:53
gantonio
Nella libreria standard del C non esiste una funzione che calcoli il logaritmo in qualsiasi base.
E poi, ti faccio notare, che se anche esistesse, dovresti indicarla come parametro della funzione e non come parte del nome che e' un elemento sintattico e quindi modificabile solamente nel sorgente e non a runtime.
Nella libreria standard esiste la funzione logaritmo in base e
log(x)
e, dalla matematica di base, saprai che il logaritmo in base b e' eguale a
log(x) / log(b)
Quindi ti basta usare questa formula o ti puoi costruire tu una funzione che accetti valore e base e restituisca il logaritmo.
aaa
09/06/08 7:10
alex2thebest
Ah grazie... quindi non c'è un istruzione precisa... devo costruirmi una funzione!
Vabbe ci proverò
Ultima modifica effettuata da alex2thebest 09/06/08 7:11
aaa