RAPTISTA
Messages postés6Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 8 juin 2007
-
8 juin 2007 à 17:16
comemich
Messages postés39Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention23 août 2017
-
26 janv. 2008 à 18:31
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
comemich
Messages postés39Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention23 août 2017 26 janv. 2008 à 18:31
Merci Abdelelansari
Abdelelansari
Messages postés21Date d'inscriptionsamedi 12 janvier 2008StatutMembreDernière intervention29 mars 2008 26 janv. 2008 à 15:38
je suis un prof de math et voila mon programme pour la resolution d'equation du 3 degre'
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)
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
je vous demande de faire analyse et me faire des remarques
Merci infiniment
eBulle68
Messages postés5Date d'inscriptionlundi 8 octobre 2007StatutMembreDernière intervention17 octobre 2007 17 oct. 2007 à 17:43
UP
eBulle68
Messages postés5Date d'inscriptionlundi 8 octobre 2007StatutMembreDernière intervention17 octobre 2007 10 oct. 2007 à 11:06
Non c'est pas trop pressé...
A vrai dire je cherche a faire une feuille de calcul me permettant a tout moment de connaitre la hauteur d'eau dans un bassin. J'ai une relation entre le volume et le temps, puis entre le volume et la hauteur d'eau, mais du fait du bassin bizarre (une sorte de lingot inversé), cette dernière est du 3eme degré, c'est à dire v=f(h) du type v=a*h^3 + b*h^2 + c*h + d
Voilà pourquoi je cherche une macro qui me permette de résoudre efficacement les polynômes du 3eme degré. Je suis pas très pressé, il s'agit d'un travail personnel avant tout. Me demandez pas trop pourquoi je fais ca, c'est plus un défi qu'autre chose... J'aimais bien les problèmes de vidange de baignoire quand j'étais petit ^^
comemich
Messages postés39Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention23 août 2017 10 oct. 2007 à 00:23
Oui
Bien sûr...
On peut tout faire...
Mais c'est une autre paire de manches.
Et puis, il y a longtemps que je n'écris plus en VB6. Je ne me souviens pas très bien.
Si j'ai le temps, je regarderai ce que je peux faire.
Ce n'est pas insurmontable.
Faut voir...
Si c'est pas trop pressé.
eBulle68
Messages postés5Date d'inscriptionlundi 8 octobre 2007StatutMembreDernière intervention17 octobre 2007 9 oct. 2007 à 08:46
Mais pourtant ca doit bien être adaptable, non?
comemich
Messages postés39Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention23 août 2017 9 oct. 2007 à 00:27
Je pense que le VB.NET n'est pas reconnu comme language des macros Excel.
eBulle68
Messages postés5Date d'inscriptionlundi 8 octobre 2007StatutMembreDernière intervention17 octobre 2007 8 oct. 2007 à 11:44
pour la ligne RacineDegré3 = New Collection il me met " agrument non facultatif" et pour les autres, il connait pas ces fonctions.. du coup je sais pas trop quoi faire, ai-je oublié de charger une référence ou quelque chose?
eBulle68
Messages postés5Date d'inscriptionlundi 8 octobre 2007StatutMembreDernière intervention17 octobre 2007 8 oct. 2007 à 11:19
Perso, ca marche pas chez moi, Excel reconnait pas:
RacineDegré3 = New Collection (je sais pas par quoi le remplacer)
Math.Sqrt (remplacé par Math.Sqr)
Math.Sign (remplacé par Math.Sgn)
For k As Short = 0 To 2 (je sais pas par quoi le remplacer)
Math.Acos (marche pas, c'est inouï! J'ai créé une fonction trouvée ici: http://www.vbfrance.com/infomsg_FONCTION-ARCCOSINUS_603879.aspx )
Math.pi (pareil)
Math.pow (remplacé par ...^... )
comemich
Messages postés39Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention23 août 2017 6 oct. 2007 à 17:24
Oui, il serait judicieux de remplacer Pi par Math.Pi dans la ligne:
RacineDegré3.Add(2 * Math.Sqrt(-p / 3) * Math.Cos((Math.Acos(Cosinus) + 2 * k * Pi) / 3) + y)
ce qui donne
RacineDegré3.Add(2 * Math.Sqrt(-p / 3) * Math.Cos((Math.Acos(Cosinus) + 2 * k * Math.Pi) / 3) + y)
RAPTISTA
Messages postés6Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 8 juin 2007 8 juin 2007 à 17:16
Il te faut juste une petite declaration du nombre "pi=3.14..."
26 janv. 2008 à 18:31
26 janv. 2008 à 15:38
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)
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
je vous demande de faire analyse et me faire des remarques
Merci infiniment
17 oct. 2007 à 17:43
10 oct. 2007 à 11:06
A vrai dire je cherche a faire une feuille de calcul me permettant a tout moment de connaitre la hauteur d'eau dans un bassin. J'ai une relation entre le volume et le temps, puis entre le volume et la hauteur d'eau, mais du fait du bassin bizarre (une sorte de lingot inversé), cette dernière est du 3eme degré, c'est à dire v=f(h) du type v=a*h^3 + b*h^2 + c*h + d
Voilà pourquoi je cherche une macro qui me permette de résoudre efficacement les polynômes du 3eme degré. Je suis pas très pressé, il s'agit d'un travail personnel avant tout. Me demandez pas trop pourquoi je fais ca, c'est plus un défi qu'autre chose... J'aimais bien les problèmes de vidange de baignoire quand j'étais petit ^^
10 oct. 2007 à 00:23
Bien sûr...
On peut tout faire...
Mais c'est une autre paire de manches.
Et puis, il y a longtemps que je n'écris plus en VB6. Je ne me souviens pas très bien.
Si j'ai le temps, je regarderai ce que je peux faire.
Ce n'est pas insurmontable.
Faut voir...
Si c'est pas trop pressé.
9 oct. 2007 à 08:46
9 oct. 2007 à 00:27
8 oct. 2007 à 11:44
8 oct. 2007 à 11:19
RacineDegré3 = New Collection (je sais pas par quoi le remplacer)
Math.Sqrt (remplacé par Math.Sqr)
Math.Sign (remplacé par Math.Sgn)
For k As Short = 0 To 2 (je sais pas par quoi le remplacer)
Math.Acos (marche pas, c'est inouï! J'ai créé une fonction trouvée ici: http://www.vbfrance.com/infomsg_FONCTION-ARCCOSINUS_603879.aspx )
Math.pi (pareil)
Math.pow (remplacé par ...^... )
6 oct. 2007 à 17:24
RacineDegré3.Add(2 * Math.Sqrt(-p / 3) * Math.Cos((Math.Acos(Cosinus) + 2 * k * Pi) / 3) + y)
ce qui donne
RacineDegré3.Add(2 * Math.Sqrt(-p / 3) * Math.Cos((Math.Acos(Cosinus) + 2 * k * Math.Pi) / 3) + y)
8 juin 2007 à 17:16