Débutant en C++ : pkoi ça marche pas

Débutant en C++ : pkoi ça marche pas - Programmation

Marsh Posté le 28-05-2002 à 19:39:08    

Voilà, d'habitude je fais du MFC mais là j'essaye de passer en Win32
 
Pkoi quand je lance ce code compilé il se passe rien ?
 
// Kurtosis.cpp : Defines the entry point for the application.
//
 
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
 
 
 
#define N 1024
#define Pi 3.1415926535
 
double liste[N];
 
void Kurtosis();
double GetGaussRandom();
void Initialisation();
 
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{  
 //On initialise
 Initialisation();
 
 //On teste
 Kurtosis();
 
 
 return 0;
}
 
void Kurtosis()
{
 double variance=0, moment4=0, moy=0;
 int i =0;
 
 //calcul moyenne
 for(i=0; i < N; i++)
 {
  moy+=liste[i];
 }
 moy/=N;
 
 //calcul moment d'ordre 4
 for(i=0; i < N; i++)
 {
  moment4+=pow((liste[i]-moy),4);
 }
 moment4/=N;
 
 //calcul de la variance
 for(i=0; i < N; i++)
 {
  variance+=pow((liste[i]-moy),2);
 }
 variance/=N;
 
 printf("K=%f",moment4/pow(variance,2));
 return;
}
 
void Initialisation()
{
 for(int i=0;i < N; i++)
 {
  liste[i]=GetGaussRandom();
 }
 return;
}
 
double GetGaussRandom()
{
 int u1=0, u2=0;
 srand( (unsigned)time( NULL ) );
 
 
   while(u1*u2==0)
   {
  u1=rand();  
  u2=rand();
   }
   return sqrt(-2 * log(u1)) * cos(2*Pi*u2);
}

Reply

Marsh Posté le 28-05-2002 à 19:39:08   

Reply

Marsh Posté le 28-05-2002 à 22:02:31    

j'veux pas foutre la merde mais si tu te mets à Win32, tu devrais plutot inclure "windows.h" plutot que "stdafx.h" qui est la bibli spé aux MFC. enfin, je crois...

Reply

Marsh Posté le 28-05-2002 à 22:08:22    

:lol:
c'est exactement ça  :D


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-05-2002 à 11:01:40    

torpe23 a écrit a écrit :

j'veux pas foutre la merde mais si tu te mets à Win32, tu devrais plutot inclure "windows.h" plutot que "stdafx.h" qui est la bibli spé aux MFC. enfin, je crois...  




 
Dis pas n'imp...
 
stdafx.h c'est juste le nom par défaut du precompiled header..
 
LeGreg

Reply

Marsh Posté le 29-05-2002 à 12:03:57    

Bouh printf en C++ c mal...
Bon, j'ai pas teste mais je suis pas sur que printf fonctionne bien dans un appli windows(c de l'affichage en mode console), essaie peut etre une afxmessagebox, sinon c peut etre aussi parce que tu n'as pas d'attente apres l'affichage, le programme sort tout de suite apres et tu n'as pas le temps de le voir ajoute:
char tmp;
cin<<tmp;
apres ton affichage ca te permettra peut etre de voir qque chose(en fait je crois que ton prog marche mais ne te donne pas le temps de voir le resultat)

Reply

Marsh Posté le 29-05-2002 à 12:15:48    

RiffRaff a écrit a écrit :

essaie peut etre une afxmessagebox



 :non:  
afxmessagebox = MFC


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-05-2002 à 12:25:49    

Pourquoi Afx !?
MessageBox tout court, ça ira très bien.
Donc, déja, remplace "stdafx.h" par "windows.h"
et ensuite, vire moi ce (ou ces) printf qui passeront jammais, et remplace les par MessageBox (met NULL pour le paramètre hWnd si t'as pas envie de t'emmerder).

 

[jfdsdjhfuetppo]--Message édité par el_gringo le 29-05-2002 à 12:26:06--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 29-05-2002 à 12:29:17    

ok merci !

Reply

Marsh Posté le 29-05-2002 à 12:40:08    

autre question, je voudrais dans le message de ma msgbox faire  
 
"Coef K=" & K où K est un double.
 
Y'a moyen de faire un cast Double -> String à la volée ?

Reply

Marsh Posté le 29-05-2002 à 13:24:32    

finalement j'ai fait ça en console avec printf...
 
Y'a pas un truc comme printf our le Format des CString des MFC en Win32 basique...

Reply

Marsh Posté le 29-05-2002 à 13:24:32   

Reply

Marsh Posté le 29-05-2002 à 13:37:32    

moi je fais comme ca :
 
int a = 15;
int b = 12;
char buffer[128]; /* tu met la taille comme tu l'sens en fait */
 
sprintf(buffer, "Bonjour, le resultat est %d et %d", a, b);
MessageBox(NULL, buffer, "Debug", MB_OK);
 
 
y a peut etre une autre solution mais bon, ca marche, c'est l'essentiel...

Reply

Marsh Posté le 29-05-2002 à 13:41:15    

bon, j'ai relu le topic, et je crois que je suis hors sujet....
ou bien je le suis pas et ca confirme bien le fait que je capte plus rien tellement je suis crevé.
vivement ce soir que je dorme
 
(c'etait spark qui raconte sa vie...)

Reply

Marsh Posté le 29-05-2002 à 13:54:14    

CString strConvertion;
int a,b;
a = b = 15;
strConvertion.Format("%d, %d", a, b);
AfxMessageBox(strConvertion);
ou
printf("%s",strConvertion);
 
autant se servir de ce qui existe deja (MFC Rulezz)

Reply

Marsh Posté le 29-05-2002 à 14:46:15    

La Vipère -> pour une fois, je voulais faire sans les MFC car j'ai pas le choix....

Reply

Sujets relatifs:

Leave a Replay

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