Calcul de racine carre entieres

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 745 fois - Téléchargée 36 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
-
Pourais-tu s'il te plait me dire quel est l'avantage d'utiliser cette fonction plutôt que sqr()? Merci
cs_dtom
Messages postés
30
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
16 novembre 2003
-
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
-
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.

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.