Problème de calcul d'une fonction C++
yooooo
-
Symeon94 Messages postés 153 Statut Membre -
Symeon94 Messages postés 153 Statut Membre -
Bonjour,
Je suis débutant en C++, actuellement j'essaie de calculer une fonction . Avec une énergie comprise entre 6*10^6 et 20*10^6 avec e=energy.
Le problème c'est que sa ne marche pas. Pouvez-vous m'aider?
voici mon code:
#include <iostream>
#include <fstream>
double c= 299792458;
double det_pos=28.4111;
double mc = 939.56536;
int i;
int nbmax=20000000;
int temps(double e)
{
double temps = 0;
for (i=0;i<nbmax;i++)
{
temps = ((det_pos/c)*sqrt(1./(1.-(1./((e[i]/mc)+1.)*(e[i]/mc)+1.))))*1000000;
return temps;
}
}
Je suis débutant en C++, actuellement j'essaie de calculer une fonction . Avec une énergie comprise entre 6*10^6 et 20*10^6 avec e=energy.
Le problème c'est que sa ne marche pas. Pouvez-vous m'aider?
voici mon code:
#include <iostream>
#include <fstream>
double c= 299792458;
double det_pos=28.4111;
double mc = 939.56536;
int i;
int nbmax=20000000;
int temps(double e)
{
double temps = 0;
for (i=0;i<nbmax;i++)
{
temps = ((det_pos/c)*sqrt(1./(1.-(1./((e[i]/mc)+1.)*(e[i]/mc)+1.))))*1000000;
return temps;
}
}
2 réponses
-
JE comprend pas bien ton code, mais on ne déclare pas de variable hors d'une fonction.
Tu fais
double c= 299792458; double det_pos=28.4111; double mc = 939.56536; int i; int nbmax=20000000;
et ensuite tu fait ta foncion. Alors que ca devrait être integrer dedans.
Aussi en c++ pas besoin de noter int i puis de faire un for. Fait
for(int i = 0 ; i<nbmax;i++)
-
J'essaie de calculer la fonction t, mais mon soucis, c'est que qu'il me sort
Error: Function temps() is not defined in current scope :0:
Est ce qu'il me calcule bien ma fonction pour x prit entre 6E6et 20E6?
#include <iostream>
#include <fstream>
int temps(double e)
{
double temps = 0;
double c= 299792458;
double det_pos=28.4111;
double mc = 939.56536;
if(x>6.E6 && x <20.E6) //intervalle
{
temps = ((det_pos/c)*sqrt(1./(1.-(1./((x/mc)+1.)*(x/mc)+1.))))*1000000;
return temps;
}
}
}
-
-
dans ton main rajoute le prototype
int temps(double e);
au dessus du code