Calcul de racine carre entieres

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 244 fois - Téléchargée 38 fois

Contenu du snippet

taper sqr(1234) on vous répond 35

Source / Exemple :


Function racine(ByVal a As Integer) As Integer
    Dim lenn As Integer
    lenn = lennb(a) + 2
    Dim two As Integer
    Dim nbmoins As Integer
    Dim impaire As Integer
    impaire = 1
    Dim res As Integer
    If lenn Mod 2 = 1 Then
        lenn = lenn - 1
        two = chiffre(a, lenn - 1)
    Else
        lenn = lenn - 2
        two = chiffre(a, lenn) * 10 + chiffre(a, lenn - 1)
    End If
    Do
        nbmoins = 0
        While impaire <= two
            nbmoins = nbmoins + 1
            two = two - impaire
            impaire = impaire + 2
        Wend
        impaire = (impaire - 1) * 10 + 1
        res = res * 10 + nbmoins
        If lenn > 0 Then
            lenn = lenn - 2
            two = two * 100 + chiffre(a, lenn) * 10 + chiffre(a, lenn - 1)
        End If
    Loop While lenn > 0
    racine = res
End Function

Function chiffre(ByVal nb As Integer, ByVal pos As Integer) As Integer
    Dim i As Integer
    For i = 1 To pos - 1
        nb = nb / 10 'on coupe ce qui suit
    Next
    chiffre = nb Mod 10 'on ne prend pas ce qu'in y a avant
End Function

Function lennb(nb As Integer) As Integer
    lennb = Len(CStr(nb))
End Function

Conclusion :


lennb renvoi la taille d'un nombre et chiffre le n-ème chiffre de nb.
la méthode parrait peut-etre fantaisiste mais elle fonctionne très bien!

A voir également

Ajouter un commentaire Commentaires
DHKold Messages postés 153 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 29 mai 2005 2
17 août 2003 à 21:39
ok. moi pour les grands nombres, j'utilise ma fonction:
http://www.vbfrance.com/article.aspx?Val=9115

C'est ma source, mais elle n'est pas à jour, j'ai depuis fait une fonction qui calcul la racine carrée. Je vais d'ailleurs la postée de suite.
cs_dtom Messages postés 30 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 16 novembre 2003
17 août 2003 à 00:45
aucun, sauf quand comme moi on cree une classe capable de gérer des nombre jusqu'a 10^10000 ! :-)
DHKold Messages postés 153 Date d'inscription vendredi 6 décembre 2002 Statut Membre Dernière intervention 29 mai 2005 2
16 août 2003 à 15:17
Pourais-tu s'il te plait me dire quel est l'avantage d'utiliser cette fonction plutôt que sqr()? Merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.