Pi

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Pi

Message 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:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

lol, faire un dll juste pour ça! et bé! :lol:
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

ben #PI = 3.14159265 tout simplement, et c'est moin long :P
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

oui, tiens, on fait comment pour faire un resident pour pouvoir rendre une constantes de ce type comme constantes PB ?
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Avec TailBite, en cliquant sur "MakeResident", je pense!

Chris :)
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message 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
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Message par kelly »

Mouai....... Essaye plutot ca tout simplement :

Code : Tout sélectionner

PI.f = ATan(1)*4
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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:
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Message 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 ?
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message 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
cookie
Messages : 71
Inscription : mar. 27/janv./2004 21:08
Contact :

Message 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 :)
Cookie
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Message 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:
Répondre