注册 登录
编程论坛 VB6论坛

求各位大师指导怎么用VB编程求导数

yanzhaoochao 发布于 2016-03-08 21:07, 3272 次点击
用VB设计成需求导数表达式,数学+编程
  就是例如,函数 y=SinX 的导数是 y=CosX ,又例如:函数 y=X^2 的导数是 y=2*X 。
 现在要求是,在文本框里输入一个任意的函数解析式,然后通过程序把导数求出来,注意,是要像上面的那种表达式,就是程序输出的是一个字符串,而不是导数的值。
4 回复
#2
wds12016-03-11 11:09
设置3个文本框Text1,Text2,Text3,2命令框command
Private Sub Command1_Click()
 Text1.Text = Sin(Val(Text3.Text))
 Text2.Text = Cos(Val(Text3.Text))
End Sub

Private Sub Command2_Click()
Text1.Text = (Val(Text3.Text)) ^ 2
Text2.Text = 2 * (Val(Text3.Text))
End Sub
text3数值,text1,和text2就会显示原值,和导数值
#3
wds12016-03-11 11:24
刚才理解有误,重新发表
设置3个文本框Text1,Text2,Text3,1命令框command
text1:输入公式
text2:显示数值
text3.输入变量x

Private Sub Command1_Click()
  Dim temp(4)
  temp1 = Array(3, "sin", "cos", "^", "*") '定义运算符数组
  For i = 1 To 4
   temp(i) = temp1(i)
  Next i
  m = Mid$(Text1.Text, 3, Len(Text1.Text) - 3)'取运算符
  Select Case m'根据运算符执行相应操作,
  Case "sin"
      Text2.Text = Sin(Val(Text3.Text))
  Case "cos"
      Text2.Text = Cos(Val(Text3.Text))
  Case "^"
      Text2.Text = (Val(Text3.Text)) ^ 2
  Case "*"
      Text2.Text = 2 * (Val(Text3.Text))
  End Select
End Sub

[此贴子已经被作者于2016-3-11 12:02编辑过]

#4
yanzhaoochao2016-03-11 19:16
回复 3楼 wds1
老师,您好。我刚试了您写的程序,怎么不行啊
只有本站会员才能查看附件,请 登录
#5
wds12016-03-12 06:11
m = Mid$(Text1.Text, 3, Len(Text1.Text) - 3)
这个函数,我取的是第三个字符到最后第二个字符
例如y=sinx,那么取的运算符为sin
如果你直接写sinx,语句改为
m = Mid$(Text1.Text, 1, Len(Text1.Text) - 1)
给你详细解释一下
Private Sub Command1_Click()
  Dim temp(4)
  temp1 = Array(3, "sin", "cos", "^", "*")
  '定义运算符数组,赋值后temp1(0)=3,temp1(1)="sin",temp1(2)="cos",temp1(1)="^",temp1(1)="*"
  For i = 1 To 4
   temp(i) = temp1(i)
  Next i
 m = Mid$(Text1.Text, 1, Len(Text1.Text) - 1)
  '取运算符 mis$取字符,参数1:text1.text你输入的公式,参数2:1取text1.text的第1个开始字符,参数3:len(text1.text)-1,取你输入的公式总长度-1的字符个数
   '如果想看M值是否正确,可以此处加一个弹出框框语句 msgbox m
  Select Case m'根据M的值选择运算符执行相应操作,
  Case "sin"
      Text2.Text = Sin(Val(Text3.Text))'将字符类型转换为数值型,并执行sin操作
  Case "cos"
      Text2.Text = Cos(Val(Text3.Text))
  Case "^"
      Text2.Text = (Val(Text3.Text)) ^ 2
  Case "*"
      Text2.Text = 2 * (Val(Text3.Text))
  End Select
End Sub




[此贴子已经被作者于2016-3-12 06:12编辑过]

1