Utilisation du log10 en vb6

Résolu
philjoyal Messages postés 14 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 25 décembre 2007 - 23 déc. 2007 à 21:09
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 - 25 déc. 2007 à 23:09
bonjour,

j ai fais une application en vb2005 que je veux traduire en vb6

mon probleme c'est que je ne sais pas comment utiliser le log10 en vb6

mon code en vb2005 est :

'declare variable

Dim logtxt50rec
As
Double

'calculate cetane index D976

If btnci976.Checked
Thenlogtxt50rec = Math.Log10(Val(txtcit50.Text))

lblci.Text = 454.74 - 1641.416 * Val(txtcidensity.Text) + 774.74 * (Val(txtcidensity.Text) ^ 2) - 0.554 * Val(txtcit50.Text) + 97.803 * (Val(logtxt50rec) ^ 2)

quel serait mon code en vb6 pour replacer le code: logtxt50rec = Math.Log10(Val(txtcit50.Text))
??

merci!
A voir également:

14 réponses

mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
24 déc. 2007 à 09:40
Ah, finalement je reposte... j'ai testé avec ton code, ton bouton et ton textbox:

Dim logtxt50rec As Double



Private Sub cmdcalcci_Click()
logtxt50rec = Log10(Val(txtcit50.Text))
MsgBox Str(logtxt50rec)
End Sub



Public Function Log10(ByVal logtxt50rec As Double) As Double
Log10 = Log(logtxt50rec) / Log(10#)
End Function



Ca marche impec...
Par contre, c'est sur que si je mets un nombre <=0 en paramètre, ça marche pas et j'obtiens le même message d'erreur que toi... Après tout, un logarithme prend ses valeurs dans R+*... Comme quoi, si l'erreur ne vient pas de la fonction, elle vient peut être de son utilisation...

 Pourapprendretoujoursplus!
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
23 déc. 2007 à 21:28
Bondoir,

Voilà ce que l'on peut lire dans l'aide en ligne (la mienne est en anglais), en consultant tout simplement sur la fonction Log :

The natural logarithm is the logarithm to the base e. The constant e is approximately 2.718282.
You can calculate base-n logarithms for any number x by dividing the natural logarithm of x by the natural logarithm of n as follows:



Logn(x) = Log(x) / Log(n)



The following example illustrates a custom Function that calculates base-10 logarithms:



Static Function Log10(X)
 Log10 = Log(X) / Log(10#)
End Function
0
philjoyal Messages postés 14 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 25 décembre 2007
23 déc. 2007 à 21:34
merci de la reponse rapide,


mais mon probleme c'est que je sais pas comment l'utiliser dans mon code, je suis debutant.


en vb2005 je l utiilise en en faisant
 
mavariable = math.log (val(montextbox.text))



mais comment faire en vb6 ?

merci
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
23 déc. 2007 à 22:13
ben ... ce n'est plus du log10, mais du log tout seul ...



mavariable math.log (val(montextbox.text)) >>> mavariable = log (val(montextbox.text))
0

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

Posez votre question
philjoyal Messages postés 14 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 25 décembre 2007
23 déc. 2007 à 22:22
désolé...je me suis trompé...c'est:

mavariable = math.log10 (val(montextbox.text))
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
23 déc. 2007 à 22:26
Tu te moques, là ????

Relis :

Static Function Log10(X)
 Log10 = Log(X) / Log(10#)
End Function

Regarde bien ce qui est écrit en rouge !
 X, c'est mavariable

Dis voir, toi... je sais que c'est bientôt Noël, mais quand-même !!!!
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
23 déc. 2007 à 23:35
D'autant qu'on a déjà répondu le 21 à la même question
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 déc. 2007 à 00:04
Ca, alors !!!

Je viens de voir et de découvrir qu'en plus, c'est lui !!!!
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
24 déc. 2007 à 01:08
lol, je me disais que j'avais déjà vu ce topic il n'y avait pas longtemps, je ne me doutais pas que c'était en réalité deux topics différents, postés par la même personne

philjoyal, écris quelque part dans ton code: 

Public Function Log10(byval X as double) as double
Log10 = Log(X) / Log(10#)
End Function
(Tu remarqueras que c'est ce que t'as donné jmfmarques et les gens qui ont répondu à ton post du 21/12/2007)

et remplace tous tes Math.Log10 par log10

 Pourapprendretoujoursplus!
0
philjoyal Messages postés 14 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 25 décembre 2007
24 déc. 2007 à 01:56
salut,
p-e que c'est moi ki s'exprime mal ou je ne comprend vraiment rien...

j'ai un textbox (txtcit50.Text)
une variable (logtxt50rec)


je veux calculer le log10 du textbox et donner la valeur du résultat a la variable...


selon ce qu'on me dis je devrais re trouver le code suivant :



'declare variable

Dim
logtxt50rec

As



Double

Private Sub cmdcalcci_Click()
'calculate cetane index D976
If btnci976.Value = True
Then
logtxt50rec = Log10(Val(txtcit50.Text))
End Sub

Public Function Log10(ByVal logtxt50rec As Double) As Double
Log10 = Log(logtxt50rec) / Log(10#)
End Function

mais voila, quand je fais un debug...vb6 me dis que la ligne: Log10 = Log(logtxt50rec) / Log(10#) est une "invalid procedure call or argument"
0
cs_akim77 Messages postés 73 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 17 septembre 2008 4
24 déc. 2007 à 08:56
Yo,

Si logtxt50rec=0 , c'est normal!

Pour t'en convaincre, essayes de calculer log(0) avec ta calculatrice.

Joyeux Noel

Akim
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
24 déc. 2007 à 09:33
Ben écoute, dernier post que je fais dans ce topic, je viens de tester, j'ai mis exactement ce que je t'ai écris...


Fais toi une form et mets y un bouton nommé Command1


et en code, mets exactement ceci:



Public Function Log10(ByVal X As Double) As Double
Log10 = Log(X) / Log(10#)
End Function



Private Sub Command1_Click()
Dim i As Double
i = 50000 * Rnd
MsgBox "i= " & Str(i) & ", et log10(i)= " & Str(Log10(i))
End Sub


et tu vois par toi même que 1: c'est pas sorcier, et 2: c'est exactement ce qu'on t'a dit pendant 20 posts.

Après, c'est à toi, comme akim77 te l'a souligné, de ne pas faire d'erreur en demandant un log de 0 ou de quelconque nombre négatif, c'est à toi de vérifier que ton programme ne se plante pas et met bien un nombre comme paramètre de la fonction log10 que je t'ai donnée, etc...

 Pourapprendretoujoursplus!
0
philjoyal Messages postés 14 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 25 décembre 2007
25 déc. 2007 à 22:56
parfait...ca fonctionne maintenant...

mon probleme c'etait justement que je testait avec aucun nombre dans mon textbox...en vb6 cela donne un message d'erreur...mais en vb2005 il retourne: + infini, sans message d'erreur.

maintenant sa souleve un autre probleme, c'est-a-dire de mettre un code pour eviter que mon programme plante si une valeur <=0 est mis dans le textbox..

merci a tous de m'avoir aider et particulierement a mstarsup5 pour avoir mis autant de temps!!

merci!!
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
25 déc. 2007 à 23:09
Salut,

Ca c'est simple: tu regardes tout d'abord si les caractères de ton textbox sont tous des chiffres, et ensuite tu regardes si la valeur est >0

 Pourapprendretoujoursplus!
0
Rejoignez-nous