回 帖 发 新 帖 刷新版面

主题:请求帮助!

 

  在方程 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个回复)

沙发

在界面放一个文本框,用来输入关于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

我来回复

您尚未登录,请登录后再回复。点此登录或注册