首先请编写一个函数:
Function
gys(n
As
Integer,
m
As
Integer)
As
Integer
Dim r
As
Integer
Dim
temp
As
Integer
r=0
If
(n<m)
Then
temp
=
n
n=m
m=temp
End
If
Do
r
=
n
Mod
m
n
=
m
m
=
r
Loop
While
(r<>0)
gys
= n
End
Function
Function
gbs(n
As
Integer,
m
As
Integer)
As
Integer
gbs
=
(nm)/(gys(n,m))
End
Function
双击按钮“求解”,代码如下:
最大公约数的那个文本框Text
=
gys(Cint(TextBox1Text),Cint(TextBox2Text))
最小公约数的那个文本框Text
=
gbs(Cint(TextBox1Text),Cint(TextBox2Text))
要用程序来开平方,首先你最起码要知道经过自己推导出来的公司,其次再是求精度,你说的nLength是要得到的10进制位数,这个不能给你保证,你得用一个小数位数来表达精度。假如你开一个非常大的数,你的整数部分就可能超过10位,更不要谈精度
方法是这样的:
x表示我要开的数,y表示结果,z是和开方后比较接近的数
y=z+(x-x^2)/2z
也许你还不太明白,具体举例来说明>>
sqr(x)代表开x,即根号x,这个符号不太好打
假如我开5,即求根号5的值
5比4大sqr(4)=2,sqr(9)=3,9比5大,即4<5<9,所以2<sqr(5)<3,我们任取这个范围的一个数,就取25,z=25
y=25+(5-25^2)/252=225
此时比较接近结果的值是225,即z=225
y=225+(5-225^2)/2252=22361112
比较接近了,想要再精确,就再次循环
通过上面的举例,相信你已经发现了用循环来求精度
具体该怎么做,相信你已经知道了
有几个地方要注意:
1、VB中的三角函数的角度全部是用弧度制表示的,如果是度数的话,应先乘以180再除以π转成弧度,再用函数计算结果。
2、VB中直接支持的三角函数有:Sin()、Cos()、Tan(),如果涉及到其它三角函数,可以从下面列出的代码中自己选择相应的函数:
Function
Sec(X)
As
Double
'正割
Sec
=
1
/
Cos(Angle)
End
Function
Function
Csc(X)
As
Double
'余割
Csc
=
1
/
Sin(Angle)
End
Function
Function
Cot(X)
As
Double
'余切
Cot
=
1
/
Tan(Angle)
End
Function
Function
ArcSin(X)
As
Double
'反正弦
ArcSin
=
Atn(X
/
Sqr(-X
X
+
1))
End
Function
Function
ArcCos(X)
As
Double
'反余弦
ArcCos
=
Atn(-X
/
Sqr(-X
X
+
1))
+
2
Atn(1)
End
Function
Function
ArcSec(X)
As
Double
'反正割
ArcSec
=
Atn(X
/
Sqr(X
X
-
1))
+
Sgn((X)
-
1)
(2
Atn(1))
End
Function
Function
ArcCsc(X)
As
Double
'反余割
ArcCsc
=
Atn(X
/
Sqr(X
X
-
1))
+
(Sgn(X)
-
1)
(2
Atn(1))
End
Function
Function
ArcCot(X)
As
Double
'反余切
ArcCot
=
Atn(X)
+
2
Atn(1)
End
Function
Function
HSin(X)
As
Double
'双曲正弦
HSin
=
(Exp(X)
-
Exp(-X))
/
2
End
Function
Function
HCos(X)
As
Double
'双曲余弦
HCos
=
(Exp(X)
+
Exp(-X))
/
2
End
Function
Function
HTan(X)
As
Double
'双曲正切
HTan
=
(Exp(X)
-
Exp(-X))
/
(Exp(X)
+
Exp(-X))
End
Function
Function
HSec(X)
As
Double
'双曲正割
HSec
=
2
/
(Exp(X)
+
Exp(-X))
End
Function
Function
HCsc(X)
As
Double
'双曲余割
HCsc
=
2
/
(Exp(X)
-
Exp(-X))
End
Function
Function
HCot(X)
As
Double
'双曲余切
HCot
=
(Exp(X)
+
Exp(-X))
/
(Exp(X)
-
Exp(-X))
End
Function
Function
HArcsin(X)
As
Double
'反双曲正弦
HArcsin
=
Log(X
+
Sqr(X
X
+
1))
End
Function
Function
HArccos(X)
As
Double
'反双曲余弦
HArccos
=
Log(X
+
Sqr(X
X
-
1))
End
Function
Function
HArctan(X)
As
Double
'反双曲正切
HArctan
=
Log((1
+
X)
/
(1
-
X))
/
2
End
Function
Function
HArcsec(X)
As
Double
'反双曲正割
HArcsec
=
Log((Sqr(-X
X
+
1)
+
1)
/
X)
End
Function
Function
HArccsc(X)
As
Double
'反双曲余割
HArccsc
=
Log((Sgn(X)
Sqr(X
X
+
1)
+
1)
/
X)
End
Function
Function
HArccot(X)
As
Double
'反双曲余切
HArccot
=
Log((X
+
1)
/
(X
-
1))
/
2
End
Function
Private Sub Command1_Click()
n = Val(InputBox("请输入不大于1000的正整数"))
Sum = he(n)
List1AddItem "输入的数为:" & n & "结果为:" & Sum
End Sub
Private Function he(ByVal x%) As Integer
For i = 2 To x - 1
If x Mod i = 0 Then
s = s + i
End If
Next
he = s
End Function
Private Sub Form_Activate()
Dim x, y As Long '不知道x,y能否取float型的 先看整形的
x = InputBox("请输入一个x的值,取值范围为-1000,+1000")
If x < 0 Then
y = x ^ 2 + 1
ElseIf x >= 0 Then
y = x ^ 2 - 1
End If
单分支 和双分支 区别在于 “ ElseIf x >= 0 Then” 换成else 就是单分支的
注意下x和y的取值范围 因为x过大 y的值有可能越界
希望对你有帮助
Print "y=" & y
End Sub
public或private或dim sub或function 函数名(形参表) as 返回值类型
函数内容
end sub或function
调用时,不需要返回值的时候可以call 函数名加实参表,使用括号,比如:call hanshu(a,b,c)
或者函数名后直接写实参表,不用括号,比如: hanshu a,b,c
有返回值时必须有等号赋值,使用括号,比如: result=hanshu(a,b,c)
Sub sswf()
Dim x As Integer, y As Integer
x = CInt(InputBox("请输入一个整数"))
If x Mod 2 = 0 And x Mod 3 = 0 And x Mod 5 = 0 Then
Text1Text = x
y = x x
End If
Print y
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)