begin process at 2012 02 11 22:04:15
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths

 > CALCUL DE RACINE CARRE ENTIERES

CALCUL DE RACINE CARRE ENTIERES


 Information sur la source

Note :
Aucune note
Catégorie :Maths Niveau :Initié Date de création :15/08/2003 Date de mise à jour :15/08/2003 21:39:56 Vu :3 789

Auteur : dtom

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note


 Description

taper sqr(1234) on vous répond 35

Source

  • 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
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!


 Sources du même auteur

MON PC SAIT COMPTER!
SYNOPSIS D'UN CASSE BRIQUE EN 3D
DÉTECTER SI ON EST CONNECTÉ AU NET
Source avec Zip INCOMINGMAIL V2, OU COMMENT SAVOIR SI ON À RECUS DES MESSAGE...
Source avec Zip DÉTECTION DU NOMBRE D'EMAIL RECUS (MAJ)

 Sources de la même categorie

Source avec Zip Source avec une capture CONVERTISSEUR HEXAVIGÉSIMAL par shaeks
Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTOGRAPHIE AFFINE par Tigrou66
Source avec Zip Source avec une capture SCANNER FLEX par lajouad
Source avec Zip EQUATIONSECONDDEGRÉ,MATH,DEGRÉ par shadkitenge
Source avec Zip Source .NET (Dotnet) SOMME DE CHIFFRES CONTENUE DANS UN NOMBRE par alpha5

Commentaires et avis

Commentaire de DHKold le 16/08/2003 15:17:30

Pourais-tu s'il te plait me dire quel est l'avantage d'utiliser cette fonction plutôt que sqr()? Merci

Commentaire de dtom le 17/08/2003 00:45:31

aucun, sauf quand comme moi on cree une classe capable de gérer des nombre jusqu'a 10^10000 ! :-)

Commentaire de DHKold le 17/08/2003 21:39:23

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.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales