sobullshit
Messages postés178Date d'inscriptionvendredi 9 février 2007StatutMembreDernière intervention 8 juin 2007
-
23 avril 2007 à 09:18
sobullshit
Messages postés178Date d'inscriptionvendredi 9 février 2007StatutMembreDernière intervention 8 juin 2007
-
23 avril 2007 à 13:38
Bonjour,
Lorsque j'éxecute mon programme, j'ai une erreur '5 toujours au même endroit (ligne en couleur).
Pour info mon nbr vaut 12 et mon Iy est définit de 1 à 20.
Donc si jamais quelqu'un est déjà tombé sur ce genre d'erreur...
Public Sub adjust(Ix As Single, I0y As Single, Iz As Single, L As Single, Jx() As Single, Jy() As Single, Jz() As Single, Iy() As Single, nbr As Integer, Le0 As Single, vt As Single, le As Single, Rgalet As Single, PCD As Single, a1 As Single, a2 As Single, angl() As Single, cou() As Single, ang() As Single, course() As Single)
Dim i As Integer
Dim l0(1 To 20) As Single
Dim garde1 As Single, garde2 As Single
Dim mx As Single, mn As Single, md As Single
Dim ax As Single, an As Single
Dim teta As Single
mx = -1000
mn = 1000
md = 5
centrage:
For i = 1 To nbg
course(i) = Iy(i) - I0y
teta = Arcsin((I0z - Jz(i)) / L)
ang(i) = teta * deg
Next i
For i = 1 To 12
Select Case Iy(i)
Case Is > mx
mx = Iy(i)
ax = ang(i)
Case Is < mn
mn = Iy(i)
an = ang(i)
Case Abs(Iy(i)) < md
md = Iy(i)
End Select
Next i
mx = mx + (Rgalet / 2 * Cos(a1 / deg)) + (PCD / 2 * Cos((90 - a1) / deg))
mn = mn - (Rgalet / 2 * Cos(a2 / deg)) - (PCD / 2 * Cos((90 - a2) / deg))
For i = 1 To nbr
Select Case ax
Case ax < angl(i) And ax > angl(i + 1)
Call resolv(cou(i), cou(i + 1), angl(i), angl(i + 1), garde1, ax)
Case ax > angl(i) And ax < angl(i + 1)
Call resolv(cou(i), cou(i + 1), angl(i), angl(i + 1), garde1, ax)
End Select
Select Case an
Case an < angl(i) And an > angl(i + 1)
Call resolv(cou(i), cou(i + 1), angl(i), angl(i + 1), garde2, an)
Case an > angl(i) And an < angl(i + 1)
Call resolv(cou(i), cou(i + 1), angl(i), angl(i + 1), garde2, an)
End Select
Next i
Select Case result1
Case Is > (result2 + 0.5)
le = le - 1
I0y = -(vt + le)
For i = 1 To nbr
l0(i) = Sqr(((Jx(i) - Ix) ^ 2) + ((Jy(i) - I0y) ^ 2) + ((Jz(i) - Iz) ^ 2))
Next i
i = 1
L = 0
Do While Not l0(i) = 0
L = L + l0(i)
i = i + 1
Loop
L = L / nbr
For i = 1 To nbr
Iy(i) = (Jy(i) + (Sqr((L ^ 2) - ((Jx(i) - Ix) ^ 2) - ((Jz(i) - Iz) ^ 2))))
Next i
GoTo centrage
Case Is < (result2 - 0.5)
le = le + 2
I0y = -(vt + le)
For i = 1 To nbr
l0(i) = Sqr(((Jx(i) - Ix) ^ 2) + ((Jy(i) - I0y) ^ 2) + ((Jz(i) - Iz) ^ 2))
Next i
i = 1
L = 0
Do While Not l0(i) = 0
L = L + l0(i)
i = i + 1
Loop
L = L / nbr
For i = 1 To nbr
Iy(i) = (Jy(i) + (Sqr((L ^ 2) - ((Jx(i) - Ix) ^ 2) - ((Jz(i) - Iz) ^ 2))))
Next i
sobullshit
Messages postés178Date d'inscriptionvendredi 9 février 2007StatutMembreDernière intervention 8 juin 2007 23 avril 2007 à 09:31
intitulé : argument ou appel de procédure incorrect
Tous les tableaux sont définis de 1 à 20.
Les valeurs des autres variables changent régulièrement donc je vois pas trop comment les donner.
Par contre j'ai oublié de préciser que je n'ai l'erreur que lorsque i = nbr (donc 12)
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 23 avril 2007 à 09:43
Salut,
Normalement VB devrait te surligner en plus de la ligne,; l'endroit ou ca cloche
étant donné qu'il n'y a que SQR comme fonction sur cette ligne, a mon avis c'est la valeur de (L ^ 2) - ((Jx(i) - Ix) ^ 2) - ((Jz(i) - Iz) ^ 2) a ce moment la qui coince. Quelle est cette valeur