数学算式类库 说明书文档格式.docx
- 文档编号:22530274
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:20
- 大小:50.07KB
数学算式类库 说明书文档格式.docx
《数学算式类库 说明书文档格式.docx》由会员分享,可在线阅读,更多相关《数学算式类库 说明书文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
第1级
^
幂,例如:
2^3=8;
3^2=9
第2级
|
分数,例如:
3|2=1.5
第3级
*
乘,例如:
2*3=6;
3*3=9
/
除,例如:
8/2=3;
3/2=1.5
\
整除,例如:
5\3=1;
5\2=2
%
取余,例如:
5%3=2;
5%2=1
-
减,例如:
5-3=2;
5-1=4
第4级
+
加,例如:
5+3=8;
5+1=6
注意:
式子中允许出现大、中、小括号,也允许出现空格;
分数被视为除法运算,但在显示的时候,格式上有所不同。
支持的函数如下表所示:
函数
释义
Abs(数字)
计算数字的绝对值
Acos(d)
计算余弦值为指定数字的角度
参数:
d:
一个表示余弦值的数字,其中-1≤d≤1。
计算值:
角度θ,以弧度为单位,满足0≤θ≤π
Asin(d)
计算正弦值为指定数字的角度
一个表示正弦值的数字,其中-1≤d≤1。
角度θ,以弧度为单位,满足-π/2≤θ≤π/2
Atan(d)
计算正切值为指定数字的角度。
表示正切值的数字。
角度θ,以弧度为单位,满足-π/2≤θ≤π/2。
Atan2(y,x)
计算正切值为两个指定数字的商的角度。
y:
点的y坐标。
x:
点的x坐标。
角度θ,以弧度为单位,满足-π≤θ≤π,且tan(θ)=y/x,其中(x,y)是笛卡尔平面中的点。
请看下面:
如果(x,y)在第1象限,则0<
θ<
π/2。
如果(x,y)在第2象限,则π/2<
θ≤π。
如果(x,y)在第3象限,则-π<
-π/2。
如果(x,y)在第4象限,则-π/2<
0。
如果点在象限的边界上,则计算值如下:
如果y为0并且x不为负值,则θ=0。
如果y为0并且x为负值,则θ=π。
如果y为正值并且x为0,则θ=π/2。
如果y负值并且x为0,则θ=-π/2。
BigMul(a,b)
生成两个32位数字的完整乘积。
a:
第一个乘数
b:
第二个乘数
Ceiling(d)
计算大于或等于指定的十进制数的最小整数。
一个小数。
大于或等于d的最小整数。
Cos(d)
计算指定角度的余弦值。
以弧度计量的角度。
d的余弦值。
Cosh(value)
计算指定角度的双曲余弦值。
value:
Div(a,b)
整除,a是被除数,b是除数
例如:
Div(5,3)=1
Mod(a,b)
取余,a是被除数,b是除数
Mod(5,3)=2
Exp(d)
计算e的指定次幂。
指定幂的数字。
Floor(d)
计算小于或等于指定小数的最大整数。
小于或等于d的最大整数。
Log(d)
计算指定数字的自然对数(底为e)。
要查找其对数的数字。
Max(val1,val2)
计算两个数中较大的一个。
val1:
要比较的两个数中的第一个。
val2:
要比较的两个数中的第二个。
val1或val2参数中较大的一个。
Min(val1,val2)
计算两个数中较小的一个。
要比较的两个数中的第一个。
要比较的两个数中的第二个。
val1或val2参数中较小的一个。
Pow(x,y)
计算指定数字的指定次幂。
要乘幂的双精度浮点数。
指定幂的双精度浮点数。
数字x的y次幂。
Round(a)
将双精度浮点值舍入为最接近的整数。
要舍入的双精度浮点数。
最接近a的整数。
如果a的小数部分正好处于两个整数中间,其中一个整数为偶数,另一个整数为奇数,则计算偶数。
Sign(value)
计算表示双精度浮点数字的符号的值。
有符号的数字。
表示value的符号的数字。
数字
说明
-1
value小于零
value等于零
1
value大于零
Sin(a)
计算指定角度的正弦值。
a的正弦值
Sinh(value)
计算指定角度的双曲正弦值。
Sqrt(d)
计算指定数字的平方根。
数字。
Tan(a)
计算指定角度的正切值。
Tanh(value)
计算指定角度的双曲正切值。
Truncate(d)
计算指定小数的整数部分。
要截断的数字。
d的整数部分(即舍弃小数位后剩余的数)。
实例
实例1:
把JHL=1982作为常量添加到其中
方法1:
在设计时,通过属性窗口,双击[常量]一行的右边,在弹出的窗口中,添加一行:
JHL=1982
方法2:
在运行时,通过“常量Value”的添加方法去添加;
实例2:
自定义一个函数名为“PJ”的函数,用于计算多个数的平均数
第1步:
在[函数名]属性中添加函数名“PJ”;
第2步:
在“计算自定义函数”事件中编写响应“PJ”的代码,例如:
PrivateSubForm1_Load(……)HandlesMyBase.Load
算式子1.函数名Value.Add("
PJ"
)
EndSub
PrivateSub算式子1_计算自定义函数(……ByVal函数名AsSystem.String,
ByVal参数()AsSystem.Double,ByRefresultAsSystem.Double)Handles算式子1.计算自定义函数
If函数名.ToUpper="
Then
DimrAsDouble=Double.NaN
ForEachiAsDoubleIn参数
IfDouble.IsNaN(r)Then
r=i
Else
r=r+i
EndIf
Next
r=r/参数.Count
result=r
实例3:
把计算式子的过程灵活地显示出来
这就需要用到“每一步”事件,这个事件在‘每计算完一步’后就被触发,可以按照下面的格式去写:
PrivateSub算式子1_每一步(……ByVal式子AsSystem.String)Handles算式子1.每一步
'
把每一步都显示到TextBox3
TextBox3.AppendText(式子&
vbCrLf)
刚被计算出来的值用<
I>
和<
/I>
括起来
下一步要计算的部分用<
B>
/B>
EndSub
为了讲清楚这个VB第三方类库的用法,我编写实例程序:
金海龙算式子.zip,
欢迎通过我的博客上的链接免费下载。
这个程序的界面如下:
Form1中从上到下依次是三个TextBox,第三个TextBox是个多行文本框,用于保存每一步的计算结果,都是HTML格式。
把TextBox3中的代码做成一张网页,代码如下:
<
pre>
1+2-8/2^2*<
{10-[Pow(2,3)]}<
1+2-8/2^2*{10-<
[Pow(2,3)]<
}
1+2-8/2^2*{10-[<
Pow(2,3)<
]}
[<
8<
]<
1+2-8/2^2*{10<
-<
{<
2<
}<
1+2-8/2<
^<
2*<
1+2-8<
/<
4<
*2
1+2-<
*<
2
1<
+<
2-<
3<
4
-1<
/pre>
用IE8打开后,就是下面的样子:
粗体的部分是“即将要被计算的”;
斜体的部分是“已经被计算出来的值”。
只要稍微改一改其Style或者CSS,就可以做出格式更好的教学题课件。
相关代码如下:
Form1.vb:
Imports数学算式类库
PublicClassForm1
一、单击Button1开始计算TextBox1中的式子,计算完毕后把结果保存到TextBox2,并且把每一步都显示到TextBox3
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
单击Button1开始计算TextBox1中的式子
Me.TextBox3.Clear()
Me.算式子1.式子=Me.TextBox1.Text
Me.算式子1.计算()
TextBox2.Text=算式子1.结果Value'
如果不写这一行的话,可以仿照下面的Sub
PrivateSub算式子1_结果Changed(ByValsenderAsSystem.Object)Handles算式子1.结果Changed
计算完毕后把结果保存到TextBox2
TextBox2.Text=算式子1.结果Value
PrivateSub算式子1_每一步(ByValsenderAsSystem.Object,ByVal式子AsSystem.String)Handles算式子1.每一步
***********************************************************************************
二、增加一个用于计算平均数的函数:
PJ(数字1,数字2,数字3,……)
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
PrivateSub算式子1_计算自定义函数(ByValsenderAsSystem.Object,ByVal函数名AsSystem.String,ByVal参数()AsSystem.Double,ByRefresultAsSystem.Double)Handles算式子1.计算自定义函数
EndClass
Form1.Designer.vb:
Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
_
PartialClassForm1
InheritsSystem.Windows.Forms.Form
Formoverridesdisposetocleanupthecomponentlist.
<
System.Diagnostics.DebuggerNonUserCode()>
ProtectedOverridesSubDispose(ByValdisposingAsBoolean)
Try
IfdisposingAndAlsocomponentsIsNotNothingThen
components.Dispose()
Finally
MyBase.Dispose(disposing)
EndTry
RequiredbytheWindowsFormDesigner
PrivatecomponentsAsSystem.ComponentModel.IContainer
NOTE:
ThefollowingprocedureisrequiredbytheWindowsFormDesigner
ItcanbemodifiedusingtheWindowsFormDesigner.
Donotmodifyitusingthecodeeditor.
System.Diagnostics.DebuggerStepThrough()>
PrivateSubInitializeComponent()
Mponents=NewSystem.ComponentModel.Container()
Me.Button1=NewSystem.Windows.Forms.Button()
Me.Label1=NewSystem.Windows.Forms.Label()
Me.TextBox1=NewSystem.Windows.Forms.TextBox()
Me.TextBox2=NewSystem.Windows.Forms.TextBox()
Me.Label2=NewSystem.Windows.Forms.Label()
Me.算式子1=New数学算式类库.算式子(Mponents)
Me.TextBox3=NewSystem.Windows.Forms.TextBox()
Me.SuspendLayout()
Button1
Me.Button1.Anchor=CType((System.Windows.Forms.AnchorStyles.TopOrSystem.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
Me.Button1.Location=NewSystem.Drawing.Point(363,9)
Me.Button1.Name="
Button1"
Me.Button1.Size=NewSystem.Drawing.Size(74,24)
Me.Button1.TabIndex=0
Me.Button1.Text="
计算(&
C)"
Me.Button1.UseVisualStyleBackColor=True
Label1
Me.Label1.AutoSize=True
Me.Label1.Location=NewSystem.Drawing.Point(12,9)
Me.Label1.Name="
Label1"
Me.Label1.Size=NewSystem.Drawing.Size(41,12)
Me.Label1.TabIndex=1
Me.Label1.Text="
式子:
"
TextBox1
Me.TextBox1.Anchor=CType((((System.Windows.Forms.AnchorStyles.TopOrSystem.Windows.Forms.AnchorStyles.Bottom)_
OrSystem.Windows.Forms.AnchorStyles.Left)_
OrSystem.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles)
Me.TextBox1.Location=NewSystem.Drawing.Point(59,9)
Me.TextBox1.Name="
TextBox1"
Me.TextBox1.Size=NewSystem.Drawing.Size(292,21)
Me.TextBox1.TabIndex=2
Me.TextBox1.Text="
abs(-1)+2*(1+2)"
TextBox2
Me.TextBox2.Anchor=CType((((System.Windows.Forms.AnchorStyles.TopOrSystem.Windows.Forms.AnchorStyles.Bottom)_
Me.TextBox2.Location=NewSystem.Drawing.Point(59,36)
Me.TextBox2.Name="
TextBox2"
Me.TextBox2.Size=NewSystem.Drawing.Size(292,21)
Me.TextBox2.TabIndex=4
Label2
Me.Label2.AutoSize=True
Me.Label2.Location=NewSystem.Drawing.Point(12,36)
Me.Label2.Name="
Label2"
Me.Label2.Size=NewSystem.Drawing.Size(41,12)
Me.Label2.TabIndex=3
Me.Label2.Text="
结果:
算式子1
Me.算式子1.函数名=NewString(){"
Abs"
"
Acos"
Asin"
Atan"
Atan2"
BigMul"
Ceiling"
Cos"
Cosh"
Div"
Mod"
Exp"
Floor"
Log10"
Log"
Max"
Min"
Pow"
Round"
Sign"
Sin"
Sinh"
Sqrt"
Tan"
Tanh"
Truncate"
Me.算式子1.常量=NewString(){"
e=2.71828182845905"
pi=3.14159265358979"
Me.算式子1.式子="
Me.算式子1.是否计算=False
Me.算式子1.显示每一步=True
Me.算式子1.结果="
TextBox3
Me.TextBox3.Location=NewSystem.Drawing.Point(59,64)
Me.TextBox3.Multiline=True
Me.TextBox3.Name="
TextBox3"
Me.TextBox3.Size=NewSystem.Drawing.Size(292,93)
Me.TextBox3.TabIndex=5
Me.TextBox3.WordWrap=False
Form1
Me.AutoScaleDimensions=NewSystem.Drawing.SizeF(6.0!
12.0!
Me.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize=NewSystem.Drawing.Size(444,159)
Me.Controls.Add(Me.TextBox3)
Me.Controls.Add(Me.Button1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学算式类库 说明书 数学 算式