Resolution d'equations du troisieme degre'

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 979 fois - Téléchargée 19 fois

Contenu du snippet

Option Explicit
Dim a As Long
Dim b As Long
Dim c As Long
Dim d As Long
Private Sub Command1_Click()
Const PI As Single = 3.14159265358979
Dim e As Long
Dim f As Long
Dim g As Long
Dim p As Long
Dim q As Long
Dim k As Long
Dim x As Integer
Dim t As Integer
Dim s1 As Long
Dim s2 As Long
Dim s3 As Long
Dim s4 As Long
Dim s5 As Long
Dim s6 As Long
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
d = Val(Text4.Text)
On Error Resume Next
e = b / (3 * a)
f = c / a
g = d / a
p = (-3 * (e ^ 2)) + f
q = (2 * (e ^ 3)) - (e * f) + g
k = ((4 * (p ^ 3)) / 27) + (q ^ 2)
If k < 0 Then
x = ((3 * q) / (2 * p)) * Sqr(-3 / p)
t = (1 / 3) * (Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1))
s1 = -e + Sqr(-4 * p / 3) * Cos(t)
s2 = -e + Sqr(-4 * p / 3) * Cos(t + 2 * PI / 3)
s3 = -e + Sqr(-4 * p / 3) * Cos(t + 4 * PI / 3)
Text1.Text = " Les trois solutions sont : " & s1 & " et " & s2 & " et " & s3
Text2.Text = " "
Text3.Text = " "
Text4.Text = " "
ElseIf k = 0 Then
s4 = -e - ((4 * q) ^ (1 / 3))
s5 = -e + ((q / 2) ^ (1 / 3))
Text1.Text = " Les deux solutions sont : " & s4 & " et " & s5
Text2.Text = " "
Text3.Text = " "
Text4.Text = " "
Else
s6 = -e + (((-q + Sqr(k)) / 2) ^ (1 / 3)) - (((q + Sqr(k)) / 2) ^ (1 / 3))
Text1.Text = " La solution est : " & s6
Text2.Text = " "
Text3.Text = " "
Text4.Text = " "
End If
End Sub
Private Sub Command2_Click()
Text1.Text = " "
Text2.Text = " "
Text3.Text = " "
Text4.Text = " "
Text1.SetFocus
End Sub

Source / Exemple :


Anciens livres de math

Conclusion :


Des erreurs dans ce programme que je n'arrive pas a devoiler surtout
l'utilisation des variables. Je vous demande de m'aider

A voir également

Ajouter un commentaire

Commentaire

cs_CFCTABLE
Messages postés
18
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
14 avril 2008
-
Déclares toutes tes variables en double précision
Dim a As Long
devient
Dim a As double
etc...
Long est un format entier

supprime Const PI As Single = 3.14159265358979 et remplace par

Dim PI As Double
PI = 4 * Atn(1)

et ça devrait marcher

J'ai refait un programme en VB6 à partir de ta formulation et les résultats semblent corrects.
je fais un zip que je poste ici.
Commenter la réponse de cs_CFCTABLE

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.