J ai une erreur dans ma fonction mais je sais pas ou

Résolu
THIERRYDEBUTANT Messages postés 12 Date d'inscription mercredi 14 juillet 2004 Statut Membre Dernière intervention 25 août 2004 - 2 août 2004 à 12:27
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 - 2 août 2004 à 23:35
Bonjour,

Voila je suis en train de réaliser un programme avec lequel il y a un probleme mais je ne vois pas lequel
J ai donc besoin de votre aide

les variable declaré sont:
Public h As Double, u As Double, D As Double, z0 As Double, w As Double, se As Double, sk As Double, s(8) As Double, Iw(8) As Double, beta(8) As Double, I15 As Double, a As Integer, I0 As Double, alpha(8) As Double, pw(8) As Double, b(8) As Double, It(8) As Double, N As Integer

Ce n est pas la presentation exact mais ca donne le type des variable

Les valeur du tableau p sont préalablement donne car entre dans une textbox par l utilisateur
exemple h= val(textbox1.text)

J ai crée une fonction realisant un calcul a partir des valeurs
cependant en le lancant une erreur apparait dans ma fonction et je ne vois pas quelle peut etre la solution
lŽinfo: "procedure non valable ou argument non valable"

LŽerreur est signalee par !!!!!!!!!!!!!! , voici la fonction:

Public Function Ieff(u As Double, D As Double, w As Double, se As Double, sk As Double, N As Integer, s() As Double, h As Double, z0 As Double) As Double

Dim Iaddwf As Double
Dim Ct As Double
Dim m As Double
Dim i As Integer
m = -w
I0 = 1 / (Log(h / z0))
Ct = 7 / (u)
Ieff = 0
For i = 1 To N
Iw(i) = 1 / (1.5 + 0.3 * s(i) * Sqr(u))
beta(i) = 0.5 * ((180 / 3.14159) * Atn(1 / s(i)) + 10)
If se < (3 * D) Then
se = se / D
sk = sk / D
Iaddwf = 0.36 / (1 + 0.2 * Sqr(se * sk / Ct))
I0 = 0.5 * (Sqr(Iaddwf ^ 2 + I0 ^ 2) + I0)
End If
alpha(i) = Sqr((Iw(i) / I0) ^ 2 + 1) - 1
!!!!!!!!!! b(i) = (3.14159 / 2) * (3 + Sqr(m) * alpha(i) ^ (5 / 4)) / (3 + m * alpha(i) ^ (5 / 4))
pw(i) = (2 * b(i) * beta(i)) / 360
It(i) = Sqr(Iw(i) ^ 2 + I0 ^ 2)
Ieff = Ieff + ((1 - N * pw(i)) * I0 ^ (m) + pw(i) * (It(i)) ^ (m)) ^ (1 / m)
Next i
End Function

Si vous avez d autre remarque sur ce programme, je suis a votre ecoute biensur (il semble qu un autre probleme apparaissent au niveau de I0 pour certaine valeurs et je ne vois pas pourquoi)

3 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 août 2004 à 12:34
Est-ce que m ne serait pas négatif par hasard ? SQR d'un nombre négatif impossible !!
De plus que fait la fonction alpha() ????

Enfin, évite de poser deux fois la même question sous deux titre différents !! ca énerve !!

Christophe R.
3
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
2 août 2004 à 12:48
salut, parfois j'ai eu des erreurs sur des tableaux passés en procédure, il fallait que je le mette en s() as variant.

Bonne prog, poele_a_frire@hotmail.com
liquide
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
2 août 2004 à 23:35
Salut
essaie de tester les valeurs de m et alpha(i) qui doivent tous deux être positifs
0
Rejoignez-nous