Operateur factoriel(!) en visual basic

Signaler
Messages postés
5
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
22 juin 2004
-
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
coucou
je voudrai savoir s'il existe en vb l'operateur factoriel car j'en ai besoin pour calculer une equation et sinon comment faire?
merci beaucoup
anneso

8 réponses

Messages postés
699
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
13 mai 2011
21
Bonjour,

voilà un petit exemple de comment faire :
Dim total As Integer
Dim rep As String
total = 1
rep = InputBox("Veuillez entrer un chiffre")

For i = 1 To CInt(rep)
total = total * i
Next i

MsgBox total


Je ne sais pas s'il existe une fonction, mais dans l'aide je n'en ai pas trouvé ...

Fanny
Messages postés
157
Date d'inscription
mardi 9 décembre 2003
Statut
Membre
Dernière intervention
3 février 2005
2
slt,
ou tu pourai faire comme ca:

'la fonction
Public Function fact(a As Integer)
fact = 1
Do While a <> 1
fact = a * fact
a = a - 1
Loop
End Function

'aprés dans ton code tu poura faire ca par exemple

msgbox fact(3) 'est égal a 6 bien sur

a+

-------------------------------------------
Ne vous fiez pas à l'apparence...
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
petite correction...

Public Function fact(ByVal a As Integer)
fact = 1
Do While a <> 1
fact = a * fact
a = a - 1
Loop
End Function


parce sinon, la fonction modifiera ton parametre a...
pour preuve, essaies le code ci-dessous (avec le code proposé par TheLordFreddy

Dim a as integer
a = 5

MsgBox "a = " & a
MsgBox "fact(a) = " & fact ( a )
MsgBox "a = " & a
Messages postés
157
Date d'inscription
mardi 9 décembre 2003
Statut
Membre
Dernière intervention
3 février 2005
2
C cool Renfield je te remerci par ce que Byval jle mettai, jle mettai pas mais je ne savai pas tro a qoi ca servai voila maintenan je sai ;-)
-------------------------------------------
Ne vous fiez pas à l'apparence DU CODE
Messages postés
5
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
22 juin 2004

le probleme est que je veux pouvoir effectuer des factoriels sur des grands nombre or les longs ne peuvent avoir que 12 chiffres au maximum.
Comment faire?
merciVotre texte ICI
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
essaies les doubles...
Messages postés
356
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
18 novembre 2021
10
Selon mes recherches,il n'existe une commande pour cela donc voici les codes:
dim i as integer,n as integer
fact=1
n=val(text1.text)
if not isnumeric(n)then
msgbox "SVP saisissez en numerique entier"
text1=""
text1.setfocus
else
for i=1 to n
fact=fact*i
label1=fact

Attention! n'ose pas a déclarer le fact

D'après hornel Lama,etudiant de l'ISIPA Congo-kinshasa
Citattion:la partage des connaissance nous rends forts!!!!
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
je ne suis pas d'accord avec :

n=val(text1.text)
if not isnumeric(n)then

ici, n sera forcément numérique...

faire plutot :

if isnumeric(text1.text)then 
    n=CInt(text1.text) 
Else
    n=val(text1.text) 
end if
...





Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp