Partagez votre expérience de PureBasic avec les autres utilisateurs.
Guimauve
Messages : 1015 Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada
Message
par Guimauve » sam. 15/janv./2005 6:15
Bonjour,
Une fonction pour faire un calcul factoriel avec des entiers.
Ex. : 5! = 1*2*3*4*5 = 120
N.B. Le maximum est 34!, avec 35! le deboggeur affiche 1.#INF00.
Vivement les variables de type double !
A+
Guimauve
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Fonction Factoriel
Procedure.f Factoriel(valeur_n.l)
total.f = 1
indice.l = 2
While (indice <= valeur_n)
total = total * indice
indice + 1
Wend
ProcedureReturn total
EndProcedure
novicenpure
Messages : 34 Inscription : jeu. 20/janv./2005 21:30
Message
par novicenpure » mer. 09/mars/2005 19:10
Salut,
Tu peux aussi la définir de manière récursive :
Code : Tout sélectionner
Procedure.l Fact(n.l)
If n=1
ProcedureReturn 1
Else
ProcedureReturn n*Fact(n-1)
EndIf
EndProcedure
Debug Fact(10)
Cordialement
Avec suffisamment de paires d'yeux, tous les bogues feront surface (Linus Torvalds).
Le Soldat Inconnu
Messages : 4312 Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :
Message
par Le Soldat Inconnu » mer. 09/mars/2005 21:42
Code : Tout sélectionner
Procedure.l Factoriel(valeur.l)
Resultat.f = 1
For n = 2 To valeur
Resultat * n
Next
ProcedureReturn Resultat
EndProcedure
For n = 1 To 12
Debug Str(n) + "! = " + Str(Factoriel(n))
Next
plus simple comme ceci
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) ]
Guimauve
Messages : 1015 Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada
Message
par Guimauve » mer. 09/mars/2005 22:55
Oui je sais, j'ai pas eu le temps de poster les deux codes.
Cette procédure est la traduction d'un script Matlab qu'on m'a demandé de faire à l'université.
Le professeur nous a contraint d'utiliser un While . Par la suite de reprendre le script avec un For .
Je l'ai mis ici parce que cette fonction n'est pas parmis les fonctions de maths standard de PB.
Voilà.
A+
Guimauve
PS. Ceux qui ne connaisent pas MatLab, c'est pas grave vous ne manquez pas grand chose.
Le Soldat Inconnu
Messages : 4312 Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :
Message
par Le Soldat Inconnu » mer. 09/mars/2005 22:59
Je l'ai mis ici parce que cette fonction n'est pas parmis les fonctions de maths standard de PB.
oui, c'est dommage d'ailleurs.
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) ]
Frenchy Pilou
Messages : 2194 Inscription : jeu. 27/janv./2005 19:07
Message
par Frenchy Pilou » jeu. 10/mars/2005 0:19
Ici la liste des 999 premiers factoriels détaillés !!!
999 factoriels
Comme cela rien à calculer
Plus qu'à espérer qu'il n'y ait pas d'erreur