懂VB和数学的进来看一下这道解二元一次方程的代码有没有问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 00:21:43
Dim a, b, c As Double
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
If b ^ 2 - 4 * a * c = 0 Then
Text4.Text = -b / (2 * a)
Text5.Text = -b / (2 * a)
ElseIf b ^ 2 - 4 * a * c > 0 Then
Text4.Text = (-b + (b ^ 2 - 4 * a * c) ^ 0.5) / (2 * a)
Text5.Text = (-b - (b ^ 2 - 4 * a * c) ^ 0.5) / (2 * a)
Else
Text4.Text = "无解"
Text5.Text = "无解"
End If
好像有问题...计算出问题了..
If b ^ 2 - 4 * a * c = 0 Then 这个分支没问题
问题在第二个分支
1楼的代码我试了...出来的结果一样....跟我原来的代码结果一样...

Dim a As Double , b As Double , c As Double

修改:
a = Text1.Text
b = Text2.Text
c = Text3.Text
If b ^ 2 - 4 * a * c = 0 Then

修改:
x=-b / (2 * a)
Text4.Text =str(x)
Text5.Text =str(x)

ElseIf b ^ 2 - 4 * a * c > 0 Then

修改:
x1=((b ^ 2 - 4 * a * c) ^ 0.5-b) / (2 * a)
x2=-(b + (b ^ 2 - 4 * a * c) ^ 0.5) / (2 * a)
Text4.Text =str(x1)
Text5.Text =str(x2)

Else
t="无解"
Text4.Text =t
Text5.Text =t
End If

问题的关键在于各Text控件的数据类型要前后相一致。

请说明你的具体问题在哪儿?
我估计不是算法问题,因为表达式都没错误。

首先,你这个……是一元二次方程的解……
其次,你这个程序没有问题……我运行的解都是正确的

我有一段类似的源代码,我可以发给你
QQ 649313572