(精选)大学VB过程第三次课后作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.有5个人坐在一起,问第5个人多少岁,他说比第4个人大2岁。问第4个人的岁数,他说比第3个人大2岁。问第3个人,他又说比第2个人大2岁。问第2个人,他说比第1个人大2岁。最后问第1个人,他说是10岁。请问第5个人多少岁。
要求定义一求第n 个人年龄的递归函数过程,过程名为age ,形参为n.通过调用此过程完成功能。
2.定义一求n!的递归函数过程Fact ,通过调用它完成求1!+2!+3!+4!+5!。
3.M 函数定义如下:
设计一个计算M (n )的过程 M(n),并计算M(30)、M(40)、M(50)、M(60)、M(70)、M(80)、M(90)、M(100)、M(110)、M(120)的函数值。
4.
用户由文本框输入一串英文字符,统计其中各英文字母出现的次数。
对于读程序题目也要求上交,把代码输入到VB 中理解含义,保存上交。
5.此题目与
6.2.3知识点的理解相关,请大家参见下面的例题: Form1界面设计如下图,从左向右对应Command1,Command2,Command3,Command4:
Form2中定义的sub 子程序过程:
Public Sub add(ByVal a%, ByVal b%) '此处若定义为private 不可以,私有不能被其他窗体调用
Dim c%
c = a + b
Form1.Print c
End Sub
Form1中Command1代码:
Private Sub Command1_Click()
Dim a%, b%
a = InputBox("")
b = InputBox("")
Call Form2.add(a, b) 调用其他窗体模块中的过程,调用语句应加上窗体名
End Sub
标准模块Module1.bas 中的代码:
Public Function ave (ByVal a%, ByVal b%) As Single '此处若定义为private 是否可以
ave = (a + b) / 2
End Function
M (n )=⎩
⎨⎧ M (M (n +11)) n ≤100n -10 n >100
Public Function add(ByVal a%, ByVal b%) '此处若定义为private是否可以
add = a + b
End Function
标准模块Module2.bas中的代码:
Public Function add(ByVal a%, ByVal b%) '此处若定义为private是否可以
add = a + b
End Function
Form1中Command2代码:
Private Sub Command2_Click()
Dim a%, b%
a = InputBox("")
b = InputBox("")
Print ave(a, b) 调用标准模块1中的ave过程,因在标准模块2中无同名过程,故不需要加模块名End Sub
Form1中Command3及Command4代码:
Private Sub Command3_Click()
Print Module1.add(4, 5) 因标准模块1与标准模块2中出现了同名过程add,故调用语句中应加上模块名。
End Sub
Private Sub Command4_Click()
Print Module2.add(10, 20)
End Sub
6.窗体的通用声明处定义的模块级变量。
Option Base 1
Dim/Private a(4, 4) As Integer, i%, j%
7.读程序:P123 例题,Form1默认为启动窗体.读程序时从Form1的代码开始读.
理解全局(公有)变量的使用。
8.同名变量读程序写结果。上机验证你的结果正确性。
程序一:
Public t as integer
Sub Form_Click()
Dim t%
t=10
Form1.t=20
Print Form1.t,t
End Sub
程序二:
Option Explicit
Public x As Integer, y As Integer, z As Integer
Private Sub Form_Activate()
conflict_x
Debug.Print "x,y和z是", x, y, z
End Sub
Private Sub Form_Load()
x = 10
y = 20
z = 35
End Sub
Private Sub conflict_x()
Dim x As Integer
x = 135
Debug.Print "x,y和z是", x, y, z
End Sub
9.静态变量读程序,并上机验证你得到结果的正确性:
Private Sub Command1_Click()
Dim k As Integer
k = 5
Call static_variable(k)
Print "第一次调用:k="; k
k = 5
Call static_variable(k)
Print "第二次调用:k="; k
End Sub
Private Sub static_variable(ByRef n As Integer)
Static sta As Integer
sta = n + sta
n = sta + n
End Sub
例6.18 编写程序,验证大于5的奇数可以表示成三个素数的和。Option Base 1
Private Sub Command1_Click()
Dim n%, p%(), L%, i%, j%, k%, f As Boolean
n = Val(InputBox("请输入一个大于5的奇数n:")) ______________