Programmation emacs ss windows

Programmation emacs ss windows - C++ - Programmation

Marsh Posté le 19-06-2009 à 19:05:42    

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 :
  1. #include<cstdlib>
  2. #include <ctime>
  3. #include<iostream>
  4. #include<math.h>
  5. #include<fstream>
  6. using namespace std;
  7. void funk(double*& K, double*z){
  8. K[0]=0.;
  9. for(int i=1;i<=10;i++){
  10. K[i]=z[i]*1/50000000;
  11. // cout<<K[i]<<endl;
  12. }
  13. for(int i=11;i<21;i++){
  14. K[i]=K[20-i];
  15. // cout<<K[i]<<endl;
  16. }
  17. }
  18. void coefftransmit (double*&T,double*z,double*K,int n){
  19. for(int i=0;i<n;i++){
  20. T[i]=exp(-K[i]*z[i]);
  21. // cout<<T[i]<<endl;
  22. }
  23. }
  24. void f(const double* T,double zmax,int& i,int& k,int& c){
  25. int s=1;
  26. i=1;
  27. k=0;
  28. c=0;
  29. while ((i>0) and (i<zmax)) {
  30. double x = (float) rand()/RAND_MAX;
  31. if(x>T[i]){
  32. s=-1*s;
  33. i=i+s;
  34. if(s<0){k=i;
  35. }
  36. }
  37. else{
  38. i=i+s;
  39. c=c+1;
  40. }
  41. // cout<<" i= "<<i<<endl;
  42. }
  43. }
  44. void Intensite(double*&I,int k,int i,int c,int& r){
  45. //cout<<"i = "<<i<<" k="<<k<<endl;
  46. if(i==0){
  47. // cout<<"k = "<<k<<endl;
  48. I[k]=I[k]+1;
  49. }
  50. }
  51. int main()
  52. {
  53. float x;
  54. srand((unsigned)time(NULL));
  55. int n=20;
  56. int zmax = n;
  57. int N =100000;
  58. double*T=new double[n];
  59. double*I=new double[n];
  60. double*z=new double[n+1];
  61. z[0]=0;
  62. for (int u=1;u<=n;u++){
  63. z[u]=z[u-1]+500;
  64. }
  65. double*K=new double[n+1];
  66. funk(K,z);
  67. double*C=new double[N];
  68. int k;
  69. int i;
  70. int c;
  71. int r;
  72. coefftransmit (T,z,K,n);
  73. for(int j=0;j<N;j++){
  74. // cout<<"j1 "<<j<<endl;
  75. f(T,zmax,i,k,c);
  76. // cout<<"j2 "<<j<<endl;
  77. Intensite(I,k,i,r,c);
  78. // cout<<"j3 "<<j<<endl;
  79. C[j]=c/2;
  80. }
  81. ofstream fichier ("montecarlo2.xls" );
  82. for(int l=0;l<=n;l++){
  83. fichier<<z[l]<<"\t \t" <<I[l]/N<<endl;
  84. }
  85. ofstream fichier2 ("transmission.dat" );
  86. for(int l=0;l<=N;l++){
  87. fichier2<<C[l]<<endl;
  88. }
  89. }


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

Reply

Marsh Posté le 19-06-2009 à 19:05:42   

Reply

Marsh Posté le 19-06-2009 à 21:13:15    

emacs n'a aucun rapport avec l'execution de ton code.
Le fait que tu fasse n'imp avec tes tableaux au lieu d 'utilisez std::vector par contre ....

Reply

Marsh Posté le 21-06-2009 à 20:56:24    

de quel tableau tu parle

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed