2.5模块化程序设计
[授课形式]
讲授课、实践课
[教学目的]
使学生初步掌握使用模块化程序设计思想解决实际问题的基本方法。
[教学重点]
让学生学会使用VB语言的过程和函数定义和调用方法。
[教学难点]
理解模块化程序设计的基本思想,并运用于程序设计中。
[教学方法]
讲授法、探究法、演练法
[教学课时]
1课时
[教学过程]
一、自顶而下、逐步求精的程序设计方法
[学生探究、讨论P60问题]
1、解决问题的过程:[提问学生]
(1)分析问题 (2)设计算法 (3)编写程序 (4)调试程序
2、总结:“自顶而下,逐步求精”的程序设计方法
先从总体出发,用较为自然的语句写出一级算法,把要求解的问题分解成由一系列子问题表述的求解步骤。然后分别求解每个子问题,写出算法的细节。在必要时,将某些子问题作进一步分解,直到每一个子问题的算法都能用计算机语言的基本结构语句来描述为止。
二、过程与函数
[分析P62程序2-9B]
1、自定义函数
格式: Public Function 函数名(形式参数表) As 类型
语句组
函数名=表达式
End Function
注意:(1)形式参数表中的参数是自变量
(2)第一个语句的“As 类型”指明函数值勤的数据类型
(3)“函数名=表达式”是一个赋值语句
(4)可用Exit Function退出自定义函数
调用:与内部函数一样
例:求三个数的平均数的自定义函数:
Public Function ave(a As Integer, b As Integer, c As Integer) As Single
ave = (a + b + c) / 3
End Function
调用自定义函数如下:
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
a = InputBox("input")
b = InputBox("input")
c = InputBox("input")
x = ave(a, b, c) ‘调用自定义函数AVE()
Print "平均数为"; x
End Sub
2、自定义过程
格式:Private Sub 子过程名(形式参数表)
语句组(过程体)
End Sub
调用:子过程名 实际参数表
例:
Private Sub average(a As Integer, b As Integer, c As Integer, ave As Single)
ave = (a + b + c) / 3
End Sub
调用:
Private Sub Command2_Click()
Dim a As Integer, b As Integer, c As Integer, x As Single
a = InputBox("input")
b = InputBox("input")
c = InputBox("input")
average a, b, c, x ‘子过程average的调用
Print "平均数为"; x
End Sub
三、模块化程序设计的基本思想
[师生通过实践、例子的分析共同归纳总结]
1、模块化程序设计方法:
在设计程序求解问题时,首先要对问题从整体的角度进行分析,将其分解成几个有机的组成部分,如果某些部分还比较复杂可再分解,经过逐步分解和细化后,将一个大而复杂的问题,从总体到局部,逐步分解为若干个小的可解的基本问题,再通过求解这些基本问题最终求解得原问题的解。
模块化程序设计方法反映了结构化程序设计的“自顶而下,逐步求精”的基本思想。
2、模块划分原则:
使每个模块都容易解释。设计程序系统时使用按功能划分模块的方法,使模块的内聚度强,耦合度弱(独立性比较高)。
3、采用模块化方法得到的系统是由互相连接的模块构成的。进行模块化程序设计时,提倡按层次结构组织各模块。