begin process at 2012 05 27 17:48:30
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > PI

PI


 Information sur la source

Note :
5,5 / 10 - par 2 personnes
5,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Niveau :Débutant Date de création :27/03/2003 Date de mise à jour :27/03/2003 01:57:08 Vu / téléchargé :3 139 / 76

Auteur : aerith

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

mon premier programme en c/c++
il calcul pi jusqu'a se qu'on l'arrete

Source

  • // pi.cpp
  • #include "stdio.h"
  • main()
  • {
  • signed int signe = 1;
  • long double somme = 0;
  • int n = 1;
  • do
  • {
  • somme += signe*(1./(long double)n);
  • signe = -signe;
  • n = n + 2;
  • printf("%.20f \t %i \n",4.*somme,n);
  • }
  • while(1);
  • return 0;
  • }
// pi.cpp

#include "stdio.h"

main()
{
	signed int signe = 1;
	long double somme = 0;
	int n = 1;
	do
	{
		somme += signe*(1./(long double)n);
		signe = -signe;
		n = n + 2;
		printf("%.20f \t %i \n",4.*somme,n);
	}
	while(1);
	return 0;
}

 Conclusion

mon record est 7 decimales apres 200 million d'iteration

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture PROPA [SDL]
Source avec Zip Source avec une capture TEXT SDL
Source avec Zip Source avec une capture SERVEUR METEO, IHM EVOLUEE (VC6, CONSOLE WINDOWS, SOCK, THRE...
SUITE LOGIQUE (PORTABLE)
Source avec Zip Source avec une capture FIBO, CALCULE DE LA SUITE DE FIBONACCI AVEC SUPORT DES GRAND...

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

Commentaires et avis

Commentaire de cmarsc le 27/03/2003 09:17:52

salut,
#include <stdio.h> au lieu de  #include "stdio.h"
la boucle do while(1) est infinie (pas de condition de sortie :-( ) kbhit est plus indiquée

#include <stdio.h>
#include <conio.h>       // devc++4 <conio.c>

int main(void)
{
    signed int signe = 1;
    long double somme = 0;
    int i;
    int n = 1;
    do
    {
        somme += signe*(1.0/(long double)n);
        signe = -signe;
        n += 2;
        printf("%20.20f %i
",4.0*somme,n);

        for (i =0; i< 5000;i++) { // ralentir
         printf("%c",'a');
        }
    }
    while(!kbhit());
    return 0;
}

Commentaire de cmarsc le 27/03/2003 09:18:18

salut,
#include <stdio.h> au lieu de  #include "stdio.h"
la boucle do while(1) est infinie (pas de condition de sortie :-( ) kbhit est plus indiquée

#include <stdio.h>
#include <conio.h>       // devc++4 <conio.c>

int main(void)
{
    signed int signe = 1;
    long double somme = 0;
    int i;
    int n = 1;
    do
    {
        somme += signe*(1.0/(long double)n);
        signe = -signe;
        n += 2;
        printf("%20.20f %i
",4.0*somme,n);

        for (i =0; i< 5000;i++) { // ralentir
         printf("%c",'a');
        }
    }
    while(!kbhit());
    return 0;
}

Commentaire de aerith le 27/03/2003 13:00:44

-les " " son tout a fais autoriser
-la boucle infini c'est volontaire ca evite de fermer le programme par erreur
-conio est inutile ici
-et pourquoi ralentir le programme il est deja trop lent ?

Commentaire de zanidip le 27/03/2003 16:00:06

il y a d'autres moyens plus simple :
un systeme qui encadre pi en calculant les perimetre des polygone reguliés inscri dans le cercle a n cotés.
plus n est grand et plus le resultat sera preci!

c'est vrais qu'il est un peut lent ton prog!

Commentaire de Viper31 le 27/03/2003 17:27:16

Ya encore plus simple , mais ca n engage que moi :
[Code]
...
#include <math.h>
...
...
float le_vrai_pi;
le_vrai_pi = 4.0*atan(1.0);
printf("%f",le_vrai_pi);
...
...
[/Code]
:) enfin c'est vrai que trouve un algo qui le calcul c toujours interessant ^^ ! mais bon :]

Commentaire de cmarsc le 28/03/2003 07:12:56

salut,
on utilise " .h" par exemple "fichier_perso.h" pour les fichiers que l'on a écrit nous même et <.h> pour les fichiers disponibles avec le compilateurs c'est notamment le cas des bibliothèques standard.

avec une boucle infinie il n'y a pas de condition d'arrêt et on ne peut donc pas mettre fin à l'exécution du programme proprement (ESCAPE).
et pour la vitesse chez moi c'est trop rapide c'est pour cela que j'ai ajouté une boucle for(...) question de machine sans doute ;-)

Commentaire de aerith le 28/03/2003 12:40:59

cmarsc :
-oki pour le .h
-je pense que si je mes une condition d'arret par une touche ca devrai ralentir le programme, c'est si important que ca de cloturer le prog ?
-et heu question vitesse ce prog utilise 15% max de mes ressource et c'est illisible en effet

zanidip :
je me suis renseigner et a essayer la methode d'archimed par les poligone regulier mais pas reussi a sortir un resultat bon si j'y arrive je posterai ca ici

-j'ai trouver le record, un certain gars a tokio avec 51 milliards de decimales
-je vais tenter de metre un timer pour savoir le nombre d'iteration en combien de temp qu'on a fais

Commentaire de knutzz le 02/04/2003 10:51:06

Histoire de bourrer un peu plus pour les amateurs de décimales.
On déroule la boucle, plus il y a de CALC et plus % CPU utilisé par la boucle et le print diminue.


#define CALC somme += (1./(long double)n);  
                    n = n + 2;                     
                    somme -= (1./(long double)n);  
                    n = n + 2;                    

int main(int argc, char* argv[])
{
    signed int signe = 1;
    long double somme = 0;
    int n = 1;

    do
    {
        CALC
        CALC
        printf("%.20f %i
",4.*somme,n);
    }
    while(1);
    return 0;
}

Commentaire de Super_Mat le 23/09/2004 21:34:53

7 décimales en 200.000.000 d'itération c'est pas fameux quand même :-)

Une des méthodes des plus rapides est celle de Bailey-Borwein-Plouffe (BBP) je pense. A chaque itération on trouve un chiffre exacte supplémentaire.

Je crois que je vais utiliser celle-ci pour ma bibliothèque des nombres formels.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales