Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Valore assoluto
Forum - C/C++ - Valore assoluto

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


Messaggi: 11
Iscritto: 28/09/2012

Segnala al moderatore
Postato alle 17:20
Martedì, 06/11/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#

  1. double robot::s (float t, float tf, double si, double sf){
  2.        double s;
  3.        double dds=4*abs(sf-si)/pow(tf,2); //sistemare valore assoluto METTERE VALORE ASSOLUTO
  4.        double tc=tf*0.5-0.5*sqrt((pow(tf,2)*dds-4*(sf-si))/dds);
  5.        if (t>=0 && t<=tc){
  6.                return s=si+dds*0.5*pow(t,2);
  7.                }
  8.        if (t>tc && t<=tf-tc){
  9.                 return s=si+dds*tc*(t-tc*0.5);
  10.                 }
  11.        if (t>tf-tc && t<=tf){
  12.                    return s=sf-0.5*dds*pow(tf-t,2);
  13.                    }
  14. }



PM Quote
Avatar
anthony015 (Member)
Pro


Messaggi: 116
Iscritto: 20/05/2011

Segnala al moderatore
Postato alle 19:13
Martedì, 06/11/2012
prova a metterti nei panni di un qualsiasi utente e cerca di capire cosa hai scritto

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5686
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:33
Martedì, 06/11/2012
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à.
PM Quote
Avatar
Jenosky (Normal User)
Newbie


Messaggi: 11
Iscritto: 28/09/2012

Segnala al moderatore
Postato alle 10:08
Mercoledì, 07/11/2012
Vi chiedo scusa, avete ragione :(
Provo a spiegarmi meglio.

In pratica devo fare questa operazione matematica:
Codice sorgente - presumibilmente C/C++

  1. 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 :)

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5686
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:17
Mercoledì, 07/11/2012
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à.
PM Quote
Avatar
Jenosky (Normal User)
Newbie


Messaggi: 11
Iscritto: 28/09/2012

Segnala al moderatore
Postato alle 11:52
Mercoledì, 07/11/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)

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5686
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 12:13
Mercoledì, 07/11/2012
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à.
PM Quote
Avatar
Jenosky (Normal User)
Newbie


Messaggi: 11
Iscritto: 28/09/2012

Segnala al moderatore
Postato alle 12:14
Sabato, 10/11/2012
Ti ringrazio ha funzionato bene, però mi si è generato un nuovo errore nelle righe in cui uso la potenza:

Codice sorgente - presumibilmente Delphi

  1. for (int i=0;i<n;i++){
  2.                       for (int p=0;p<n-1;p++){
  3.                           mq=0;
  4.                           for (int q=0;q<n-1;q++){
  5.                               if (q==i)
  6.                                  mq=1;
  7.                                  sup.mat[p][q]=A.mat[p+1][q+mq];
  8.                                  }
  9.                               }
  10.                           det=det+(A.mat[0][i]*pow(-1,i)*determinante(sup));
  11.                           }


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
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 967
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 14:02
Sabato, 10/11/2012
Errore strano...
Io ho fatto alcune prove, e non ho avuto problemi. Prova a fare un cast:
Codice sorgente - presumibilmente Plain Text

  1. det=det+(A.mat[0][i]*pow((double)-1,(double)i)*determinante(sup));

:


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo