Utilisation du log10 en vb6 [Résolu]

philjoyal 14 Messages postés vendredi 21 décembre 2007Date d'inscription 25 décembre 2007 Dernière intervention - 23 déc. 2007 à 21:09 - Dernière réponse : mstarsup5 527 Messages postés lundi 15 octobre 2007Date d'inscription 10 octobre 2013 Dernière intervention
- 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!
Afficher la suite 

14 réponses

Répondre au sujet
mstarsup5 527 Messages postés lundi 15 octobre 2007Date d'inscription 10 octobre 2013 Dernière intervention - 24 déc. 2007 à 09:40
+3
Utile
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!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de mstarsup5
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 23 déc. 2007 à 21:28
0
Utile
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
Commenter la réponse de jmfmarques
philjoyal 14 Messages postés vendredi 21 décembre 2007Date d'inscription 25 décembre 2007 Dernière intervention - 23 déc. 2007 à 21:34
0
Utile
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
Commenter la réponse de philjoyal
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 23 déc. 2007 à 22:13
0
Utile
ben ... ce n'est plus du log10, mais du log tout seul ...



mavariable math.log (val(montextbox.text)) >>> mavariable = log (val(montextbox.text))
Commenter la réponse de jmfmarques
philjoyal 14 Messages postés vendredi 21 décembre 2007Date d'inscription 25 décembre 2007 Dernière intervention - 23 déc. 2007 à 22:22
0
Utile
désolé...je me suis trompé...c'est:

mavariable = math.log10 (val(montextbox.text))
Commenter la réponse de philjoyal
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 23 déc. 2007 à 22:26
0
Utile
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 !!!!
Commenter la réponse de jmfmarques
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 23 déc. 2007 à 23:35
0
Utile
D'autant qu'on a déjà répondu le 21 à la même question
Commenter la réponse de cs_Jack
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 24 déc. 2007 à 00:04
0
Utile
Ca, alors !!!

Je viens de voir et de découvrir qu'en plus, c'est lui !!!!
Commenter la réponse de jmfmarques
mstarsup5 527 Messages postés lundi 15 octobre 2007Date d'inscription 10 octobre 2013 Dernière intervention - 24 déc. 2007 à 01:08
0
Utile
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!
Commenter la réponse de mstarsup5
philjoyal 14 Messages postés vendredi 21 décembre 2007Date d'inscription 25 décembre 2007 Dernière intervention - 24 déc. 2007 à 01:56
0
Utile
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"
Commenter la réponse de philjoyal
cs_akim77 73 Messages postés lundi 12 avril 2004Date d'inscription 17 septembre 2008 Dernière intervention - 24 déc. 2007 à 08:56
0
Utile
Yo,

Si logtxt50rec=0 , c'est normal!

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

Joyeux Noel

Akim
Commenter la réponse de cs_akim77
mstarsup5 527 Messages postés lundi 15 octobre 2007Date d'inscription 10 octobre 2013 Dernière intervention - 24 déc. 2007 à 09:33
0
Utile
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!
Commenter la réponse de mstarsup5
philjoyal 14 Messages postés vendredi 21 décembre 2007Date d'inscription 25 décembre 2007 Dernière intervention - 25 déc. 2007 à 22:56
0
Utile
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!!
Commenter la réponse de philjoyal
mstarsup5 527 Messages postés lundi 15 octobre 2007Date d'inscription 10 octobre 2013 Dernière intervention - 25 déc. 2007 à 23:09
0
Utile
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!
Commenter la réponse de mstarsup5

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.