Petit programme delphi pour calculer le nombre pi avec une approximation epsilon

Soyez le premier à donner votre avis sur cette source.

Vue 16 990 fois - Téléchargée 932 fois

Description

Le programme calcule la somme S=1-1/3+1/5-1/7+1/9-.... qui tend vers Pi/4, et puis on multiplie S par 4 pour obtenir Pi.
le code contient le controle d'une zone de texte avec l evenement onKeyPress, il contient aussi le changement du separateur decimal '.' au lieu de ','.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
C'etait pour vous evitez de réinventer la roue !
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
30
trés drole Elguevel, mais cela n'est pas interressant pour la technique de calcul de pi.
Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
uses System;

function Pi: Extended;

@+
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
30
>>> Machin

Pi := 4*ArcTan(1/5) - ArcTan(1/239);
Pi := Pi*4;

>>> Machin par Takano

Pi := 12*ArcTan(1/49) + 32*ArcTan(1/57) - 5*ArcTan(1/239) + 12*ArcTan(2/110443);
Pi := Pi*4;

>>> Machin par Stormer

Pi := 44*ArcTan(1/57) + 7*ArcTan(1/239) - 12*ArcTan(1/682) + 24*ArcTan(1/12943);
Pi := Pi*4;

>>> BBP originale

For k := 0 to INF do
Pi := Pi + (1/power(16,k))*( (4/(8*k+1))-(2/(8*k+4))-(1/(8*k+5))-(1/(8*k+6)))

>>> Ramajunan

For k := 0 to INF do
Pi := Pi + ((4*Fact(k))*(1103+26390*k))/(power(Fact(k),4)*power(396,4*k));
Pi := Pi * ((2*sqrt(2))/9801);

>>> Chudnovsky

For k := 0 to INF do
Pi := Pi + ( (Power(-1,k)*Fact(6*k)*(13591409+545140134*k)) )
/ ( Fact(3*k)*power(Fact(k),3)*power(640320,(3*k+3)/2));
Pi := Pi * 12;

>>> Bellard

For i := 0 to INF do begin
i10:= 10*i;
i4 := 4*i;
Pi := Pi + ( power(-1,i)/power(2,10*i) *
(-(32/i4+1)-(1/i4+3)-(256/i10+1)-(64/i10+3)-(4/i10+5)-(4/i10+7)+(1/i10+9)));
end;
Pi := Pi * (1/64);

>>> Archimede

Pi := 223/71;
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
30
Salut!

holalala, quelle vielle et lourde methode de calcul de Pi ... mais tout de meme toujours interressant!

Essaye plutot la methode BBP (S.Plouffe) ou BBP de F.Bellard, elle renvois Pi avec une precision de 16 decimale pour 6 passes et le calcul est beaucoup moins lourd et plus rapide.

ou alors tu peu integrer plusieurs formules ce qui serait mathematiquement plus interressant.

ensuite, coté code tu peu eviter toute la gestion d'epsilon en remplacant la saisie de celui-ci par un combobox avec des Eps predefinis (0.1, 0.01, 0.001, 0.0001, 0.00001 ect...)
ce serat plus simple.

par contre, change le Type Real de S,S0 et EPS, par le type Extended qui est plus precis.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.