nardelmouk
Messages postés30Date d'inscriptionlundi 8 août 2005StatutMembreDernière intervention16 avril 2008
-
5 févr. 2007 à 23:11
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
8 févr. 2007 à 14:13
salut tout le monde ! je vais peut-etre passer pour un boulet mais je ne sais pas comment afficher pi sous sa forme approché et pas 3.14. comme sur une calculette.
merci d'avance
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 6 févr. 2007 à 03:14
Dim a&, b&, c&, d&, e&, f&(), g&
Dim l%, x$, pi$
Dim compteur As Long
Dim hdepart As Long
Dim temps As Long
ReDim f(8401) a 10000: c 8400
hdepart = timer
While (b <> c) f(b) a \ 5: b b + 1
Wend
While (c > 0) g 2 * c: d 0: b = c
While (b > 0) d d + f(b) * a: g g - 1: f(b) = d Mod g d d \ g: g g - 1: b = b - 1
If (b <> 0) Then d = d * b
Wend c c - 14: x$ Str$(e + d \ a): l = Len(x$)
pi = pi & Left$("0000", 5 - l) & Right$(x$, l - 1)
e = d Mod a
compteur = compteur + 1
Wend
compteur = 4 * compteur
temps = timer - hdepart
MsgBox compteur & " chiffres de PI en " & temps & " secondes de calcul"
MsgBox pi
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 6 févr. 2007 à 16:16
Ouais...
faire une constante juste pour :
4 * Atn(1)
alors même que ce ne sera JAMAIS un nombre fini et arrêté ...
(ce n'est pas comme pour une couleur...) !
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 8 févr. 2007 à 13:57
jmfmarques> On est de toute façon limité par le type de variable : single double ou meme currency n'ont pas la precision necessaire pour avoir une infinité de chiffre apres la virgule. Autant faire simple, une petit constante et basta (surtout si c'est utilisé pour faire des conneries comme tourné un rectangle 2d ou faire de la 3d pas la peine de rentré dans le quantique :p )
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 8 févr. 2007 à 14:11
Sur, 15669 EBArtSoft, sur ....
Une chose ne l'est pas moins :
4 * Atn(1) suivra toujours les nouvelles précisions résultant d'évolutions éventuelles et ne sera jamais limité par autre chose que la "capacité précisionnelle" d'un système d'exploitation.
Certains calculs arithmétiques nécessitent de très hautes précisions (que Windows ne peut pour l'instant parfaitement suivre... mais quid de demain ?)
Utiliser la formule plutôt que sa valeur approximative (avec sa plus grande précision possible actuelle) met sans aucun doute à l'abri de la nécessité de redéfinir plus tard la nouvelle valeur plus précise !
Dit d'une autre façon : la chèreté du stockage sur un disque en a conduit beaucoup, à une autre époque, à se contenter de 2 chiffres pour exprimer les millésimes ... ====>>> Bug 2 K plus tard, non ?
Simplement : ne jamais reculer pour mieux sauter