在学习VB时,有一个“二次方程求根”的程序,为什么算出来的结果与书上的不同,是错误的?程序代码见下!

作者&投稿:謇怀 (若有异议请与网页底部的电邮联系)
1元的二次方程的求根公式~

ax²+bx+c=0
x=【-b±√(b²-4ac)】/2a

一元二次方程求根公式:
当Δ=b^2-4ac≥0时,x=[-b±(b^2-4ac)^(1/2)]/2a
当Δ=b^2-4ac<0时,x={-b±[(4ac-b^2)^(1/2)]i}/2a(i是虚数单位)
一元二次方程配方法:
ax^2+bx+c=0(a,b,c是常数)
x^2+bx/a+c/a=0
(x+b/2a)^2=(b^2-4ac)/4a^2
x+b/2a=±(b^2-4ac)^(1/2)/2a
x=[-b±(b^2-4ac)^(1/2)]/2a


注:b^2是指b的平方

二次方程的求根公式是x=(-b±√(b²-4ac))/(2a)

因此,程序中的CmdComputer_Click过程有错,而且x2打错成了xl2,应改为:
Private Sub CmdComputer_Click()
a = Val(txta.Text)
b = Val(txtb.Text)
c = Val(txtc.Text)
d = b ^ 2 - (4 * a * c)
xl = (- b + Sqr(d)) / (2 * a) ‘此处把p改为了-b
x2 = (- b - Sqr(d)) / (2 * a) ’此处把p改为了-b,把xI2改为了x2
MsgBox "xl=" + Str(xl) + "" + "x2=" + Str(X2), , "二次方程的两根"
End Sub

或改为:
Private Sub CmdComputer_Click()
a = Val(txta.Text)
b = Val(txtb.Text)
c = Val(txtc.Text)
d = b ^ 2 - (4 * a * c)
p = -b / (2 * a)
xl = p + Sqr(d) / (2 * a) ‘此处p不需再次除以2*a
x2 = p - Sqr(d) / (2 * a) ‘此处p不需再次除以2*a
MsgBox "xl=" + Str(xl) + "" + "x2=" + Str(X2), , "二次方程的两根"
End Sub

另外,为了防止方程无实根的情况,可以加上一个选择语句,改为:
Private Sub CmdComputer_Click()
a = Val(txta.Text)
b = Val(txtb.Text)
c = Val(txtc.Text)
d = b ^ 2 - (4 * a * c)
Select Case d '判断△是否大于0
Case Is > 0
xl = (- b + Sqr(d)) / (2 * a)
x2 = (- b - Sqr(d)) / (2 * a)
MsgBox "xl=" + Str(xl) + "" + "x2=" + Str(X2), , "二次方程的两根"
Case 0
xl = - b / (2 * a)
MsgBox "xl=x2=" + Str(xl), , "二次方程的两根"
Case Is < 0
MsgBox "二次方程无实根", , "二次方程无实根"
End Select
End Sub

xl2 = (p - Sqr(d)) / (2 * a)
MsgBox "xl=" + Str(xl) + "" + "x2=" + Str(X2), , "二次方程的两根"
很久没接触vb 了,大致看了下,定义的XL2下面变成了X2,你再试试


在学习VB时,有一个“二次方程求根”的程序,为什么算出来的结果与书上...
二次方程的求根公式是x=(-b±√(b²-4ac))\/(2a)因此,程序中的CmdComputer_Click过程有错,而且x2打错成了xl2,应改为:Private Sub CmdComputer_Click()a = Val(txta.Text)b = Val(txtb.Text)c = Val(txtc.Text)d = b ^ 2 - (4 * a * c)xl = (- b + Sqr(d)) ...

在学习VB时遇到一个问题,具体情况在问题补充里面,盼各位赐教!谢谢_百度...
如果你单独用这个肯定应该是回复 right 的!

大家好,我在学习VB时发生的一个问题
他们不是在菜单栏里的,是在左边的工具箱中,有的大写的A的就是标签控件,命令按钮控件则是写在小写ab的下面的那个就是。分别单击这两个控件,然后画到窗体上即可,或者直接在控件上双击,然后在属性窗口中,修改它们的名称分别为lblShow,和CmdOK ...

学习VB看了教程总有很多的不懂得东西,比如给你一个例子,是不是非得...
怎么说呢~有许多东西过后你再去看它,就很简单了~ 现在搞不全懂不要紧,坚持下去,过后你回过来看的时候就会明白了~!能看懂是最好的~!

vb中的一个对象对应一个事件
在Visual Basic 里,方法和事件是这样的:事件:Private Sub对象名_事件名 (事件内容)End Sub 方法:对象名.方法名 所以方法是一个简单的不必知道细节的无法改变的事件,同样,方法也不是随意的,一些对象有一些特定的方法。如果以上概念你记不住,不要紧,实践中你会明白一切,请继续学习。

VB和.Net——关于学vb的困惑(vb与vbnet)
我一开始学的是VB,但学会后,也就是楼主你的样子,后来学C,觉得C太垃圾了,这可能和VB的简单形成对比,C语言学会后就再也没用,后来直接由VB升级到VB.NET,的确,如同楼主所说,.NET是比较简单,但是有个后遗症,是现在我都烦的,就是编译的软件必须要在有.NET的电脑上运行,XP是不带.NET的...

VB中出现以下错误怎么解决?我是初学者啊. 发现二义性的名称:command1_c...
程序中出现了两个 Private Sub Command1_Click 也就是说出现了两个同名称的子过程,这是不允许的,当点击按钮后,你让VB究竟执行哪个子过程啊?就好比有人说“我爸是李刚”后,两个人同时站起来说“我就是李刚”,这让VB情何以堪啊,呵呵。另外,你这个Command1究竟是单个按钮,还是控件数组啊?看...

我刚刚学习VB,编了下面一个关于计算的程序,调试时提示:错误5,无效的...
你那个R的表达式中,有一个参数写错了,kongzhijing写成kongzhiing了,这样,它默认值是0,肯定没法Log,所以会报错的 为了防止这种变量被不小心写错的问题,建议在程序代码最上端加一句,便于检查:Option Explicit

vb编程是什么意思,主要干嘛的?
VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。 主要优点: 1,简单易学。 2,开发速度快。 3,可读性很好。 学习起来很快,比用C好多了(C需要比较扎实的英文功底,而且类的库很大,比...

学习VB 要学什么
为什么出现代码工人,其实主要的原因是程序员的水平差距很大,好多人完不成独立的任务,最终会倒致一个工程的失败,所以才后出现了软件工程这些概念,通过有效的管理,分工,使即时只会一些简单编码的人也能完成一个独立的工作。2、下定绝心:学VB需要很长时间的努力,要有恒心和毅力。学习任何编程语言都...

亚东县15322203430: 关于VB根式计算 -
敞残奈邦: 一元二次的求根公式可以写成VB试为 根一:(-b+(4*a*c-b^2)^(1/2))/(2*a) 根二:(-b-(4*a*c-b^2)^(1/2))/(2*a) 比如方程ax^2+bx+c=o只要给计算机输入a,b,c 按以上公式就可以求出~~ 比如:a=inputbox("a=")b=inputbox(...

亚东县15322203430: 用VB程序编写:问题;创建一个工程来计算一元二次方程的根.要求 输入一元二次方程的系数,求出方程的根 -
敞残奈邦: 创建text1,text2,text3 dim a,b,c,x1,x2 '声明变量 val(text1.text)=a val(text2.text)=b val(text3.text)=c '给变量赋值 if b^2-4ac>=0 then x1=(-b+sqr(b^2-4ac))/2a x2=(-b-sqr(b^2-4ac))/2a '利用求根公式计算 print "方程的解为:" & x1 & ";" & x2 else print "方程没有实数解" end if '判断并输出结果

亚东县15322203430: 求一个vb程序 - 求二次方程的根 -
敞残奈邦: Private Sub Command1_Click() Dim a, b, c a = 1: b = -5: c = 6 Print a, b, c & vbNewLine & fc(a, b, c) End Sub Function fc(a, b, c) Dim t Select Case a Case 0: fc = "不是一元二次方程" Case Else t = b ^ 2 - 4 * a * c Select Case t Case 0: fc = "有...

亚东县15322203430: 用vb编写一个程序求一元二次方程ax2+bc+c=0的根 -
敞残奈邦: 用^表示幂,当b^2-4ac≥0时的根为.x=(-b±√(b^2-4ac))/(2a)称为一元二次方程的求根公式当b^2-4ac>0时,有两个不同的根当b^2-4ac=0时,有两个相同的根当b^2-4acDim a, b, c a = CDbl(InputBox("输入a值:")) b = CDbl(InputBox("输入b值:")...

亚东县15322203430: VB编程:求一元二次方程的根,判断所有可能的情况(实根)
敞残奈邦: a = Val(Text1.Text) b = Val(Text2.Text) c = Val(Text3.Text) If b ^ 2 - 4 * a * c > 0 Then x1 = (0 - b + Sqr(b ^ 2 - 4 * a * c)) / (2 * a) x2 = (0 - b - Sqr(b ^ 2 - 4 * a * c)) / (2 * a) MsgBox "方程有两个不相等的实数根" ElseIf b ^ 2 - 4 * a * c = 0 Then x1 = (0 - b...

亚东县15322203430: vb编写一个程序,根据输入的系数求一元二次方程ax2+bx+c=0的根,要求考虑实根、虚根等情况,如果系数使得方程没有实数根,则弹出一个只有确定按钮... -
敞残奈邦:[答案] Public Class Form1Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDim a, b, c, dt, s, s1, s2 As Stringa = Val(TextBox1.Text)b = Val(TextBox2....

亚东县15322203430: 如何用vb设计计算二次方程的根的程序 -
敞残奈邦: elseif连起来就行了Private Sub Command1_Click()Dim a As Single, b As Single, c As Single, d As Singlea = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)d = b ^ 2 - 4 * a * cIf d > 0 ThenLabel8.Caption = (-b + Sqr(d)) / (2 * a)Label10....

亚东县15322203430: VB:一元二次方程算法中求根公式如何做复数处理? -
敞残奈邦:[答案] MsgBox "请输入完整的数值,然后点击“开始计算”!"Text1.SetFocusText1.Text = ""Text2.Text = "" '清空用户名和密码等待重新输入Text3.Text = ""Text4.Text = ""Text5.Text = ""Label15.Caption = ""End IfIf m >= ...

亚东县15322203430: 用VB编程求一元二次ax*x+bx+c=0的根,要用求根公式
敞残奈邦: Private Sub Command1_Click() a = Val(InputBox("“a=”")) b = Val(InputBox("“b=”")) c = Val(InputBox("“c=”")) D = b ^ 2 - 4 * a * c If a = 0 Then MsgBox " “a” 不能等于零" Else If D > 0 Then P = -b / (2 * a) X1 = P + Sqr(D) / (2 * a) ...

亚东县15322203430: 求一元二次方程ax^2+bx+c=0的根.用VB语言怎么编?知道的都来帮帮忙,急...谢谢啦! -
敞残奈邦: Private Sub Command1_Click() Dim A As Single, B As Single, C As Single Dim R1 As Single, R2 As Single A = Val(Text1.Text) B = Val(Text2.Text) C = Val(Text3.Text) If B ^ 2 - 4 * A * CMsgBox "该方程无解." ElseIf B ^ 2 - 4 * A * C = 0 Then ...

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网