作业帮 > 数学 > 作业

vb程序改错 求解一元二次方程(ax^2+bx+c=0)的程序

来源:学生作业帮 编辑:大师作文网作业帮 分类:数学作业 时间:2024/11/10 20:18:21
vb程序改错 求解一元二次方程(ax^2+bx+c=0)的程序
求解一元二次方程(ax^2+bx+c=0)的程序
Private Sub Command1_Click()
Dim a As Integer,b As Integer,c As Integer,d As Integer
Dim x1 As Single,x2 As Single
InputBox ("a=")
InputBox ("b=")
InputBox ("c=")
d = Sqr(b * b - 4 * a * c)
x1 = (-b + d) / (2 * a)
x1 = (-b - d) / (2 * a)
Print "x1="; x1,"x2="; x2
End Sub
请问错在哪里
vb程序改错 求解一元二次方程(ax^2+bx+c=0)的程序
两处错误,第一个,没有赋值过程 ,应该改为:
a=InputBox ("a=")
b=InputBox ("b=")
c=InputBox ("c=")
第二个:x1 = (-b - d) / (2 * a)应该是
x2 = (-b - d) / (2 * a)
另外d有开方过程 ,最好设为 double而不是 integer
最好再加个判断判别式的过程:
Private Sub Command1_Click()
Dim a As Integer,b As Integer,c As Integer,d As Double
Dim x1 As Single,x2 As Single
a = InputBox("a=")
b = InputBox("b=")
c = InputBox("c=")
d = b * b - 4 * a * c
If d < 0 Then
MsgBox "判别式小于0"
Exit Sub
End If
d = Sqr(d)
x1 = (-b + d) / (2 * a)
x2 = (-b - d) / (2 * a)
Print "x1="; x1,"x2="; x2
End Sub
再问: a = InputBox("a=") b = InputBox("b=") c = InputBox("c=") 可不可以加 a = val(InputBox("a=")) b = val(InputBox("b=")) c = val(InputBox("c=")) 加了又什么不同
再答: 因为前面定义了a,b,c的类型是interger,所以可以不加,会自动转换,加val是为了代码规范,效果是一样的。
再问: Private Sub Command1_Click() A = InputBox("A=", "输入") B = InputBox("B=", "输入") Max = (A + B) / 2 + Abs(A - B) / 2 Print "MAX="; Max End Sub 输入2和5得到答案14 为什么 请问(A+B)看成25,怎样写才看成2+5呢
再答: 就是你刚才前面的问题,加定义 dim a,b as integer,或者 a = val(InputBox("a=")) b = val(InputBox("b=")) 否则会被当成字符串运算,即 A & B,进行连接,然后再转换成数字进行运算
再问: 那该程序应该怎样改写呢?
再答: 晕,不是给你改好了?把那两句换掉就行了
再问: 谢谢,不好意思,vb我现在是不太懂呢。多谢你的支持