Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Calcolatrix
Forum - C/C++ - Calcolatrix

Avatar
alex2thebest (Normal User)
Rookie


Messaggi: 23
Iscritto: 17/05/2008

Segnala al moderatore
Postato alle 16:04
Domenica, 08/06/2008
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:

Codice sorgente - presumibilmente Plain Text

  1. log<base>(<numero>);
  2.  
  3. esempio:
  4.  
  5. log10(1000);



ma come faccio a far stabilire la base con un input da cin, cioè per esempio se faccio:

Codice sorgente - presumibilmente C++

  1. #include <iostream.h>
  2. #include <math.h>
  3.  
  4. main()
  5. {
  6.     float num, base, result;
  7.     cout << "inserisci base" << endl;
  8.     cin >> base;
  9.     cout << "Inserisci numero" << endl;
  10.     cin >> num;
  11.     result = log base(num);
  12.     cout << "Il risultato è: " << result << endl;
  13.     _sleep(2000);
  14. return 0;
  15. }



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 il 08/06/2008 alle 16:05
PM Quote
Avatar
Amarath (Normal User)
Pro


Messaggi: 85
Iscritto: 08/05/2008

Segnala al moderatore
Postato alle 18:45
Domenica, 08/06/2008
sbaglio o la base deve essere int e tu invece la dichiari float? :D:k:

PM Quote
Avatar
alex2thebest (Normal User)
Rookie


Messaggi: 23
Iscritto: 17/05/2008

Segnala al moderatore
Postato alle 23:20
Domenica, 08/06/2008
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!

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 7:53
Lunedì, 09/06/2008
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.

PM Quote
Avatar
alex2thebest (Normal User)
Rookie


Messaggi: 23
Iscritto: 17/05/2008

Segnala al moderatore
Postato alle 9:10
Lunedì, 09/06/2008
Ah grazie... quindi non c'è un istruzione precisa... devo costruirmi una funzione!

Vabbe ci proverò :k:

Ultima modifica effettuata da alex2thebest il 09/06/2008 alle 9:11
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 9:13
Lunedì, 09/06/2008
Testo quotato

Postato originariamente da alex2thebest:

Vabbe ci proverò :k:



Niente di particolare ... quella riga e' quello che devi scrivere ...

PM Quote