请问各路高手,有这样一道提,该如何做?
aX^2+bX+c=0
当a>0   b^2+4ac>0
        b^2+4ac=0
        b^2+4ac<0
当a=0   b^2+4ac>0
        b^2+4ac=0
        b^2+4ac<0
当a<0   b^2+4ac>0
        b^2+4ac=0
        b^2+4ac<0
时求出X的值
我要原程序,最好加上讲解,谢谢!
E-mail:[email protected]

解决方案 »

  1.   

    dim ls,x1,x2 as float
    if a>0 or a<0 then
     ls=sqr(b*b-4ac)
     if ls>=0 then
       x1=(-b+ls)/(2*a)
       x2=(-b+ls)/(2*a)
      else
       msgbox "error"
      end if
    else
     x1=x2=-c/b
    end ifнезнаю
      

  2.   

    Sub calu()
      Dim a As Single
      Dim b As Single
      Dim c As Single
      Dim x1 As Single
      Dim x2 As Single
      Dim t As Single
      Dim y As Single
      a = Int(InputBox(输入a的值))
      b = Int(InputBox(输入b的值))
      c = Int(InputBox(输入c的值))
      t = b ^ 2 + 4 * a * c
      y = b ^ 2 - 4 * a * c
      If a = 0 Then
         If t = 0 And c = 0 Then x1 = 0: x2 = x1: Print x1
         If t = 0 And c <> 0 Then Print "无解"
         If t <> 0 Then
            If b <> 0 Then x1 = -c / b: x2 = x1: Print x1
         End If
     End If
     If a > 0 Or a < 0 Then
        If y = 0 Then x1 = (-1 * b) / (2 * a): x2 = x1: Print x1
        If y > 0 Then x1 = (-1 * b + Sqr(y)) / (2 * a): x2 = (-1 * b - Sqr(y)) / (2 * a): Print x1, x2
        If y < 0 Then
           Print "x1="; -1 * b / (2 * a) & "+" & Sqr(-y) / (2 * a) & "i",
           Print "x2="; -1 * b / (2 * a) & "-" & Sqr(-y) / (2 * a) & "i"
        End If
    End If
    End Sub
    Private Sub Command1_Click()
     calu
    End Sub
    看不懂你那个a<>0时,判断b^2+4ac干吗用
      

  3.   

    对不起,出了点错
    这三句改称下面 
    a = CSng(InputBox(输入a的值))
      b = CSng(InputBox(输入b的值))
      c = CSng(InputBox(输入c的值))