Problème de calcul d'une fonction C++

Fermé
yooooo - 6 janv. 2011 à 10:09
Symeon94 Messages postés 138 Date d'inscription vendredi 2 janvier 2009 Statut Membre Dernière intervention 20 juillet 2012 - 6 janv. 2011 à 21:24
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;
}

}
A voir également:

2 réponses

Symeon94 Messages postés 138 Date d'inscription vendredi 2 janvier 2009 Statut Membre Dernière intervention 20 juillet 2012 2
6 janv. 2011 à 13:29
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++)
0
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;
}
}
}
0
Symeon94 Messages postés 138 Date d'inscription vendredi 2 janvier 2009 Statut Membre Dernière intervention 20 juillet 2012 2
6 janv. 2011 à 21:24
dans ton main rajoute le prototype

int temps(double e);


au dessus du code
0