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++ - funzione pow math.h dev c++
Forum - C/C++ - funzione pow math.h dev c++

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Scusate l'ignoranza, ma potete spiegarmi dove sta scritta nella funzione math.h la parte di codice che descrive il calcolo della potenza di un numero...
Perché l'ho cercata e non la trovo, o forse la trovo senza capirla

PM
Avatar
edo42 (Member)
Pro


Messaggi: 102
Iscritto: 30/07/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 16:29
Sabato, 04/09/2010
Si in effetti non l'avevo provato e l'avevo solo buttato giù sul momento :asd:
Comunque questo è un codice più complesso e che dovrebbe funzionare meglio (non l'ho scritto io):
Codice sorgente - presumibilmente C#

  1. long double Pow(const long double x, const int power)
  2. {
  3.         // x ^ 0 is 1
  4.         if (power == 0)
  5.                 return 1;
  6.  
  7.         // x ^ 1 is x
  8.         if (power == 1)
  9.                 return x;
  10.  
  11.         int c, i, k;
  12.         long double res;
  13.         long double px;
  14.  
  15.         // We observe that x ^ power could be written as a product of
  16.         // factors, in which we may find: x ^ 1, x ^ 2, x ^ 4, x ^ 8 ...
  17.         // A factor appears in the product if in the binary representation
  18.         // of "power", the corresponding digit is 1. The result is multiplied
  19.         // with "power", only if the digit is 1. E.g: x ^ 13 = x ^ 8 + x ^ 4 + x ^ 1,
  20.         // because 13 in binary is 1101.
  21.         // To convert the power to binary, we must divide it with 2 at every iteration.
  22.         for (i = 1, px = x, res = 1, k = power; k; k /= 2)
  23.         {
  24.                 c = k % 2; // Obtain the digit
  25.                 // Check if the digit is 1. Only if it is 1 then we
  26.                 // multiply res with px
  27.                 if (c)
  28.                         res *= px;
  29.                 px *= px;
  30.         }
  31.  
  32.         return res;
  33. }


PM
Avatar
The Newbie (Member)
Pro


Messaggi: 175
Iscritto: 14/07/2010

Up
2
Down
V
Segnala al moderatore
Postato alle 8:15
Venerdì, 03/09/2010
1 --> :nono:math.h non è una funzione, bensì una libreria:nono:

2 --> Questo e' il codice corretto per utilizzare la funzione pow(x,y)
la x e' la base e la y l'esponente

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <math.h>
  3. // Nota che tra queste dichiarazioni trovi math.h
  4.  
  5. using namespace std;
  6.  
  7. int main ()
  8. {
  9.  
  10. int a;
  11.  
  12. a = pow(2, 3); // 2 e' la base e 3 e' l'esponente
  13. cout << a;
  14.  
  15. system("Pause"); // Presupponendo che usi windows
  16.  
  17. return 0;
  18. }



3 --> :alert:Cio che tu chiami "parte di codice" in questo caso è la vera funzione!:alert:

Ultima modifica effettuata da The Newbie il 03/09/2010 alle 8:23
PM
Avatar
D@vide (Member)
Expert


Messaggi: 450
Iscritto: 30/06/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 2:29
Venerdì, 03/09/2010
Testo quotato

Postato originariamente da anthony015:

Scusate l'ignoranza, ma potete spiegarmi dove sta scritta nella funzione math.h la parte di codice che descrive il calcolo della potenza di un numero...
Perché l'ho cercata e non la trovo, o forse la trovo senza capirla



math.h contiene solo la definizione della funzione, la differenza è abissale.

PM
Avatar
The Newbie (Member)
Pro


Messaggi: 175
Iscritto: 14/07/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 13:23
Venerdì, 03/09/2010
Testo quotato

Postato originariamente da D@vide:
E' contenuta nella "libreria standard" del C.



corretto

PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Up
0
Down
V
Segnala al moderatore
Postato alle 12:25
Venerdì, 03/09/2010
@ The Newbie
Magari mi sono spiegato male, ma lo so che math.h è una libreria, volevo sapere il codice della funzione pow.

@D@vide
Se math.h contiene solo la definizione della funzione, dove è il codice di quest'ultima che le permette di elevare un numero a potenza?

PM
Avatar
The Newbie (Member)
Pro


Messaggi: 175
Iscritto: 14/07/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 12:39
Venerdì, 03/09/2010
:_doubt:l'invocazione della funzione pow l'ho scritta già nella riga 12 del codice che ho postato (con tanto di commento) e d'altra parte anche alla fine della nota 2:_doubt:

Codice sorgente - presumibilmente C/C++

  1. n = pow(x,y)
  2. // x e' la base
  3. // y è l'esponente



tutto chiaro?

Ultima modifica effettuata da The Newbie il 03/09/2010 alle 12:43
PM
Avatar
D@vide (Member)
Expert


Messaggi: 450
Iscritto: 30/06/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 12:45
Venerdì, 03/09/2010
Testo quotato

Postato originariamente da anthony015:
@D@vide
Se math.h contiene solo la definizione della funzione, dove è il codice di quest'ultima che le permette di elevare un numero a potenza?


E' contenuta nella "libreria standard" del C.
Edit: stai usando C++, non sò per quale motivo tu non stia utilizzando cmath.

Ultima modifica effettuata da D@vide il 03/09/2010 alle 12:48
PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Up
0
Down
V
Segnala al moderatore
Postato alle 2:26
Sabato, 04/09/2010
non usavo cmath perchè nella mia ignoranza non ne conoscevo l'esistenza.

chiedo nuovamente scusa se sto per scrivere una ca***ta, ma si può leggere nella libreria standard del C?

PM
Usa i commenti per chiedere spiegazioni o ringraziare le risposte.
Pagine: [ 1 2 ] Precedente | Prossimo