Page 1 sur 2

Pi

Publié : sam. 17/avr./2004 11:26
par Le Soldat Inconnu
salut, j'ai fais une librairie toute bête pour avoir la fonction Pi()

elle est sur mon site.

et le code est le suivant :

Code : Tout sélectionner

ProcedureDLL.f Pi() ; Retourne la valeur de Pi
  ProcedureReturn 3.14159265
EndProcedure
comme vous le voyez, il est extrémement compliqué :wink:

Publié : sam. 17/avr./2004 11:52
par cederavic
lol, faire un dll juste pour ça! et bé! :lol:

Publié : sam. 17/avr./2004 11:59
par Le Soldat Inconnu
pas une dll, une librairie avec Tailbite. c'est drolement pratique, un petit code idiot et en 30 secondes, une librairie :D

Publié : sam. 17/avr./2004 12:05
par cederavic
ben #PI = 3.14159265 tout simplement, et c'est moin long :P

Publié : sam. 17/avr./2004 13:43
par Le Soldat Inconnu
oui, tiens, on fait comment pour faire un resident pour pouvoir rendre une constantes de ce type comme constantes PB ?

Publié : sam. 17/avr./2004 13:51
par Chris
Avec TailBite, en cliquant sur "MakeResident", je pense!

Chris :)

Publié : sam. 17/avr./2004 13:52
par Guimauve
Facile.

Code : Tout sélectionner

#Pi = 3.141593
Tu sauvegarde le source et tu démarre TailBite tu charge le bout de code et tu clique sur Make Resident.

Pour savoir si ça marché

Dans un nouveau source

Code : Tout sélectionner

Debug #Pi
Et le déboggeur deverait afficher 3.141593

A+
Guimauve

Publié : sam. 17/avr./2004 14:12
par Le Soldat Inconnu
super, merci :D je met le resident sur mon site pour les fainéants comme moi qui ne veulent pas retaper #Pi.f = 3.1415 à chaque debut de programme. :mrgreen:

Publié : jeu. 09/sept./2004 19:12
par kelly
Mouai....... Essaye plutot ca tout simplement :

Code : Tout sélectionner

PI.f = ATan(1)*4

Publié : jeu. 09/sept./2004 19:48
par Chris
Oui, mais c'est plus rapide de charger une variable avec une valeur connue qu'avec le résultat d'un calcul! :roll:

Publié : jeu. 09/sept./2004 23:41
par kelly
tu trouve plus rapide d'appeler chaque fois une fonction PI plutot qu'une valeur qui a certe ete calculé mais qui ne le sera qu'une seule fois ?

Publié : ven. 10/sept./2004 3:40
par Guimauve
kelly a écrit :tu trouve plus rapide d'appeler chaque fois une fonction PI plutot qu'une valeur qui a certe ete calculé mais qui ne le sera qu'une seule fois ?
Qu'est-ce que tu veux dire ?

Pi est-une constante mathématique.

Dans un code on initialise un constante nommé #Pi = 3.141593.

Aucun calcul n'est effectuté ici, du point de vue éxécution, c'est plus rapide de faire avec une constante.

1 calcul
Avec une constante :
#Pi = 3.141593
Volume.f = (4/3) * #Pi * Pow(r,3)


ou plus simple encore, sans constante :
Volume.f = (4/3) * 3.141593 * Pow(r,3)

2 calculs
Avec le calcul d'une variable :
PI.f = ATan(1) * 4
Volume.f = (4/3) * Pi * Pow(r,3)


Même si le calcul : PI.f = ATan(1) * 4 n'est fait qu'une seule fois, c'est un calcul inutile.

Avec ou sans constante, dans le exe ce sera exactement la même chose.

Une chose que tu semble confondre, #PI n'est pas une fonction. C'est une variable qui ne change jamais "Constante".

A+
Guimauve

Publié : ven. 10/sept./2004 10:56
par cookie
Même si le calcul : PI.f = ATan(1) * 4 n'est fait qu'une seule fois, c'est un calcul inutile.

Avec ou sans constante, dans le exe ce sera exactement la même chose
Pas tout à fait exact d'un point de vue purement mathématique:

en effet:
PI.f = ATan(1) * 4
donne un résultat approché beaucoup plus précis (en nombre de chiffres derrière la virgule) que
#Pi = 3.141593
après, tout dépend de la précision de calcul dont on a besoin :)

Publié : ven. 10/sept./2004 11:31
par Chris
Fais un debug sur PI.f = ATan(1) * 4, et le résultat sera... 3.141593

Pure arrondit systématiquement à 6 décimales.
Ou est le gain en précision ??? :wink:

Code : Tout sélectionner

PI.f = ATan(1) * 4 : Debug PI

Debug 3.141593
Debug 3.14149345
Debug 3.141493456 ; <-- Dépassement :  message Numeric overflow

Publié : ven. 10/sept./2004 12:01
par kelly
Chris a écrit :Pure arrondit systématiquement à 6 décimales.
Ou est le gain en précision ??? :wink:
La réponse du gain est dans ta phrase....... >>>>6 décimals <<<< :wink: