PDA

View Full Version : [c++]Pow


Dark_Maro
19-01-2009, 16:37
Salve,

ho un problema con l'elevazione a potenza:
float m=pow(float (tas, 2));
float n=pow(float (v, 2));
float l=-2*v*tas*cos(float (w-th));
float gs=sqrt(float (n+m+l));
cout <<"Gs=" <<gs <<endl;
fflush(stdin); getchar();

ma quando vado a compilare mi da una serie di errori nelle potenze del tipo:
127 functional cast expression list treated as compound expression
127 no matching function for call to `pow(float)'
note candidates are: double pow(double, double)
note long double std::pow(long double, int)
note float std::pow(float, int)
note double std::pow(double, int)
note long double std::pow(long double, long double)
note float std::pow(float, float)

ho provato a cambiare mettendo double e long double ma mi da sempre errore,quindi mi rivolgo a voi in cerca di aiuto!!
vi allego un immagine sperando che possa aiutarvi nella comprensione del mio problema!!
http://img407.imageshack.us/img407/9630/fotojs8.jpg

grazie per qualsiasi aiuto potete darmi!!

Maephisto
19-01-2009, 16:54
sono a digiuno di C++ da secoli...

ma pow come ti dice il messaggio di errore accetta due parametri di tipo double, uno per la base e l'altro per la potenza... un'istruzione di tipo float(v, 2) che tu hai usato che cosa ritorna? UN SOLO parametro, vero? e quindi il compilatore si inkazza per quello...

dovresti scrivere una roba tipo


float m=pow(2.0, 3.0); //2^3 che fa 8.0

Dark_Maro
19-01-2009, 19:52
sono a digiuno di C++ da secoli...

ma pow come ti dice il messaggio di errore accetta due parametri di tipo double, uno per la base e l'altro per la potenza... un'istruzione di tipo float(v, 2) che tu hai usato che cosa ritorna? UN SOLO parametro, vero? e quindi il compilatore si inkazza per quello...

dovresti scrivere una roba tipo


float m=pow(2.0, 3.0); //2^3 che fa 8.0


ciao, grazie per l'interessamento ma vedi "v" è una valore assegnato in precedenza e non è un valore costante!!scegli te che valore dargli!!

ho provato anche a moltiplicarlo per 1.0 pensando che forse fosse un problema del float ma mi da gli stessi errori!!

Maephisto
19-01-2009, 20:43
aahhaha non ci siamo capiti :D

tu scrivi

pow(float(v, 2));

ma in questo modo non fai altro che invocare questa mitica funzione float (ma esiste?) con due parametri (guarda le parentesi)...

forse volevi scrivere qualcosa come

pow(float(v), 2)

Dark_Maro
19-01-2009, 20:51
aahhaha non ci siamo capiti :D

tu scrivi

pow(float(v, 2));

ma in questo modo non fai altro che invocare questa mitica funzione float (ma esiste?) con due parametri (guarda le parentesi)...

forse volevi scrivere qualcosa come

pow(float(v), 2)

Grazie mille!!

c'è l'ho fatta erano ore che provavo a smanettare ho perfino usato le espressioni basilari come 2*2 per fare 2^2 mi era venuta un espressione lunghissima!!

ma grazie a te ho risolto tutto!!
le odio ancora di più ste parentesi!!