永发信息网

我想用VB编个二次方程解题器,但式子不知道错哪儿了?

答案:4  悬赏:10  手机版
解决时间 2021-05-07 00:30
  • 提问者网友:雨不眠的下
  • 2021-05-06 12:31

这是界面:

 

 

 

 

代码如下:

Dim a, b, c, d, e As Single
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
d = (Val(-b) + Sqr((Val(b) ^ 2) - Val(4 * a * c))) / (Val(2 * a))
e = (Val(-b) - Sqr((Val(b) ^ 2) - Val(4 * a * c))) / (Val(2 * a))
Text4.Text = d
Text5.Text = e

 

好像是

d = (Val(-b) + Sqr((Val(b) ^ 2) - Val(4 * a * c))) / (Val(2 * a))
e = (Val(-b) - Sqr((Val(b) ^ 2) - Val(4 * a * c))) / (Val(2 * a))

这里错了吧

 

大虾帮帮忙啊

 

最佳答案
  • 五星知识达人网友:轻熟杀无赦
  • 2021-05-06 13:38

先判断是否是可解的,最后在把你那个下面val去掉,还有把d和e改为小数类型如double。这样试试应该没什么问题吧!!

全部回答
  • 1楼网友:鸠书
  • 2021-05-06 16:18
d 和e 这两个根的代码应该不用val 了,直接是d =(-b +sqr(b*b-4*a* c))/2* a
  • 2楼网友:从此江山别
  • 2021-05-06 14:50
兄弟你的  val 用的 太多了 !  Dim a, b, c, d, e As Single   '我建议你直接变成   Dim a, b, c, d, e  算了 !a = Val(Text1.Text)       ;a  都 用 val 转换了   后面就不用  Val 了把  b = Val(Text2.Text)  c = Val(Text3.Text) 推荐一个不错的VB 网站 : http://www.cmd58.com
  • 3楼网友:野慌
  • 2021-05-06 14:14

首先,你这个程序会出现错误答案;

1.你没有保证你输入的三个数是否能是二次方程得到有效的实根。

2.你把变量定义成了整型,但是开平方后有可能是精度型的

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯