Jenosky (Normal User)
Newbie
Messaggi: 11
Iscritto: 28/09/2012
|
Salve ragazzi, sto usando nel mio programma la libreria math.h
Ora ho bisogno per una operazione della restituzione del valore assoluto, cosa sbaglio?
Codice sorgente - presumibilmente C# |
double robot::s (float t, float tf, double si, double sf){ double s; double dds=4*abs(sf-si)/pow(tf,2); //sistemare valore assoluto METTERE VALORE ASSOLUTO double tc=tf*0.5-0.5*sqrt((pow(tf,2)*dds-4*(sf-si))/dds); if (t>=0 && t<=tc){ return s=si+dds*0.5*pow(t,2); } if (t>tc && t<=tf-tc){ return s=si+dds*tc*(t-tc*0.5); } if (t>tf-tc && t<=tf){ return s=sf-0.5*dds*pow(tf-t,2); } }
|
|
|
anthony015 (Member)
Pro
Messaggi: 116
Iscritto: 20/05/2011
|
prova a metterti nei panni di un qualsiasi utente e cerca di capire cosa hai scritto
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6404
Iscritto: 03/01/2010
|
In effetti non si capisce molto ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Jenosky (Normal User)
Newbie
Messaggi: 11
Iscritto: 28/09/2012
|
Vi chiedo scusa, avete ragione
Provo a spiegarmi meglio.
In pratica devo fare questa operazione matematica:
Codice sorgente - presumibilmente C/C++ |
double dds=4*abs(sf-si)/pow(tf,2);
|
dove la quantità (di tipo double) sf-si deve essere in valore assoluto.
Mi da un errore dicendomi che non ci sono abbastanza elementi per definire la funzione abs.
Spero di essere stato più chiaro
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6404
Iscritto: 03/01/2010
|
Puoi postare il messaggio d'errore completo e indicarci con quale compilatore lavori ?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Jenosky (Normal User)
Newbie
Messaggi: 11
Iscritto: 28/09/2012
|
Uso Dev C++ (ultima versione)
E i messaggi sono:
296 C:\Documents and Settings\Administrator\Documenti\Università\Laurea\Robot\robot.cpp call of overloaded `abs(double)' is ambiguous
note C:\Programmi\Dev-Cpp\include\stdlib.h:365 candidates are: int abs(int)
note C:\Programmi\Dev-Cpp\include\stdlib.h:365 long long int __gnu_cxx::abs(long long int)
note C:\Programmi\Dev-Cpp\include\stdlib.h:365 long int std::abs(long int)
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6404
Iscritto: 03/01/2010
|
Includi cmath con
#include <cmath>
e utilizza la funzione fabs e non abs
double dds=4*fabs(sf-si)/pow(tf,2);
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Jenosky (Normal User)
Newbie
Messaggi: 11
Iscritto: 28/09/2012
|
Ti ringrazio ha funzionato bene, però mi si è generato un nuovo errore nelle righe in cui uso la potenza:
Codice sorgente - presumibilmente Delphi |
for (int i=0;i<n;i++){ for (int p=0;p<n-1;p++){ mq=0; for (int q=0;q<n-1;q++){ if (q==i) mq=1; sup.mat[p][q]=A.mat[p+1][q+mq]; } } det=det+(A.mat[0][i]*pow(-1,i)*determinante(sup)); }
|
Qui in particolare
det=det+(A.mat[0] *pow(-1,i)*determinante(sup));
Il messaggio di errore che mi da è il seguente:
131 C:\Documents and Settings\Administrator\Documenti\Università\Laurea\Braccio\matrix.cpp call of overloaded `pow(int, int&)' is ambiguous
note C:\Programmi\Dev-Cpp\include\math.h:150 candidates are: double pow(double, double)
note C:\Programmi\Dev-Cpp\include\math.h:150 long double std::pow(long double, int)
note C:\Programmi\Dev-Cpp\include\math.h:150 float std::pow(float, int)
note C:\Programmi\Dev-Cpp\include\math.h:150 double std::pow(double, int)
note C:\Programmi\Dev-Cpp\include\math.h:150 long double std::pow(long double, long double)
note C:\Programmi\Dev-Cpp\include\math.h:150 float std::pow(float, float)
E lo stesso errore mi da ovunque usassi prima la funzione potenza (che andava bene)
Come posso sistemare?
Edit: risolto
Ultima modifica effettuata da Jenosky il 10/11/2012 alle 13:02 |
|
Poggi Marco (Member)
Guru
Messaggi: 969
Iscritto: 05/01/2010
|
Errore strano...
Io ho fatto alcune prove, e non ho avuto problemi. Prova a fare un cast:
Codice sorgente - presumibilmente Plain Text |
det=det+(A.mat[0][i]*pow((double)-1,(double)i)*determinante(sup));
|
:
|
|