Bienvenue invité ( Connexion | Inscription )

> [Aide] Programme C++ [Aide]
Darknight670
posté 20 Nov 2007, 18:24
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.
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
macgic
posté 22 Nov 2007, 19:30
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 tongue.gif ) mais il me semble que c'est argv[0] (premier élement du tableau).

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];


--------------------
Go to the top of the page
 
+Quote Post
Acid
posté 22 Nov 2007, 19:35
Message #3


Dr Mouse


Groupe : Membre
Messages : 2986
Inscrit : 19-May-06
Lieu : Béziers
Membre n° 572



CITATION(macgic @ 22 Nov 2007, 19:30) *
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 tongue.gif ) mais il me semble que c'est argv[0] (premier élement du tableau).

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
Go to the top of the page
 
+Quote Post

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 6 Jul 2025 - 16:09