东北石油大学v教程第8章.pptVIP

  • 2
  • 0
  • 约1.45万字
  • 约 65页
  • 2019-01-30 发布于江苏
  • 举报
东北石油大学v教程第8章

第8章 过程 模块化设计原则将一个较大的复杂的程序划分为若干个离散的逻辑单元即模块,每个模块只完成1个或若干个简单功能。 VB的过程分为三种 过程类似一个薯片机,输入土豆,输出薯片 用函数过程求n! 输入n,输出n! n是输入,是函数过程的形参 n! 是输出,是函数求出的结果 8.1.1 函数过程(Function)的定义和调用 代码窗口中使用“添加工程”命令添加过程 各参数的意义 函数过程名:命名规则同变量名 参数列表形式: [ByVal]变量名[( )][As 类型] 称为形参或哑元,仅表示参数的个数、类型,无值。 函数名 = 返回值 在函数体内至少对函数名赋值一次。 [Exit Function] : 表示退出函数过程。 例1 用函数过程求n! 分析:已知什么?求什么? Private Function fac(n As Integer) As Single Dim t As Single, i As Integer t = 1 For i = 1 To n t = t * i Next i fac = t End Function 函数过程的调用 函数过程的调用和标准函数的调用一样,形式: 函数过程名([参数列表]) 参数列表:称为实参或实元,它必须与形参个数相同,位置与类型一一对应。可以是同类型的常量、变量、表达式。 Print fac(5), fac(10), fac(7) 例2 求3!+5!+9! Private Sub Form_Click() Print fac(3) + fac(5) + fac(9) End Sub 思考:求1!+2!+……+20! Private Sub Command1_Click() Dim s As Single, i As Integer For i = 1 To 20 s = s + fac(i) Next i Print s End Sub 思考 例3 输出杨辉三角 Private Sub Command2_Click() Dim m%, n% For m = 0 To 7 For n = 0 To m Print Tab(n * 6); fac(m) / (fac(n) * fac(m - n)); Next n Print Next m End Sub 例5 输出100-200之间的所有素数 分析: for m= 100 to 200 如果m是素数,那么输出m next m 判断m是否是素数用函数过程完成: 函数过程的输入:m 函数过程的输出:是或不是的结果 (True 或False ;1或0) 判断素数的函数过程 Private Function sushu(m As Integer) As Integer Dim i%, k% k=1 For i=2 To m-1 if m mod i = 0 then k = 0 Next i sushu = k End Function 调用函数 Private Sub Command1_Click() Dim m As Integer For m = 100 To 200 If sushu(m) = 1 Then Print m; n = n + 1 If n / 5 = n \ 5 Then Print End If Next m End Sub 求素数的函数过程也可以定义为布尔类型 Private Function sushu(m%) As Boolean Dim i%, k As Boolean k = True For i = 2 To m - 1 If m Mod i = 0 Then k = False Next i sushu = k End Function Private Sub Command1_Click() For m% = 100 To 200 If sushu(m) = True Then Print m; Next m End Sub 练习 定义函数过程求1个整数的各位数字之和 调用这个过程求100-200之间各位数字之和能被3整除的数 例4 求2个整数的最大公约数 分析:已知什么?求什么? 已知2个整数,求最大公约数 函数过程的定义形式为: Function gys(a As Integer, b As Integer) As Integer End Func

文档评论(0)

1亿VIP精品文档

相关文档