当前位置:编程学习 > VB >>

谁精通 VB 编程的 帮忙变革 一元二次方程!

追问:本人不太会编程!、

答案详细点!!

答案:

Dim a, b, c, d, x1, x2 As Double

a = InputBox("请输入a", 0)
b = InputBox("请输入b", 0)
c = InputBox("请输入c", 0)

If a = 0 Then
   If b = 0 Then
      MsgBox "此方程式有误"
   Else
      x1 = -c / b
      MsgBox "x= " + Format(x1)
   End If
Else
   If b = 0 Then
      If -c / a < 0 Then
         MsgBox "此方程无实数根"
      Else
         x1 = Sqr(-c / a)
         x2 = -Sqr(-c / a)
         MsgBox "x1 " + Format(x1) + Chr(13) + "x2= " + Format(x2)
      End If
   Else
      d = b ^ 2 - 4 * a * c
      If d < 0 Then
         MsgBox "此方程无实数根"
      Else
         If c <> 0 Then
            x1 = (-b + Sqr(d)) / (2 * a * c)
            x2 = (-b + Sqr(d)) / (2 * a * c)
            MsgBox "x1 " + Format(x1) + Chr(13) + "x2= " + Format(x2)
         Else
            x1 = 0
            x2 = -b / a
            MsgBox "x1 " + Format(x1) + Chr(13) + "x2= " + Format(x2)
         End If
      End If
   End If
End If

下面的程序利用公式法解方程ax^2 + bx + c = 0,需要输入a、b、c的值才能求解,代码如下:

Option Explicit
Private Sub Form_Activate()
  Dim a, b, c, delta As Double
  a = InputBox("请输入二次项系数:", "参数设置")
  If a = 0 Then MsgBox "二次项系数不能为0!"
  b = InputBox("请输入一次项系数:", "参数设置")
  c = InputBox("请输入常数:", "参数设置")
  delta = b ^ -4 * a * c
  If delta < 0 Then
    Print "原方程无实数根!"
  ElseIf delta = 0 Then
    Print "x1 = x2 =" & Str((-b) / (2 * a))
  Else
    Print "x1 =" & Str((-b + delta ^ (1 / 2)) / (2 * a))
    Print "x2 =" & Str((-b - delta ^ (1 / 2)) / (2 * a))
  End If
End Sub

用求根公式就好了啊

如果你想让程序解方程

就要研究过程的抽象

我以前写过一个,要的花给你发过去

求根公式啊           

纯粹的算法编辑额

我把 x=[-b±√(b^2-4ac)]/(2a)翻译成VB语句:

x1=(-b+Sqr(b^2-4ac))/(2a)

x2=(-b-Sqr(b^2-4ac))/(2a)

x=[-b±√(b^2-4ac)]/(2a)

上一个:简单VB编程问题,随机时间打开网址。
下一个:VB编程里怎么让显示长日期格式

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,