Aide petit exo de programation en vba

Fermé
fox - 5 juin 2006 à 05:20
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 5 juin 2006 à 09:10
salut voila je n'arive pas à faire cet exo
http://membres.lycos.fr/culear/exo2.jpg
ce serai simpa de m'aider
merci d'avence
fox

2 réponses

blux Messages postés 26000 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
5 juin 2006 à 09:04
Salut,

c'est où que tu coinces ?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
5 juin 2006 à 09:10
Salut,

Vu que le factoriel donne des résultat assez grands, obliger la fonction de retourner des résultats integer (-32 768 à 32 767) nous permet de calculer au max 7! puique 8! = 40320 qui n'est plus un integer

Ex1
Function Factoriel(a As Integer) As Integer
    Dim i, j
    j = 1
        For i = 1 To a
            j = j * i
        Next i
    Factoriel = j
End Function


Dans le 2ème cas on aura la même situation si tu prend un argument 2348 par exemple

2,3,4 pas de problème mais 8! on revient au 1er cas
Ex2
Function SommeFactoriel(aa As Integer) As Integer
    Dim ii As Byte, t As Byte, byLength As Byte
    Dim k, res
    
    byLength = Len(CStr(aa))
    k = 1: res = 0
    For ii = 1 To byLength
        For t = 1 To Mid(aa, ii, 1)
            k = k * t
        Next t
       res = res + k: k = 1
    Next ii
    SommeFactoriel = res
End Function
Le 3ème je te laisse le faire.

lami20j
0