【例】生成包含 0~10之间的随机整数的两个矩阵,求两个矩阵之和。
分析:矩阵相加指矩阵的对应元素相加,本例使用列
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
框控件显示矩阵内容,
如下图所示。在窗体的 Load事件过程中生成矩阵,矩阵的行和列在生成数据之
前由用户指定,因此所有数组均定义成动态数组。单击“求和”按钮求和。
图 矩阵相加
设生成的第一个矩阵存于数组 A中,同时显示于列表框 List1中,第二个矩
阵存于数组 B中,同时显示于列表框 List2中,矩阵之和存于数组 C中,同时显
示于列表框 List3中,代码如下:
Option Explicit
Dim M As Integer, N As Integer, A() As Integer, B() As Integer, C() As
Integer
Private Sub Form_Load()
Dim I As Integer, J As Integer, S1 As String
M = Val(InputBox("请输入行数", "矩阵相加", ""))
N = Val(InputBox("请输入列数", "矩阵相加", ""))
ReDim A(1 To M, 1 To N), B(1 To M, 1 To N), C(1 To M, 1 To N)
Randomize
' 在列表框 List1中生成包含 0到 10 之间的随机整数的矩阵 A
List1.Clear
For I = 1 To M
S1 = "" ' S1用于保存矩阵的第 I行
For J = 1 To N
A(I, J) = Int(Rnd * 11)
S1 = S1 & Format(A(I, J), "!@@@")
Next J
List1.AddItem S1 ' 向列表框 List1添加矩阵 A的一行
Next I
' 在列表框 List2中生成包含 0到 10 之间的随机整数的矩阵 B
List2.Clear
For I = 1 To M
S1 = ""
For J = 1 To N
B(I, J) = Int(11 * Rnd)
S1 = S1 & Format(B(I, J), "!@@@")
Next J
List2.AddItem S1 ' 向列表框 List2添加矩阵 B的一行
Next I
End Sub
Private Sub Command1_Click()
' 求 A矩阵与 B矩阵的和 C矩阵,并显示在列表框 List3中
Dim I As Integer, J As Integer, S1 As String
List3.Clear
For I = 1 To M
S1 = ""
For J = 1 To N
C(I, J) = A(I, J) + B(I, J)
S1 = S1 & Format(C(I, J), "!@@@")
Next J
List3.AddItem S1 ' 向列表框 List3添加矩阵 C的一行
Next I
End Sub
Private Sub Command2_Click()
End
End Sub
以上程序在 Format语句的格式描述中使用了字符占位符“@”。该符号表
示要在相应的位置显示字符或是空格。如果字符串在格式字符串中@的位置有字
符 存在,那么就显示出来;否则,就在那个位置上显示空格。字符占位符规定
由右向左填充字符。这里在格式描述的左侧使用“!”表示强制由左向右填充字
符。
【例】让一个红色圆每隔 1秒从当前位置向下移动 100缇,当遇到窗体底部后,
改成向上移动,而遇到窗体顶又改成向下移动„„,直到按下某按钮后停止移动。
分析:在窗体上任意位置放一个 Timer控件,并将其 Interval属性设置为
1000(1s)。在窗体适当位置放一个命令按钮 Command1,使按下该按钮即可让圆
停止移动。
程序代码:
Dim YiDongFangXiang As String ' 记录圆的移动方向
Private Sub Command1_Click()
Timer1.Enabled = False ' 停止圆的移动
End Sub
Private Sub Timer1_Timer()
If Shape1.Top + Shape1.Height >= Form1.ScaleHeight Then ' 圆
顶端在窗体上的位置加上圆自身的高度大于窗体的内部高度(ScaleHeight)时,
则说明圆已移到窗体底部
YiDongFangXiang = "上" ' 设置圆的移动方向为向上
ElseIf Shape1.Top <= 0 Then ' 圆顶端在窗体上的位置小于或等于
0时,则说明圆已移到窗体顶部
YiDongFangXiang = "下"
End If
If YiDongFangXiang = "上" Then ' 根据以上所得移动方向设置圆在
窗体上是向上还是向下移动
Shape1.Top = Shape1.Top - 100
Else
Shape1.Top = Shape1.Top + 100
End If
End Sub
【例】用以下公式求 sin(x)的近似值,当最后一项小于 10-7时停止计算,X的值
由键盘输入。
分析:用 FuHao表示(-1)n-1
用 JieCheng表示(2n-1)!
用 FeiZi表示 x2n-1
用 Term表示每一项的值,则 Term=FuHao*(FeiZi/JieCheng)
SinX表示 sin(x)的近似值
循环初始条件:SinX = 0,N = 1
循环终止条件:Term<0.0000001
程序源码:
Option Explicit
Private Sub Form_Click()
Dim SinX As Double, JieCheng As Double, Term As Double, FeiZi As
Double
Dim X As Integer, I As Integer, N As Integer, FuHao As Integer
SinX = 0: N = 1
X = Val(InputBox("请输入 X的值:"))
Do
FuHao = (-1) ^ (N - 1)
JieCheng = 1
For I = 1 To 2 * N - 1
JieCheng = JieCheng * I
Next I
FeiZi = X ^ (2 * N - 1)
Term = FuHao * (FeiZi / JieCheng)
SinX = SinX + Term
N = N + 1
Loop Until Term < 0.0000001
Print "sin(" & X & ")≈" & SinX
End Sub
【例】设计如下图所示的界面,在窗体上画两个框架,分别在其中放置两组选项
按钮(注意,移动框架时其中的选项按钮应能与框架一起移动),中间为一红 色
长方形。运行时,单击颜色按钮用于改变中间的图形的颜色(FillColor属性),
单击形状按钮用于改变中间的图形的形状(Shape属性)。
图 改变图形的颜色与形状
程序源码:
' Option1~Option4为设置图形的颜色
Private Sub Option1_Click()
Shape1.FillColor = vbRed
End Sub
Private Sub Option2_Click()
Shape1.FillColor = vbBlue
End Sub
Private Sub Option3_Click()
Shape1.FillColor = vbGreen
End Sub
Private Sub Option4_Click()
Shape1.FillColor = vbYellow
End Sub
' Option5~Option8为设置图形的形状
Private Sub Option5_Click()
Shape1.Shape = 3 ' Circle-圆形
End Sub
Private Sub Option6_Click()
Shape1.Shape = 1 ' Square-正方形
End Sub
Private Sub Option7_Click()
Shape1.Shape = 0 ' Rectangle-长方形
End Sub
Private Sub Option8_Click()
Shape1.Shape = 2 ' Oval-椭圆形
End Sub
【例】让一行欢迎词从窗体的左侧逐渐移向右侧,当全部移出右侧后,又从窗体
左侧开始移动,直到按下某按钮后停止移动。
分析:在窗体上任意位置放一个 Timer控件,并将其 Interval属性设置为 1,
从而使欢迎词在窗体上移动的更流畅。在窗体适当位置放一个命令按钮
Command1,使按下该按钮即可让欢迎词停止移动。
程序代码:
Dim CX As Integer ' 全局变量,用于确定欢迎词在窗体上打印的 X坐标
Private Sub Command1_Click()
Timer1.Enabled = False ' 停止欢迎词的移动
End Sub
Private Sub Timer1_Timer()
Cls ' 清除上一次打印的信息
CurrentY = 200
CurrentX = CX
Print "欢迎访问 LZY'Blog(http://www.longziyong.cn)!";
If CX >= Form1.Width Then ' 如果 CX大于或等于窗体的宽度,则
欢迎词已经全部移出窗体
CX = 0 ' CX置 0,使欢迎词重新从窗体的左侧打印
Else
CX = CX + 2 ' 欢迎词在窗体上打印的位置向右边移动 2缇
End If
End Sub
例】在窗体上放一个列表框,六个命令按钮,列表框列出了某计算机资料室的所
有
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
名,如下图所示,按以下要求编写各按钮的事件代码。
图 图书资料列表管理
1)单击“添加”按钮打开一个输入框,在输入框中可输入书名,单击“确定”
后将该书名添加到列表框中。在输入框中单击“取消”或输入内容为空则不添加。
代码如下:
' 添加书名
Private Sub Command1_Click()
Dim BookName As String
BookName = Trim(InputBox("请输入书的名称:", "添加图书"))
If BookName <> "" Then
List1.AddItem BookName ' 添加新的书名
End If
End Sub
2)单击“删除”按钮删除当前在列表框中选择的书,如果没有选择书就按此按
钮,给出警告。
代码如下:
' 删除当前在列表框中选择的书名
Private Sub Command2_Click()
If List1.ListIndex = -1 Then
MsgBox "你当前没有选择任何图书名称,请确认后再操作!"
Exit Sub
Else
List1.RemoveItem List1.ListIndex ' 从列表框中移除选
中的书名
End If
End Sub
3)单击“上移一个”按钮将当前在列表框中选择的书在列表中上移一个位置,
如果没有选择书就按此按钮,给出警告。对第一个书名做上移也给出警告。
代码如下:
' 将当前在列表框中选择的书在列表中上移一个位置
Private Sub Command3_Click()
If List1.ListIndex = -1 Then
MsgBox "你当前没有选择任何图书名称,请确认后再操作!"
Exit Sub
ElseIf List1.ListIndex = 0 Then
MsgBox "你当前选择的图书名称为列表中的第一个,已不能再上移!
"
Exit Sub
Else
Temp = List1.ListIndex - 1 ' 保存当前在列表框中选中书
名的上一个位置
List1.AddItem List1.Text, List1.ListIndex - 1
List1.RemoveItem List1.ListIndex
List1.Selected(Temp) = True ' 从新选中刚刚移动的书名
End If
End Sub
4)单击“下移一个”按钮将当前在列表框中选择的书在列表中下移一个位置,
如果没有选择书就按此按钮,给出警告。对最后一个书名做下移也给出警告。
代码如下:
' 将当前在列表框中选择的书在列表中下移一个位置
Private Sub Command4_Click()
If List1.ListIndex = -1 Then
MsgBox "你当前没有选择任何图书名称,请确认后再操作!"
Exit Sub
ElseIf List1.ListIndex = List1.ListCount - 1 Then
MsgBox "你当前选择的图书名称为列表中的最后一个,已不能再下
移!"
Exit Sub
Else
Temp = List1.ListIndex + 1 ' 保存当前在列表框中选中书
名的下一个位置
List1.AddItem List1.Text, List1.ListIndex + 2
List1.RemoveItem List1.ListIndex
List1.Selected(Temp) = True ' 从新选中刚刚移动的书名
End If
End Sub
5)单击“第一个”按钮选择列表中的第一个书名。
代码如下:
' 选择第一个书名
Private Sub Command5_Click()
List1.Selected(0) = True
End Sub
6)单击“最后一个”按钮选择列表中的最后一个书名。
代码如下:
' 选择最后一个书名
Private Sub Command6_Click()
List1.Selected(List1.ListCount - 1) = True
End Sub
【例】找出 1~9999之间的全部同构数,所谓同构数是指这样的整数,它恰好出
现在其平方数的右边。例如,1和 5都是同构数。
分析:假设用 I作为循环变量,分别为 1~9999。通过函数 Str将 I及 I^2
的值分别转换为字符串,使用函数 Len获得字符串 I的长度,使用函数 Right
截取字符串 I^2右边的 Len(I)-1个字符。
因为整数在转换为字符串类型时,会在整数对应的数字字符前面加一个符号
(+或-),所以 Len(I)-1才是数值 I的位数。
再将其函数 Right所截取的子字符串转换为整数类型,这由函数 Val 实现,
如果此时得到的数值与 I相等,则说明该数为同构数,否则不是同构数。
程序源码:
Option Explicit
Private Sub Form_Click()
Dim I As Long
For I = 1 To 9999
If I = Val(Right(Str(I ^ 2), Len(Str(I)) - 1)) Then Print I;
Next I
End Sub
运行结果:
1 5 6 25 76 376 625 9376
【例】用牛顿迭代法求方程 sin(x)-x/2=0在 x=π 附近的一个实根,精度要求:|
xn+1-xn|≤10
-4。
分析:在数值分析中,导出牛顿迭代公式的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
有多种,这里使用台劳展开
技术导出牛顿迭代公式。这种方法的基本思想是,设法将非线性方程转化为某种
线性方程来求解。设已知方程 f(x)=0的一个近似根为 x0,则函数 f(x)在点 x0
附近可用一阶台劳多项式
f(x0)+ (x0)(x-x0)
来近似,因此方程 f(x)=0在点 x0附近可近似地表示为线性方程
f(x0)+ (x0)(x-x0)=0
设 (x0)≠0,解以上线性方程得
x=x0-f(x0)/ (x0)
取 x作为原方程的近似新根,再用类似以上的方法求下一个根,即牛顿迭代
公式为
xk+1=xk-f(xk)/ (xk) k=0,1,2,„
牛顿迭代法的几何解释如下图所示。
图 用牛顿迭代法求方程的根
设单击窗体时求解,程序如下:
Option Explicit
Private Sub Form_Click()
Dim X As Single, N As Integer, FX As Single, FX1 As Single, X1 As
Single
X = 3.1415926
N = 0 ' N用于保存迭代次数
Do
FX = Sin(X) - X / 2 ' 即求 f(x)
FX1 = Cos(X) - 0.5 ' 即求 (x)
X1 = X ' 保存当前根
X = X - FX / FX1 ' 求下一个根
N = N + 1
Loop Until Abs(X1 - X) < 0.0001
Print "方程的根为:"; X
Print "迭代次数为:"; N
End Sub
运行时单击窗体,在窗体上打印:
方程的根为:1.895494
迭代次数为:5
【例】用梯形法求函数 f(x)=x2+12x+4在[a,b]区间的定积分。
分析:函 数 f(x)在区间[a,b]的定积分,等于 x
轴、直线 x=a、直线 x=b和曲线 y=f(x)所围成的曲边
梯形部分的面积,见右图。而梯形法是将区间 [a,b]
分成 n等分,把曲边梯形分成 n个小块,每一小块曲
边梯形的面积用相应的梯形面积来代替,将 n 个小梯
形的面积的和作为曲边梯形面积的近似值,即积 分
的近似值。
将[a,b]区间 n等分后,每个小梯形的高 h=(b-a)/n
设 x0=a,则 x1=a+h,x2=a+2×h,„,xi=a+i×h,„,xn=b
第一个小梯形面积为(f(x0)+f(x1))h/2,第 i个小梯形面积为
(f(xi-1)+f(xi))h/2
因此
设分别用文本框 Text1、Text2、Text3输入 a、b、n的值,单击命令按钮
Command1计算定积分值,结果显示于文本框 Text4中。则 Command1的 Click事
件过程如下:
Option Explicit
Private Sub Command1_Click()
Dim A As Single, B As Single, N As Integer, _
H As Single, X As Single, Area As Single, _
F1 As Single, F2 As Single, I As Integer, _
AreaI As Single
A = Val(Text1.Text)
B = Val(Text2.Text)
N = Val(Text3.Text)
H = (B - A) / N
X = A
Area = 0 ' Area用于存放梯形面积的累加和
F1 = X ^ 2 + 12 * X + 4 ' F1为梯形的上底
For I = 1 To N
X = X + H
F2 = X ^ 2 + 12 * X + 4 ' F2为梯形的下底
AreaI = (F1 + F2) * H / 2 ' 计算第 I个小梯形的面积
Area = Area + AreaI
F1 = F2
Next I
Text4.Text = Area
End Sub
【例】求 1+2+3+...+n的值。
分析:在程序设计中,求取一批数据的“和”是一种典型的操作,通常称为
“累加”。“累加” 问题可以很方便地用循环来实现。设计程序时,一般引入
一个存放“和”值的单元,如变量,在本题中即为变量 Sum。首先设置该“和”
值为 0,然后通过循环重 复执行:和值=和值+累加项,如本例的 Sum=Sum+I,每
循环一次,累加项的值按一定的规律变化,如本题中的累加项为 I,I在循环过
程中按 1、2、 3、„„n的规律变化,即实现把所有的累加项的值加到总和上,
在退出循环后显示累加和。
设计界面如下图 a所示,n从文本框 Text1输入。单击“计算(C)”按钮求
和,结果显示于标签 Label3中。运行效果如下图 b所示。
a) 设计界面 b) 运行
界面
图 求 1+2+3+...+n的值
“计算(C)” 按钮 Command1的 Click事件过程如下:
Option Explicit
Private Sub Command1_Click()
Dim N As Integer, I As Integer, Sum As Integer
N = Val(Text1.Text)
Sum = 0
For I = 1 To N
Sum = Sum + I
Next I
Label3.Caption = Sum
End Sub
用同样的思路可以设计另外一种典型操作,即“累乘”,求取一批数据的积。
只需把存放乘积的单元(如变量)初始值设置为 1,然后通过循环重复执行:乘
积=乘积*累乘项,例如,如果将上例的题目改成求 1×2×3×...×n,即求 n!,
则是一个累乘问题,程序可以改写成:
Option Explicit
Private Sub Command1_Click()
Dim N As Integer, I As Integer, Sum As Double
N = Val(Text1.Text)
Sum = 1
For I = 1 To N
Sum = Sum * I
Next I
Label3.Caption = Sum
End Sub
【例】某运输公司对用户计算运费,距离越远,每公里运费越低,计算
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
如下:
距离<250km 没有折扣
250km≤距离<500km 2%折扣
500km≤距离<1000km 5%折扣
1000km≤距离<2000km 8%折扣
2000km≤距离<3000km 10%折扣
3000km≤距离 15%折扣
分析:设每公里每吨货物的基本运费为 Price,货物重为 Weight,运输距离为
Distance,折扣为 Discount,则总运费 Freight的计算公式为:
Freight=Price*Weight*Distance*(1-Discount)
设计界面如下图所示。
“总运费为”按钮 Command1的 Click事件过程如下:
Option Explicit
Private Sub Command1_Click()
Dim Price As Single, Weight As Single, Distance As Single, Discount
As Single, Freight As Single
Price = Val(Text1.Text)
Weight = Val(Text2.Text)
Distance = Val(Text3.Text)
Select Case Distance
Case Is < 250
Discount = 0
Case Is < 500
Discount = 0.02
Case Is < 1000
Discount = 0.05
Case Is < 2000
Discount = 0.08
Case Is < 3000
Discount = 0.1
Case Else
Discount = 0.15
End Select
Freight = Price * Weight * Distance * (1 - Discount)
Text4.Text = Freight
End Sub
本程序在输入了基本运费、货物重量、运输距离之后,使用 Select Case
语句对距离进行判断,对于不同的距离范围,给出不同的折扣,然后执行 End
Select之后的语句计算并显示运费。注意 Case语句之后的条件与题目给出的条
件写法有所不同。
【实例】用文本框输入平面坐标系两点的坐标,单击命令按钮求两点间的距离,结
果显示于某标签中,运行界面如下图所示。
图 求两点间的距离
程序代码如下:
Option Explicit
Private Sub CommandCalcul_Click()
Dim AX As Integer, AY As Integer, BX As Integer, BY As Integer, Result As Integer
AX = Val(Trim(TextAX.Text))
AY = Val(Trim(TextAY.Text))
BX = Val(Trim(TextBX.Text))
BY = Val(Trim(TextBY.Text))
Result = Sqr((Abs(AX - BX)) ^ 2 + (Abs(AY - BY)) ^ 2) '已知两点坐标求距离公式为:根号下
(|X1-X2|的平方+|Y1-Y2|的平方)
LabelResult = "AB 两点间的距离为:" & Str(Result)
End Sub
【实例】设计界面包括两个图片框,运行时单击图片框时在相应的图片框中显示如
下图所示的图形,要求每行的打印起始位置用 Tab 函数实现。
图 单击图片框打印图形
程序代码如下:
Private Sub Picture1_Click()
Picture1.Print Tab(4); "***********"
Picture1.Print Tab(5); "*********"
Picture1.Print Tab(6); "*******"
Picture1.Print Tab(7); "*****"
Picture1.Print Tab(8); "***"
Picture1.Print Tab(9); "*"
End Sub
Private Sub Picture2_Click()
Picture2.Print Tab(9); "*"
Picture2.Print Tab(8); "***"
Picture2.Print Tab(7); "*****"
Picture2.Print Tab(6); "*******"
Picture2.Print Tab(5); "*********"
Picture2.Print Tab(4); "***********"
End Sub
【实例】设计应用程序,输入圆柱体的底面半径和高,求底面积、侧面积、体积。
要求:
1)界面如下图所示。
图 计算底面积、侧面积、体积
2)程序中将 π 定义成符号常量(用 Const pi=……)。
3)将输入的底面半径和高分别存于变量 r 和 h 中(r 和 h 声明为单精度型),再利
用 pi、r、h 计算圆柱体的底面积、侧面积和体积。运算结果设为只读。
程序代码如下:
Private Sub Command1_Click()
Const pi = 3.14159
Dim r As Single, h As Single
r = Val(Trim(TextR))
h = Val(Trim(TextH))
TextFootArea.Text = Str(pi * r * r)
TextSideArea.Text = Str(h * 2 * pi * r)
TextVolume.Text = Str(pi * r * r * h)
End Sub
Private Sub Form_Activate()
Form1.Circle (420, 370), 300, RGB(255, 255, 255)
Form1.Circle (420, 1420), 300, RGB(255, 255, 255)
TextFootArea.Locked = True
TextSideArea.Locked = True
TextVolume.Locked = True
End Sub
【实例】设计一个计算购书价程序,界面如下图所示。要求:
a) 设计界面 b)
运行界面
图 “计算购书价”程序界面
1)界面上的文字全部为宋体五号字(请一次设定)。
2)按图示给文本框取名。为“计算总价(C)”和“退出(X)”按钮设定
访问键。
3)编写代码,使得运行时焦点定位在 DJ 文本框中,输入单价后,按 Tab
键可输入数量(设置 TabIndex属性)。在输入单价与数量之后,单击“计算总
价(C)”铵钮,将计算出总价钱,显示于文本框 ZJ中。单击“退出(X)”按
钮结束运行。运行时,计算出的总价为只读(设置 Locked属性),用户不能在
界面上修改计算出的总价,且焦点不能定位在 ZJ文本框中。
提示:先将文本框中的内容使用 Val函数转换后再进行计算。
4)将 ZJ文本框改换成标签,将标签的 BorderStyle属性设置为 1 - Fixed
Single,用标签输出计算结果。运行界面如下图所示。
解:按下表设置各控件的有关属性。
控件的属性设置
控件名称 属性名 属性值
Label1 Caption 请输入单价:
Label2 Caption 请输入数量:
Label3 Caption 总价:
Label4(注: 按第 4条要求将 ZJ文本框改换为
标签输出总价)
AutoSize True
Caption 空
BorderStyle
1 - Fixed
Single
DJ
Text 空
Alignment
1 - Right
Justify
TabIndex 0
SL
Text 空
Alignment
1 - Right
Justify
TabIndex 1
ZJ
Text 空
Alignment
1 - Right
Justify
Locked True
TabIndex 2
TabStop False
Command1
Caption 计算总价(&C)
TabIndex 3
Command2
Caption 退出(&X)
TabIndex 4
程序代码如下:
Option Explicit
Private Sub Command1_Click() ' 计算总价
Dim Price As Single, Amount As Integer, Total As Single
Price = Val(Trim(DJ.Text))
Amount = Val(Trim(SL.Text))
Total = Price * Amount
ZJ.Text = Str(Total) ' 改用标签输出总价的语句为: Label4.Caption =
Str(Total)
DJ.SetFocus ' 单价文本框重新获得焦点
End Sub
Private Sub Command2_Click() ' 退出程序
End
End Sub
Private Sub DJ_GotFocus() ' 单价文本框获得焦点时
DJ.SelStart = 0
DJ.SelLength = Len(DJ.Text)
End Sub
Private Sub SL_GotFocus() ' 数量文本框获得焦点时
SL.SelStart = 0
SL.SelLength = Len(SL.Text)
End Sub
【例】某地区电话号码由 7 位升为 8 位,其规律是:原有电话号码最高位加 1(设
最高位小于 9),并在最高位之前加一个“6”。例如,原电话号码 3187465 将变为 64187465。
编写程序输入一个原电话号码(包括区号),输出新号码。界面如下图所示。
a) 设计界面 b) 运行界面
图 电话号码升位
程序代码如下:
Option Explicit
Private Sub Command1_Click()
Dim PhoneNo As String, n As Integer
Dim tmp As String, num As Long
PhoneNo = Trim(Text1.Text)
n = Len(PhoneNo)
tmp = Right(PhoneNo, 7)
num = Val(tmp) + 61000000
PhoneNo = Left(PhoneNo, n - 7) + Trim(Str(num))
Label3.Caption = PhoneNo
End Sub
【例】测试标签的边框样式和透明样式。窗体上有一个标签,显示“Visual Basic
程序设计教程”,有四个命令按钮 Command1、Command2、Command3和 Command4,
其中 Command1放在 Command2上,Command3放在 Command4上。程序运行时界面
如下图 a所示,单击相应按钮,界面发生相应变化,分别如下图 b、c、d所 示。
按下表设置各控件的有关属性。
各控件的属性设置
控件名称 属性名 属性值
Form1 Picture1 C:\Windows\Clouds.bmp
Label1
Alignment 2 - Center
BackStyle 0 - Transparent
FontSize 18
Caption Visual Basic程序设计教程
Command1 Caption 有边框
Command2 Caption 无边框
Command3 Caption 不透明
Command4 Caption 透明
a) 标签初始为无边框、透明状态 b) 标签为有边框、
透明状态
c) 标签为有边框、不透明状态 d) 标签为有边框、
透明状态
程序代码如下:
Private Sub Command1_Click()
Label1.BorderStyle = 1
Command1.Visible = False
Command2.Visible = True
End Sub
Private Sub Command2_Click()
Label1.BorderStyle = 0
Command1.Visible = True
Command2.Visible = False
End Sub
Private Sub Command3_Click()
Label1.BackStyle = 1
Command3.Visible = False
Command4.Visible = True
End Sub
Private Sub Command4_Click()
Label1.BackStyle = 0
Command3.Visible = True
Command4.Visible = False
End Sub
【例】输出三个在任意指定范围内的随机整数。界面如下图所示。
a) 设计界面 b) 运行界面
输出三个任意指定范围内的随机整数
程序代码如下:
Option Explicit
Private Sub Command1_Click()
Dim A As Integer, B As Integer
Randomize
A = Val(Text1.Text)
B = Val(Text2.Text)
Label4.Caption = Str(Int(Rnd * (B - A + 1) + A)) ' 产生[A,B]区间的随机数
Label5.Caption = Str(Int(Rnd * (B - A + 1) + A))
Label6.Caption = Str(Int(Rnd * (B - A + 1) + A))
End Sub
Private Sub Text1_GotFocus() ' 在 Text1 获得焦点时,选中其中的文本
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End Sub
Private Sub Text2_GotFocus() ' 在 Text2 获得焦点时,选中其中的文本
Text2.SelStart = 0
Text2.SelLength = Len(Text2.Text)
End Sub
【实例】编程序,求二元一次联立方程组的解,二元一次联立方程组的通用形式为:
运行时界面如下图所示。单击“求解”按钮求解。要求所有输入的文本框在获取焦点
时自动选中其中的文本,以便输入,Tab 键序为:A1、B1、C1、A2、B2、C2。
程序代码如下:
Option Explicit
Private Sub Form_Load()
TextA1.TabIndex = 0
TextB1.TabIndex = 1
TextC1.TabIndex = 2
TextA2.TabIndex = 3
TextB2.TabIndex = 4
TextC2.TabIndex = 5
Command1.TabIndex = 6
LabelResult.Caption = "X=" & vbCrLf & "Y="
End Sub
Private Sub TextA1_GotFocus()
TextA1.SelStart = 0
TextA1.SelLength = Len(TextA1.Text)
End Sub
Private Sub TextA2_GotFocus()
TextA2.SelStart = 0
TextA2.SelLength = Len(TextA2.Text)
End Sub
Private Sub TextB1_GotFocus()
TextB1.SelStart = 0
TextB1.SelLength = Len(TextB1.Text)
End Sub
Private Sub TextB2_GotFocus()
TextB2.SelStart = 0
TextB2.SelLength = Len(TextB2.Text)
End Sub
Private Sub TextC1_GotFocus()
TextC1.SelStart = 0
TextC1.SelLength = Len(TextC1.Text)
End Sub
Private Sub TextC2_GotFocus()
TextC2.SelStart = 0
TextC2.SelLength = Len(TextC2.Text)
End Sub
Private Sub Command1_Click()
Dim A1 As Integer, B1 As Integer, C1 As Integer
Dim A2 As Integer, B2 As Integer, C2 As Integer
Dim X As Single, Y As Single
A1 = Val(Trim(TextA1.Text))
B1 = Val(Trim(TextB1.Text))
C1 = Val(Trim(TextC1.Text))
A2 = Val(Trim(TextA2.Text))
B2 = Val(Trim(TextB2.Text))
C2 = Val(Trim(TextC2.Text))
If (A1 * B2 - A2 * B1) = 0 Or (B1 * A2 - A1 * B2) = 0 Then '方程组系数成倍数的情况
LabelResult.Caption = "该方程组无解"
Else
X = (C1 * B2 - C2 * B1) / (A1 * B2 - A2 * B1)
Y = (C1 * A2 - C2 * A1) / (B1 * A2 - A1 * B2)
If InStr(Str(X), ".") > 0 Or InStr(Str(Y), ".") Then ' 若 X 或 Y 的值是一个小数,而非整数,则
方程组无解
LabelResult.Caption = "该方程组无解"
Else
LabelResult.Caption = "X=" & X & vbCrLf & "Y=" & Y
End If
End If
End Sub