计算机程序设计强化复习.ppt
《计算机程序设计强化复习.ppt》由会员分享,可在线阅读,更多相关《计算机程序设计强化复习.ppt(98页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机程序设计强化复习,Visual Basic 6.0,2,全文结构,VB语法知识基础 VB语法知识进阶 常用算法及编程技巧 界面元素与程序调试 模拟试题,3,第1章 程序代码的组织方式,1.1 程序代码的基本构成 字符集 关键字 标识符 运算符 表达式 语句及语法规则 语义 Print a Print a, Print a;,4,第1章 程序代码的组织方式,1.2 VB中的过程 用过程编程的两大好处 VB中过程的种类 事件过程系统提供的过程 通用过程用户自定义过程 1.3 VB中的模块 窗体模块 标准模块 类模块,5,第2章 数据类型、常量与变量,2.1 基本数据类型 数值型 字符串型 逻
2、辑型 日期型 变体型 数据类型转换 数值类型间的转换 数值类型与字符串类型的转换 数值类型与逻辑类型的转换 字符串类型与逻辑类型的转换 Print True+3显示结果为2 Print “123”+100显示结果为223 Print #5/1/2000# + 3显示结果是00-5-4,6,第2章 数据类型、常量与变量,2.2 构造数据类型 数组 固定大小数组 动态数组 自定义类型 2.3 常量与变量 字面常量 符号常量 系统内部常量VbRed、VbCrLf等 用户自定义符号常量 Const Pi As Single =3.14 变量,7,第3章 运算符、表达式与公共函数,3.1 VB中的运算符
3、与表达式 算术运算符与算术表达式 字符串连接符 关系运算符与关系表达式 逻辑运算符与逻辑表达式 运算符的优先级 算术运算符 、-、*或/、Mod、+或- 字符运算符 +或b Print a, Print b Print a Print b Cls 方法、Clear方法,12345678901234567890 3 5 3 5 3 5,12,第6章 选择结构,6.1 IfThen 结构语句 标准分支选择结构 例6-1:写出根据键盘输入的百分制学生成绩判断该学生是否及格并输出“Pass”或“Fault”。 单分支结构 例6-2:写出根据键盘输入的百分制学生成绩判断该学生是否及格并将及格学生的成绩输
4、出的程序片段。 多分支结构 例6-3:写出将键盘输入的百分制学生成绩转换成五分制并输出的程序片段。,13,第6章 选择结构,6.2 Select Case 结构语句 一般形式 测试项的形式 例6-4:在 Select Case X 结构中,描述判断条件3X7的测试项应该写成 。 A. Case 3 X7B. Case 3 X, X7 C. Case Is7 , Is3D. Case 3 To 7,14,第7章 循环结构,7.1 DoLoop 结构语句 Do-While循环结构 Do-Until循环结构,“当”型循环,“直到”型循环,15,第7章 循环结构,7.2 ForNext 结构语句 一般
5、形式 For=ToStep Exit For Next For循环与Do循环的比较 循环嵌套,16,第8章 过程设计,8.1 Sub过程与Function过程的定义与调用 Sub过程的定义 Private | Public Static Sub 过程名 (参数列表) 局部变量和常量声明 语句体 Exit Sub End Sub Sub事件过程的定义 Sub通用过程的定义,17,第8章 过程设计,8.1 Sub过程与Function过程的定义与调用 Function过程的定义 Private | Public Static Function 函数名 (参数列表) As 数据类型 局部变量和常量声
6、明 语句体 Exit Function 函数名=表达式 End Function 例8-5:以下有关过程的说法中错误的是 。 A. 在Sub或Function过程中不能再定义其他Sub或Function过程 B. 在调用过程时,与使用ByRef说明的形参对应的实参只能按地址传递方式结合。 C. 递归过程既可以是递归Function过程,也可以是递归Sub过程。 D. 在调用过程时,形参为数组的参数对应的实参只能是数组。,18,第8章 过程设计,8.1 Sub过程与Function过程的定义与调用 Function过程与Sub过程的区别 例8-6:分别用Sub过程和Function过程编写一个求
7、n!的自定义过程。,Sub过程: Private Sub fact(n As Integer, f As Long) Dim i As Integer f = 1 For i = 1 To n f = f * i Next i End Sub,Function过程: Private Function fact(n As Integer) As Long Dim i As Integer fact = 1 For i = 1 To n fact = fact * i Next i End Sub,19,第8章 过程设计,8.1 Sub过程与Function过程的定义与调用 Sub过程与Funct
8、ion过程的调用 Sub事件过程的调用 Sub通用过程的调用 Call 语句调用:Call (实参表) 将过程名作为语句调用:过程名 实参表 Function过程的调用 变量=过程名(实参表),20,第8章 过程设计,8.1 Sub过程与Function过程的定义与调用 过程的嵌套调用 过程调用的注意事项 把Sub过程名作为语句调用时,参数不需要加括号 Function过程无参时,括号不可省,其调用方法与公共函数类似 由于Function过程本身返回值,所以一般不使用Sub通过过程的调用方法,因为这两种方法将放弃函数名的返回值 若对Function过程的调用出现在表达式中,则其运算优先级最高,
9、21,第8章 过程设计,8.2 过程调用时的参数 参数传递的限制 形参与实参的个数、类型和顺序必须严格匹配,22,第8章 过程设计,8.2 过程调用时的参数 按值传递ByVal 数组、自定义记录类型的变量、对象变量不能按值传递;常数和表达式必须按值传递 按值传递的参数,形参和实参的类型只需要相容即可 按地址传递 ByRef,23,第8章 过程设计,8.3 递归过程 递归过程的定义 在过程定义中调用自身或以其他方式间接调用自身的过程 可以递归Sub过程,也可以递归Function过程 递归过程的构成条件 有对本身的调用语句 有一个结束递归过程的条件(终止条件或边界条件) 三题递归相关 求 N!
10、求 菲布拉及数列 求 最大公约数,24,第8章 过程设计,8.4 变量的作用域与生命期 变量的作用域 在窗体模块中,不能定义数组、定长字符串、用户自定义类型等为全局变量。,25,第8章 过程设计,8.4 变量的作用域与生命期 变量的生命期 8-22:若希望在离开某过程后,还能保存该过程中局部变量的值,则应使用关键字在该过程中定义局部变量。 A. DimB. PrivateC. PublicD. Static 同名变量,26,第9章 文件操作,9.1 文件的基本概念 文件的概念 文件类型 文件操作步骤 9.2 基本文件操作控件 驱动器列表框 目录列表框 文件列表框,27,第9章 文件操作,9.3
11、 常用文件操作语句与文件操作函数 Open语句 Close语句与Reset语句 Lock和Unlock语句 Seek语句 Print #和Write #语句 Input#和Line Input # 语句 Put # 和 Get #语句 常用文件操作函数,28,第10章 算法中使用的基本技巧,10.1.1 交换 t=a : a=b : b=t t=b: b=a : a=t t=a : a=b : b=c : c=t a=a+b : b=a-b : a=a-b 10.1.2 累加、累乘 n=n+1 Sum=Sum+n P=P*n 10.2 最大/小值问题 max=a(1) for i=2 to U
12、bound(a) if a(i)max then max=a(i) next i,29,第10章 算法中使用的基本技巧,10.3.1 穷举 10-1:用100元买100只鸡,公鸡每只5元,母鸡每只3元,小鸡每1元3只,问可以买多少只公鸡、母鸡和小鸡?有多少种组合? Private Sub Command1_Click() Dim X As Integer, Y As Integer, Z As Integer Dim Count As Integer Count = 0 For X = 0 To Fix(100 / 5) For Y = 0 To Fix(100 / 3) For Z = 0
13、To 100 If X * 5 + Y * 3 + Z / 3 = 100 And X + Y + Z = 100 Then Print X, Y, Z Count = Count + 1 End If Next Next Next Print 组合个数:; Count End Sub,30,第10章 算法中使用的基本技巧,10-2:求出所有的水仙花数,如153=13+53+33 Private Sub Command1_Click() Dim X As Integer, Y As Integer, Z As Integer For X = 1 To 9 For Y = 0 To 9 For
14、Z = 0 To 9 If X 3 + Y 3 + Z 3 = 100 * X + 10 * Y + Z Then Print 100 * X + 10 * Y + Z End If Next Next Next End Sub,31,第10章 算法中使用的基本技巧,10.3.2 迭代 10-3:设方程为4*x2-3*x-7=0,给出不精确的初始根x0=2,利用公式:xn+1=xn-f(xn)/f(xn) n=0,1,2求出方程的近似根,直到 |xn+1-xn|0.00001。 Dim X0 As Double, X1 As Double X0 = 2 Do X1 = X0 - (4 * X0
15、 2 - 3 * X0 - 7) / (8 * X0 - 3) If Abs(X1 - X0) 0.00001 Then Exit Do X0 = X1 Loop Print X1,Dim X0 As Double, X1 As Double X1 = 2 Do X0 = X1 X1 = X0 - (4 * X0 2 - 3 * X0 - 7) / (8 * X0 - 3) Loop Until Abs(X1 - X0) 0.00001 Print X1,32,第10章 算法中使用的基本技巧,10.4.1 递推 10-4:已知一对成熟的兔子每月可以生一对小兔子。出生的小兔子两个月后成熟,就可再
16、生一对小兔子。问一对成熟的兔子在一年内能繁殖成多少对兔子? 10-5:细胞分裂,每分裂一次要用3分钟,30分钟后有细胞2048个。问开始时有多少个细胞? Dim F(10) As Integer, i As Integer F(10) = 2048 For i = 9 To 0 Step -1 F(i) = F(i + 1) / 2 Next i Print F(0) 10.4.2 递归,Private Sub Command1_Click() Print 开始时的细胞数:; f(0) End Sub Function f(n As Integer) As Integer If n = 10
17、Then f = 2048 Else f = f(n + 1) / 2 End If End Function,f=f(n-1)*2,33,第11章 数列、级数求和及矩阵运算问题,11.1 数列问题 固定公式 11-1:利用公式 k*k+k+17 生成一组两位数的整数。 递推公式 11-2:利用初值 x1=15 以及公式 xi+1=(3*xi+153) mod 256产生一个10个数的数列。 Dim x1 As Integer, x2 As Integer Dim count As Integer x1 = 15: Print x1 For count = 2 To 10 x2 = (3 *
18、x1 + 153) Mod 256 Print x2 x1 = x2 Next count,Dim a(1 To 10) As Integer Dim count As Integer a(1) = 15: Print a(1) For count = 2 To 10 a(count) = (3 * a(count - 1) + 153) Mod 256 Print a(count) Next count,34,第11章 数列、级数求和及矩阵运算问题,11.2.1 级数求和 确定通项 确定求和结束条件 11-3:求 cos(x)=1-x2/2!+x4/4!-+(-1)n+1x2(n-1)/2(
19、n-1)!+ n=1,2, 直到级数的第n项的绝对值小于等于10-6为止。,Private Sub Command1_Click() Const x As Single = 3.14159 / 3 Dim Sum As Single, N As Integer, T As Single N = 1: T = 1 Do Sum = Sum + T N = N + 1 T = -T T = T * x 2 / (2 * (N - 1) * (2 * N - 3) Loop While Abs(T) = 10 -10 Print Sum End Sub,35,Private Sub Command1
20、_Click() Const x As Single = 3.14159 / 3 Dim Sum As Single, n As Integer, T As Single n = 1: T = 1 Do Sum = Sum + T n = n + 1 T = (-1) (n + 1) * x (2 * (n - 1) /F(2 * (n - 1) Loop While Abs(T) = 10 -10 Print Sum End Sub q Function F(ByVal k As Integer) As Double Dim i As Integer F = 1 For i = 2 To k
21、 F = F * i Next i End Function,cos(x)=1-x2/2!+x4/4!-+(-1)n+1x2(n-1)/2(n-1)!+,36,第11章 数列、级数求和及矩阵运算问题,11.2.2 连乘积 11-4: 到通项接近1时停止计算。,Private Sub Command1_Click() Dim Sum As Single, T As Single Sum = 2: T = Sqr(2) Do Sum = Sum * 2 / T T = Sqr(2 + T) Loop While Abs(2 / T - 1) = 10 -10 Print Sum End Sub,3
22、7,第11章 数列、级数求和及矩阵运算问题,11.3.1 矩阵的生成和打印 生成数组 打印数组 11.3.2 矩阵的行列交换 11.3.3 矩阵的变换 11-10:将一个4行4列矩阵进行转置 11-11:求出一给定矩阵的旋转矩阵。,38,第11章 数列、级数求和及矩阵运算问题,11.3.4 寻找某些特殊点 11-12:求6*5数组的鞍点,鞍点是指本行最大、本列最小的元素。 11.3.5 特殊矩阵 按以下样式输出5行杨辉三角。 1 11 1 2 1 1 33 1 1 4 6 4 1,Private Sub Command1_Click() Dim A(5, 5) As Integer, I As
23、 Integer, J As Integer For I = 1 To 5 A(I, 1) = 1 A(I, I) = 1 Next I For I = 3 To 5 For J = 2 To I - 1 A(I, J) = A(I - 1, J - 1) + A(I - 1, J) Next J Next I For I = 1 To 5 Print Space(5 - I); For J = 1 To I Print CStr(A(I, J); ; Next J Print Next I End Sub,39,11.3.6 综合例题,11-4:标记出5*5方阵中每一行最小元素的位置。如果某
24、一行有多个数值相等的最小元素,也要同时标记出来。标记方式为每一行的最小元素为0,其他元素为1。,Option Explicit Option Base 1 Private A(5, 5) As Integer Private Sub Form_click() Text1 = Dim I As Integer, J As Integer Randomize For I = 1 To 5 For J = 1 To 5 A(I, J) = Int(20 - 10 + 1) * Rnd + 10) Text1.Text = Text1 Next i Print Flag = False N = 120
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 程序设计 强化 复习
限制150内