écriture d'un nombre d'autre façon

zine pef Messages postés 6 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 23 décembre 2010 - 21 déc. 2010 à 15:33
zine pef Messages postés 6 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 23 décembre 2010 - 23 déc. 2010 à 16:38
bomjour;
quelqu'un m'aider d'un code en VB6 d'écrire le nombre:124=(1*100)+(2*10)+(4*1)
merçi;

7 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 déc. 2010 à 16:53
Salut

Tu cherches donc à décomposer un nombre en facteurs de puissances de 10 ? (voilà des mots intéressant à rechercher sur le site)

Un exemple tout cuit pour me détendre :
    Dim lNombre     As Long
    Dim lReste      As Long
    Dim lCombien    As Long
    Dim lDeFois     As Long
    Dim r           As Long
    Dim sResult     As String
    
    lNombre = 124

    sResult = ""
    lReste = lNombre
    For r = 9 To 0 Step -1   ' Maxi 9 chiffres dans ce nombre (limite du Long)
        lDeFois = 10 ^ r
        If lReste Mod (lDeFois) <> lReste Then
            lCombien = Fix(lReste / lDeFois)
            sResult = sResult & _
                      CStr(lCombien) & _
                      "*" & CStr(lDeFois) & _
                      " + "
            lReste = lReste - (lCombien * lDeFois)
        End If
    Next r
    If Right$(sResult, 3) " + " Then sResult Left$(sResult, Len(sResult) - 3)
    Debug.Print lNombre & " = " & sResult

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 déc. 2010 à 16:55
9 zéros, pas 9 chiffres, donc 10 chiffres
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
21 déc. 2010 à 23:09
Bonsoir
Une autre façon

Private Sub facteur10(valeur As Long)
Dim fact As Long
Dim iter As Long
Dim expression As String
expression = ""
fact = 10 ^ (Len(Trim(str(valeur))) - 1)
For iter = 0 To Len(Trim(str(valeur))) - 1
 expression = expression & "( " & valeur \ fact & " * " & fact & " )" & " + "
  valeur = valeur Mod fact
 fact = fact / 10
 Next iter
expression = Mid(expression, 1, Len(expression) - 2)
Me.Label1.Caption = expression
End Sub

0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 déc. 2010 à 11:09
Mais de rien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zine pef Messages postés 6 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 23 décembre 2010
22 déc. 2010 à 16:38
bonjour;
merçi Mr Jack pour le code c'est bien marché
mais si possible le nombre est décimal 124.15
le code affiche 124 seulement

merçi ShayW le code est tres compliquer .
aide moi
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
23 déc. 2010 à 00:15
Bonsoir
j'espère que tu comprendras

 Private Sub facteur10(valeur As Double)
Dim fact As Double
Dim iter As Long
Dim operand As String
Dim lengthnum As Byte
Dim expression As String
expression = ""
 
'calculate the number of digits of the whole part of valeur
lengthnum = Len(Trim(str(Int(valeur))))
'calculate the exponant the first digit is a multiple of 10^ exponant
' ex 124 = 1* 10^2 + 2*10^1 + 4*10^0
' ex 124.56 = 1* 10^2 + 2*10^1 + 4*10^0 + 5*10^-1 + 6*10^-2
'get the first 10 ^exponant
fact = 10 ^ (lengthnum - 1)
For iter = 1 To Len(Trim(str(valeur)))
'get the digit
  operand = Mid(Trim(str(valeur)), iter, 1)
  If operand <> "." Then
    If operand <> "0" Then
      expression = expression & "( " & operand & " * " & fact & " ) " & " + "
    End If
  End If
  fact = fact / 10
Next iter
Me.Label1.Caption = Mid(expression, 1, Len(expression) - 2)
End Sub

0
zine pef Messages postés 6 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 23 décembre 2010
23 déc. 2010 à 16:38
merçi ShayW
0
Rejoignez-nous