Bonjour,
voila j'ai un soucis avec mon programme fait avec emacs + compilation
lors de l'execution du programme il me renvoie des valeurs impossible
je pense à une librairie manquante lorsque j'ai installé emacs sur windows, car lorsque le fait sous linux aucun soucis.
vous allez me dire ben pourquoi le fais tu pas sur linux ? ben parce j'y ai accès occassionnellement à la fac

voici le programme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include<cstdlib>
#include <ctime>
#include<iostream>
#include<math.h>
#include<fstream>
using namespace std;
 
void funk(double*& K, double*z){
K[0]=0.;
for(int i=1;i<=10;i++){
K[i]=z[i]*1/50000000;
// cout<<K[i]<<endl;
}
for(int i=11;i<21;i++){
K[i]=K[20-i];
// cout<<K[i]<<endl;
}
}
 
 
void coefftransmit (double*&T,double*z,double*K,int n){
 
for(int i=0;i<n;i++){
T[i]=exp(-K[i]*z[i]);
// cout<<T[i]<<endl;
}
 
}
void f(const double* T,double zmax,int& i,int& k,int& c){
int s=1;
i=1;
k=0;
c=0;
 
while ((i>0) and (i<zmax)) {
 
double x = (float) rand()/RAND_MAX;
 
 
if(x>T[i]){
s=-1*s;
i=i+s;
 
if(s<0){k=i;
 
}
}
else{
 
i=i+s;
c=c+1;
}
// cout<<" i= "<<i<<endl;
}
}
void Intensite(double*&I,int k,int i,int c,int& r){
//cout<<"i = "<<i<<" k="<<k<<endl;
if(i==0){
// cout<<"k = "<<k<<endl;
 
 
I[k]=I[k]+1;
 
}
}
int main()
{
float x;
srand((unsigned)time(NULL));
int n=20;
int zmax = n;
int N =100000;
double*T=new double[n];
double*I=new double[n];
 
double*z=new double[n+1];
z[0]=0;
for (int u=1;u<=n;u++){
 
z[u]=z[u-1]+500;
}
double*K=new double[n+1];
funk(K,z);
double*C=new double[N];
 
int k;
int i;
int c;
int r;
coefftransmit (T,z,K,n);
 
for(int j=0;j<N;j++){
// cout<<"j1 "<<j<<endl;
f(T,zmax,i,k,c);
// cout<<"j2 "<<j<<endl;
Intensite(I,k,i,r,c);
 
// cout<<"j3 "<<j<<endl;
C[j]=c/2;
}
 
 
ofstream fichier ("montecarlo2.xls");
for(int l=0;l<=n;l++){
 
fichier<<z[l]<<"\t \t" <<I[l]/N<<endl;
}
ofstream fichier2 ("transmission.dat");
for(int l=0;l<=N;l++){
 
fichier2<<C[l]<<endl;
}
 
 
 
}
ce qui pose probleme en sortie est les I[l]/N normalement on ne doit pas depasser 1 or la j'ai des puissance de 10 qui apparaissent

version: emacs -->Emacs-23-CvsP080909-EmacsW32-1.58
compilateur : g++ --->qui vient de mingw
merci à tous ceux qui veuillent bien m'aider

Configuration: Windows
Firefox 3.0.11