RESOLUTION D'EQUATIONS TRIGONOMETRIQUES

cs_CFCTABLE Messages postés 18 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 14 avril 2008 - 23 févr. 2008 à 11:41
cs_CFCTABLE Messages postés 18 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 14 avril 2008 - 23 févr. 2008 à 11:41
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45766-resolution-d-equations-trigonometriques

cs_CFCTABLE Messages postés 18 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 14 avril 2008
23 févr. 2008 à 11:41
Private Sub Command1_Click()
' Rendre le programme plus lisible en
' -regroupant les déclarations de variables
' -en faisant des identations (décalages) sur les boucles et conditions
' -ajoutant des explications en commentaires
'
' Attention à width , height.. il est préférable de les associer à la feuille
' - equatrigo.Width etc...
'
' utiliser un contrôle listbox plutot que le textcontrol dans ce cas précis..
'
' Je vous ai remis un exemple pour mettre les solutions sur le cercle.
' Bon courage

Dim PI As Double
Dim D As Double
Dim H As Double
Dim E As Double
Dim J As Double
Dim N As Byte
ReDim K(100) As Double
ReDim L(100) As Double
Dim wa, wb, WR As Integer

PI = 4 * Atn(1)
A = Val(Text1.Text)
B = Val(Text2.Text)
C = Val(Text3.Text)
W = Val(Text4.Text)
D = Sqr(A ^ 2 + B ^ 2)
H = C / D
If Abs(H) > 1 Then
Text5(0).Text = " L'equation n'a pas de solution "
Else
E = Atn(-H / Sqr(-H * H + 1)) + 2 * Atn(1)
J = Atn((B / D) / Sqr(-(B / D) * (B / D) + 1))
For N = 0 To W - 1
K(N) = (E + J + (2 * N * PI)) / W
L(N) = (-E + J + (2 * N * PI)) / W
Next N
equatrigo.Width = Screen.Width * 0.54
equatrigo.Height = Screen.Height * 0.88
equatrigo.Left = (Screen.Width - Width) / 2
equatrigo.Top = (Screen.Height - Height) / 2


WR = 3200
wa = Me.Width * 2 / 3
wb = Me.Height / 2 + 800
equatrigo.DrawWidth = 3
equatrigo.PSet (wa, wb), vbRed
equatrigo.Circle (wa, wb), WR, vbRed

Text5(0).Text = " " & K(0) & " et " & L(0)
For N = 1 To W - 1
Load Text5(N)
Text5(N).Top = Text5(N - 1).Top + 850
Text5(N).Visible = True
Text5(N).Text = " " & K(N) & " et " & L(N)
Next N
For N = 0 To W - 1
equatrigo.Line (wa, wb)-(wa + WR * Cos(K(N)), wb + WR * Sin(K(N))), vbBlack
equatrigo.Line (wa, wb)-(wa + WR * Cos(L(N)), wb + WR * Sin(L(N))), vbBlue
Next N
End If
End Sub