![]() |
Bienvenue invité ( Connexion | Inscription )
![]() |
![]()
Message
#1
|
|
![]() Groupe : Inscrit Messages : 76 Inscrit : 30-Sep-07 Lieu : Meudon, (Paris) Membre n° 1205 ![]() |
Bonjour,
je débute vraiment en programmation C++ donc je crée des petits programmes pour m'entraîner. Or j'essaye de calculer Pi a l'aide la méthode Monte Carlo (pour maîtriser les rand () ) et mon programme ne marche pas ... mais sans erreurs apparentes de compilation... CODE ##include <iostream> #include <stdlib.h> #include <time.h> #include <math.h> #include <iomanip> using namespace std ; int main () { cout << "Simulation de Pi\n" ; cout << "Entrez un nombre etier de simulations a effectuer.\n" ; int N ; cin >> N ; double X ; double Y ; double R ; int M ; int S ; srand ( time (0) ) ; while ( S < N ) { X = 2 * rand () - 1 ; Y = 2 * rand () - 1 ; R = sqrt ( X*X + Y*Y ) ; if ( R <= 1 ) { M++ ; S++ ; } else { S++ ; } } cout << "Approximation de Pi: \n" << 4 * ( M/N ) << setprecision (5) ; return 0; } EDIT 1 : Dans le debugger ça donne ca : CODE [Session started at 2007-11-20 18:25:20 +0100.] Simulation de Pi Entrez un nombre etier de simulations a effectuer. 10 Approximation de Pi: -6.4226e+08 The Debugger has exited with status 0. Qu'est ce qui ne va pas? Et que me conseillez vous pour apprendre a maîtriser le C++? ( Livres , sites ET idées de projets etc... ) Ce message a été modifié par Darknight670 - 20 Nov 2007, 18:44. |
|
|
![]() |
![]()
Message
#2
|
|
![]() L'évangéliste Groupe : Admin Technique Messages : 12204 Inscrit : 9-Nov-05 Lieu : Brest Membre n° 354 Section(s) : FPS • FdV ![]() |
Je ne connais pas l'algorithme que tu utilises donc je sais pas si tu l'as correctement programmé, mais je vois un problème car tu n'initialise pas ta variable S à 0 au début.
|
|
|
![]()
Message
#3
|
|
![]() Groupe : Inscrit Messages : 76 Inscrit : 30-Sep-07 Lieu : Meudon, (Paris) Membre n° 1205 ![]() |
Je ne connais pas l'algorithme que tu utilises donc je sais pas si tu l'as correctement programmé, mais je vois un problème car tu n'initialise pas ta variable S à 0 au début. Je l'initialise en même temps que les autre au début de main () ce n'est pas bon? CODE double X ;
double Y ; double R ; int M ; int S ; Ce message a été modifié par Darknight670 - 20 Nov 2007, 18:47. |
|
|
![]() ![]() |
![]() |
Version bas débit | Nous sommes le : 6 Jul 2025 - 15:11 |