[résolu]approximation... (débutant)

approximation... (débutant) [résolu] - C++ - Programmation

Marsh Posté le 13-10-2003 à 22:24:31    

voilà, j'ai un exo à faire en programmation sur l'approoximation du nombre pi... je vous passe l'énoncé, c'est plus simple
 
http://www.ulb.ac.be/di/ssd/madewu [...] et2_03.pdf
 
j'ai fait 36000 versions du prog, pas moyen d'arriver à un 3.14**
 
au lieu de ça, j'ai systématiquement un 3.26**
 
j'ai essayé en remplaçant mon for par un while, en essayant de ne pas calculer le nombre n en premier lieu, rien à faire, j'y arrive pas... ce qui est chiant c'est que quand je relis mon code, ça me parait logique :D ....
 
le voilà, ce code
 

Code :
  1. //Projet n°2
  2. #include <iostream>
  3. using namespace std;
  4. int main()
  5. {
  6.     int n;
  7.     //n= le n° de rangée de la fraction
  8.     double div;
  9.     //div= le résultat de chaque fraction
  10.     cin >> n;
  11.     //on demande n
  12.     div = ((2*n-3)*(2*n-3))/(2+(2*n+1));
  13.     //on effectue la 1ère division de rangée n
  14.     n--;
  15.     //on passe à la division de la rangée précédente
  16.     for (;2<=n;n--)
  17.         {
  18.         div=((2*n-3)*(2*n-3))/(2+(div+1));
  19.         }
  20.     cout << (1/(1+div))*4;
  21.     //on termine par la division de rangée 1 et on multiplie par 4
  22.     cin >> div;
  23. }


 
alors là, j'ai énormément besoin d'aide, si vous voyez ce qui cloche, dites le!!!!


Message édité par Psykolio le 13-10-2003 à 23:30:22

---------------
-----------------------------------
Reply

Marsh Posté le 13-10-2003 à 22:24:31   

Reply

Marsh Posté le 13-10-2003 à 22:32:15    

t'es sur de ton opération entière pour la première valeur de div ?
 

Code :
  1. #include <iostream> 
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.   unsigned n;
  8.   cin >> n;
  9.   double div = ((2.*n-3.)*(2.*n-3.))/(2.+(2.*n+1.));
  10.   for(--n; 2<=n; --n)
  11.     {
  12.       div=((2.*n-3.)*(2.*n-3.))/(2.+(div+1.));
  13.     }
  14.   cout << (1./(1.+div))*4. << endl;
  15. }


 
problème d'algo donc

Reply

Marsh Posté le 13-10-2003 à 23:28:34    

euh le prob c'était que je rajoutais +1 dans la boucle à chaque coup... alors que je devais plus le faire hihi... merci pour l'aide, je vais tester ton code... mais de ttes façons, le prob est résolu youpiiiiiiiiiiiii


---------------
-----------------------------------
Reply

Sujets relatifs:

Leave a Replay

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