主题:请求帮助!
pym0411
[专家分:0] 发布于 2012-08-07 12:20:00
在方程 f(x)=0的求根的问题中,我在 visual basic 的“通用”段中,建立函数过程如下:
Function f(x) As Double
f = x ^ 3 - x - 1
End Function
问题是每解一个问题时,函数的表达式都不同。用户在使用此软件时,要在源程序中修改表达式,这显然是不妥的。
哪位高手能解决此问题?不胜感谢!
我的邮址是:pym0411@sina.com .
我要求的是:在VB中如何在求解不同方程时,可不在代码中修改 f(x) 的表达式,而能供其他过程(例如二分法、弦截法。)调用。
我编写的是求解方程 f(x)=0 的满足精度要求的近似根的程序,求解问题已解决,只是输入方法不好。
回复列表 (共1个回复)
沙发
老大徒伤悲 [专家分:29120] 发布于 2012-08-07 21:06:00
在界面放一个文本框,用来输入关于x的函数,这个函数的正确性必须用户自己保证,很难(不是不能)用vb来检测。
然后参照一下内容自己制作:
界面三按钮两文本框。代码为
Public X As Boolean
Private Sub Command1_Click()
Text2 = 计算(Text1)
If X Then Text2 = "你的算式有问题,请注意查对!"
Command1.Default = False
Command2.Default = True
End Sub
Function 计算(ByVal 代数式 As String) As Double
Dim OBJ As Object
On Error GoTo 错误代码
X = False
Set OBJ = CreateObject("MSScriptControl.ScriptControl")
OBJ.Language = "vbscript"
计算 = OBJ.Eval(代数式)
Set OBJ = Nothing
Exit Function
错误代码:
X = True
End Function
Private Sub Command2_Click()
Text1 = ""
Text1.SetFocus
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
Command1.Caption = "计算"
Command1.Move 600, 1680, 1215, 495
Command2.Caption = "输入算式"
Command2.Move 600, 600, 1215, 495
Command3.Caption = "关闭"
Command3.Move 6000, 2500, 1215, 495
Text1 = ""
Text1.FontSize = 20
Text1.Move 2000, 600, 5000, 495
Text2 = ""
Text1.FontSize = 20
Text2.Move 2000, 1680, 5000, 495
Me.Move (Screen.Width - 8000) / 2, (Screen.Height - 4000) / 2, 8000, 4000
End Sub
Private Sub Text1_Change()
Command1.Default = True
End Sub
我来回复