VB很弱智的问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 21:50:16
关于If条件语句的一道试题解答(对一元二次方程axx+bx+c=0,要求其实根,首先要对方程系数a,b,c判断必须满足bb-4ac大于等于零的条件)
If b*b-4*a*c>=0 Then
x1=(-b+Sqr(b*b-4*a*c))/(2*a)
x2=(-b-Sqr(b*b-4*a*c))/(2*a)
Print x1,x2
Else
Print"方程无根“
End
为什么x1=(-b+Sqr(b*b-4*a*c))/(2*a)语句里等于号后要加括号啊?请详细点,简单点啊

-b+sqr(b*b-4*a*c)
第一个括号是到这里的(-b+Sqr(b*b-4*a*c))
如果不加括号 那么 就变成 sqr(b*b-4*a*c)除以(2*a) 再加-b
根据方程根的公式,显然是先sqr(b*b-4*a*c)+(-b)再除以(2*a) 所以加括号
说到底还是运算法则先乘除后加减的优先级问题。

四则运算法则先乘除后加减,为了先算加减必需加括号

在vb中,"+""-"在"*""/"后,先算乘除后算加减.

除非b=0. 那么,结果没有什么变化,否则就会运算错误。

()可以改变运算的优先级,四则运算法则是^、-、*、/、+、-,括号可以改变其优先级,只能使用小括号,其它括号无效。

二次函数必须要先算根的判别式,所以要先在b*b-4ac打上括号,之后再用sqr函数求平方根,之后再加上(-b),最后除以2a

其实这个代码不完整,或者说是不严谨,还应该判断a的值是否为0,这样才严谨