Selamlar. Öncelikle site ve vba for excelde yeniyim. Okulumda şu tarz denklem çözülmesi için bir ödev verildi.
Fakat bu denklemi çözecek a,b,c sayıları bilmediğim için kodum hep arccos hesaplama kısmında (ERROR 2036) hata veriyor. Öncelikle soracağım soru şu.
1) Yazdığım kısımlarda hata varmı? Veya nasıl güzelleştirebilirim.
2) if statementta istediğim koşulu sağlayan örnek sayılar a=-4 b=1 c=2. O adını verdiğim denklemde sonuc -1,46 cıkıyor. ama arccos 0 ile pi aralığında. hatayı bu yüzden alıyor olabilirmiyim?
ödevim olduğunu biliyorum fakat sizden ödevimi çözmekten ziyade yardımlarınızı bekliyorum.
edit: yazdığım kodu eklemeyi unutmuşum.
1) Yazdığım kısımlarda hata varmı? Veya nasıl güzelleştirebilirim.
2) if statementta istediğim koşulu sağlayan örnek sayılar a=-4 b=1 c=2. O adını verdiğim denklemde sonuc -1,46 cıkıyor. ama arccos 0 ile pi aralığında. hatayı bu yüzden alıyor olabilirmiyim?
ödevim olduğunu biliyorum fakat sizden ödevimi çözmekten ziyade yardımlarınızı bekliyorum.
edit: yazdığım kodu eklemeyi unutmuşum.
Kod:
Option Explicit
Function Q1(a, b) As Double
Q1 = (a ^ 2 - 3 * b) / 9
End Function
Function R1(a, b, c) As Double
R1 = (2 * a ^ 3 - a * 9 * b + 27 * c) / 54
End Function
Sub question3()
Dim a, b, c, d, pi, O, Z, root1, root2, root3 As Double
MsgBox "This program solves quadratic equation in the form of x3+ax2+bx+c=0"
a = InputBox("Please enter the value of a")
b = InputBox("Please enter the value of b")
c = InputBox("Please enter the value of c")
pi = Application.pi()
O = ((2 * a ^ 3 - a * 9 * b + 27 * c) / 54) / (((a ^ 2 - 3 * b) / 9) ^ 1 / 3)
Z = Application.Acos(O)
If ((R1(a, b, c) ^ 2) < (Q1(a, b) ^ 3)) Then
root1 = (-2 * Sqr(Q1(a, b)) * Cos(Z / 3 - a / 3))
root2 = (-2 * Sqr(Q1(a, b)) * Cos(Z + 2 * pi) / 3 - a / 3)
root3 = (-2 * Sqr(Q1(a, b)) * Cos(Z - 2 * pi) / 3 - a / 3)
MsgBox "First root of the equation is : " & root1 & vbNewLine & vbNewLine & "Second root of the equation is : " & root2 & vbNewLine & vbNewLine & "Third root of the equation is : " & root3
Else
MsgBox "Your entries do not meet the required condition"
End If
End Sub