![]() |
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
|
|
![]() Groupe : Membre Messages : 360 Inscrit : 22-Jun-04 Lieu : A coté de Lille le WE, à coté de Paris la semaine... Membre n° 101 Section(s) : JdS ![]() |
réponse éclair car je ne suis pas du tout sûr de moi (je n'utilise jamais argv, je mets toujours un cout et un cin pour entrer les paramètres
![]() Et est-ce que ça ne marche pas en castant la valeur (quitte à faire une gestion d'exception si soucis dans la conversion) ? int Truc = (int) argv[0]; -------------------- |
|
|
![]()
Message
#3
|
|
![]() Dr Mouse Groupe : Membre Messages : 2986 Inscrit : 19-May-06 Lieu : Béziers Membre n° 572 ![]() |
réponse éclair car je ne suis pas du tout sûr de moi (je n'utilise jamais argv, je mets toujours un cout et un cin pour entrer les paramètres ![]() Et est-ce que ça ne marche pas en castant la valeur (quitte à faire une gestion d'exception si soucis dans la conversion) ? int Truc = (int) argv[0]; non, les casts sont des changements de representation entre nombre et aussi sur des adresses memoire (void* char* ...). Ici cela ne marchera pas... Si tu as des doutes sur les arguments, le mieux pour comprendre est de faire afficher tous les arguments, argc te donne le nombre de ces arguments. CODE int i; for (i =0;i<argc;i++) printf("%d %s\n",i,argv[i]); @+ Ce message a été modifié par appleseed - 22 Nov 2007, 19:38. -------------------- Bb
|
|
|
![]() ![]() |
![]() |
Version bas débit | Nous sommes le : 6 Jul 2025 - 16:09 |