十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
(-b+(b^2-4ac))/(2a) (-b+(b^2-4ac))/(2a) 是2个根
十余年的洪雅网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整洪雅建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“洪雅网站设计”,“洪雅网站推广”以来,每个客户项目都认真落实执行。
Delta = b * b - 4 * a * c '求得b*b-4*a*c并存放在变量Delta中
If Delta = 0 Then '如果Delta的值为0
Re = -b / (2 * a)
b * b - 4 * a * c=b^2-4ac=0
-b/(2a)是唯一解
如果不能直接算,那就只有逼近的方法了。
例:
a从0到1000循环,每次+1
每次比较a*X的结果是否大于等于y,等于的话就出结果。
大于y时,a从a-1到a循环,每次+0.001
每次比较a*X的结果是否大于等于y,等于的话就出结果。
。。。
根据循环次数和布进,可以得到一个小数位数的精度,以上循环可以得到一个精确度达到0.001的结果了。
很明显你的程序陷入了无限循环
计算一元二次方程解有专门的公式,何必这样麻烦
dim x1 as single,x2 as single,tmpsng as single
tmpsng= b^2-4*a*c
if tmpsng=0 then
x1=(-b+tmpsng^0.5)/(2*a)
x2=(-b-tmpsng^0.5)/(2*a)
endif
不是已经回答了吗?
运行界面如下图:
在对应的文本框里输入对应的坐标值,单击【计算】,结果将显示在下面一个文本框里,完整代码如下:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x2, y2, x3, y3, x4, y4, x5, y5 As Single
Dim L As Single
x2 = Val(TextBox2.Text)
y2 = Val(TextBox3.Text)
x3 = Val(TextBox4.Text)
y3 = Val(TextBox5.Text)
x4 = Val(TextBox6.Text)
y4 = Val(TextBox7.Text)
'求点P3(x3,y3)与点P4(x4,y4)的直线方程;
'(X-x4)/(x3-x4) = (Y-y4)/(y3-y4) ......(1)
'求过点P2(x2,y2)的水平直线方程为;
'Y = y2 ......(2)
'方程(1)(2) 联立可以求出两条直线的交点(x5,y5)
'由此得到交点坐标为:
x5 = (y2 - y3) * (x4 - x3) / (y4 - y3) + x3
y5 = y2
'求点P2(x2,y2)与点P5(x5,y5)之间的距离
'根据两点之间距离公式有;
L = ((x2 - x5) ^ 2 + (y2 - y5) ^ 2) ^ 0.5
TextBox1.Text = L
End Sub
End Class
注意只能对整型执行按位运算。浮点值必须转换为整型后,才能执行按位运算。按位运算采用二进制(以 2 为基)形式计算两个整数值。它们比较对应位置上的位,然后基于比较的结果赋值。下面的示例演示了 And 运算符。复制Dim x As Integerx = 3 And 5 前面的示例将 x 的值设置为 1。发生这种情况的原因如下:这些值以二进制形式处理:二进制格式的 3 为 011二进制格式的 5 为 101And 运算符比较这些二进制表示方式,一次比较一个二进制位置(位)。如果给定位置的两个位都为 1,则将 1 放在结果中的该位置。如果任何一个位是 0,则将 0 放在结果中的该位置。在前面的示例中,按如下所示计算结果:011(二进制格式的 3)101(二进制格式的 5)001(二进制格式的计算结果)计算结果以十进制形式处理。值 001 是 1 的二进制表示形式,因此 x = 1。除了在任何一个比较位是 1 或两个比较位都是 1 的情况下将 1 赋予结果位以外,按位 Or 运算与此类似。Xor 在比较的位正好只有一个是 1(而不是两者都是 1)时将 1 赋给结果位。Not 采用单个操作数并反转所有位(包括符号位),然后将该值赋予结果。这意味着,对于有符号正数,Not 始终返回负值,而对于负数,Not 始终返回正值或零。AndAlso 和OrElse 运算符不支持按位运算。 追问: 好复杂啊...还是不会,还有整数怎么转换为二进制数? 回答: 为什么一定要用位运算呢,你那个乘法只能通过左移操作符“ ”来进行,而左移一次代表乘以2,要是乘以一个小数,就必须先化成2的n次方,不够再用加减法调整,很麻烦啊,没必要用位运算啊。。。 追问: 因为我要进行大量的运算,但速度要快,所有用位运算...我也不想啊.. 回答: 那就不该用VB 啊,c/c++在执行效率上是没话说的。 追问: 问题就是不会嘛... 回答: 那你上csdn上发帖效果应该不错 追问: CSDN发了,我发在高性能运算,没人... 回答: 耐心一些,或者你应该发到VB.NET论坛那里。。。