[工学]第3章 结构化程序设计与数组

上传人:tia****nde 文档编号:70787545 上传时间:2019-01-18 格式:PPT 页数:44 大小:305.23KB
返回 下载 相关 举报
[工学]第3章 结构化程序设计与数组_第1页
第1页 / 共44页
[工学]第3章 结构化程序设计与数组_第2页
第2页 / 共44页
[工学]第3章 结构化程序设计与数组_第3页
第3页 / 共44页
[工学]第3章 结构化程序设计与数组_第4页
第4页 / 共44页
[工学]第3章 结构化程序设计与数组_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《[工学]第3章 结构化程序设计与数组》由会员分享,可在线阅读,更多相关《[工学]第3章 结构化程序设计与数组(44页珍藏版)》请在金锄头文库上搜索。

1、第三章 结构化程序设计与数组,3.1 结构程序设计的三种基本结构 3.2 选择结构 3.3 循环结构 3.4 多重循环 3.5 数组及应用 3.6 实例,3.1 结构化程序设计的三种基本结构,顺序结构:按顺序执行程序,语句1,语句2,选择结构:不同的条件,执行不同的语句块,表达式,语句,语句,True,False,循环结构:重复执行某程序块,表达式,语句,真,假,3.2 选择结构,选择结构的特点是:根据所给定的条件成立与否,来决定从各种实际可能的不同分支中选择执行某一分支的相应操作。在VB中提供的用来实现选择结构的语句主要有If和Select。,3.2.1 IF结构,If基本结构 If 条件

2、then 语句块 Else 语句块 End If,单边条件语句(没有ELSE部分) If 条件 then 块 End If,单行If语句,后面没End If,Then后直接写语句 If 条件 Then 语句组 Else 语句组 若语句组为多句,用冒号隔开,例3-1 分段计算表达式值,If x = 5 Then Text1.Text = 1 - x * x Else Text1.Text = (x - 5) 0.25 End If If x = 5 Then Text1=1 - x * x Else Text1=(x - 5) 0.25,例32 当XY时,交换两个变量,If x y Then t

3、emp = x x = y y = temp End if If x y Then temp = x: x = y: y = temp,例33 求方程的根(P54) (判断b2-4ac是否大于0) 例34 单击窗体以改变显示的内容(P55) (要设置一个模块级变量,保存点击的次数),条件函数Iif函数,函数格式:IIf(逻辑表达式,X1,X2) 当表达式为True时返回X1 当表达式为False时返回X2 例:求x,y中大的数,放入Tmax变量中,语句为: Tmax=Iif(xy,x,y),3.2.2 Select Case语句(情况语句),格式: Select Case 表达式 Case 表

4、达式列表1 语句块1 Case 表达式列表2 语句块2 Case Else 语句块n+1 End Select,表达式列表格式,表达式是同类型的下面3种形式及其列表组合: 表达式,例: “A“ 两表达式之间,例:60 To 100 大于或小于某值,用Is关键词(输入时Is可省略,系统会自动添加),例:Is 60 例3-5 输入x、n,进行多分支计算(P57)。 例36 输入年、月份,输入出该月天数,错误处理语句,On Error GoTo语句 程序在运行时,若产生运行错误,将终止执行。对于可以预见的错误,可以用On Error Goto语句捕获,并将控制转去执行一段预先写好的处理错误的语句。

5、格式: On Error Goto L1 On Error Resume Next 功能:在执行该语句后,若发生运行错误,控制将转去执行标号为L1的语句。,实验、选择结构 目的:掌握IF结构和Select有用法 内容:P82 习题六(1)(2) 提示:三个数的排序与两个数的排序有很大区别,要考虑算法,循环是指在程序设计中,从某处开始有规律地反复执行某一程序块的现象,被重复执行的程序块称为“循环体“。VB提供的设计循环结构的语句有:For/Next、While/Wend、Do/Loop等。 3.3.1 For/Next语句 格式: FOR = TO STEP 循环体 NEXT 功能如图3-3所示

6、(For/Next结构流程图)。 Next后的控制变量可以省略,3.3 循环结构,e30,e30,For-Next循环的执行过程,(1)把初值e1赋给循环变量X,记下终值与步长值 (2)将X的值与循环终值e2比较。如果X越过终值,则跳过(3)(5)步骤而直接执行第(6)步骤;否则接着执行下面(3)(5)步骤。 (3)执行循环体中各语句 (4)遇NEXT语句,循环变量X按指定步长增值,此时控制变量X已经由一个新值代替了原来的值 (5)返回步骤(2) (6)循环执行终止,接着执行NEXT语句的下一个语句,For/Next结构的其它情况,(1)步长缺省值为1。当步长值为零时,循环永不终止。 (2)

7、循环变量取值不合理,则不执行循环体。如下列循环一次也不执行: For n = 99 to 1 step 2 (3)循环变量的主要作用是用来对循环进行控制,决定当时是否应终止循环过程。在循环体内一般不要对循环变量再赋值,否则将影响原有的循环控制状况。 (4) 循环体中可以出现语句“Exit For”,用于将控制转移到Next后一语句。 (5) 循环正常结束(未执行Exit For等控制语句)后,控制变量为最后1次取值加步长。 (6)循环语句中间可以不含循环体。,循环示例,求1+2+3+10的和 求12+22+32+102的和 求12+23+910的积 例3-8 求表达式的值。 例3-9 找出1个

8、在1至1000中被7除余5、被5除余3、被3除余2的数(用Exit For)。 例3-10 输入n个数,输出其中的最大值。 知识点:如何求最大值、最小值,2.5.2 While/Wend 语句,格式:While 循环体 Wend 功能:当条件为真(True)时执行循环体。 While/Wend结构的特点是:先判断条件、后执行循环体,常用于编制某些循环次数预先未知的程序。 While/Wend语句完全可以用Do While-Loop语句代替。 例3_11 输入m,求n的最大值,使得n!m(n+1)!。 例3_12 编程,输入x,求下列级数和直至末项小于10-5为止。,2.5.3 Do/Loop语

9、句,格式1:先判断条件、后执行循环体。有可能1次都不执行 Do While|Until 循环体 Loop 格式2:先执行循环体、后判断条件。至少执行1次 Do 循环体 Loop While|Until 选项“While”当条件为真时执行循环体,选项“Until”当条件为假时执行循环体。 循环体中可以出现语句“Exit Do”,将控制转移到DO/LOOP结构后一语句。,求两个正整数m、n的最大公约数,Private Sub Form Click() Dim m As Integer, n As Integer, r As Integer m = InputBox(“请输入M的值:”) n = I

10、nputBox(“请输入N的值:“) Print m; “和“; n; “的最大公约数是:“ r = m Mod n Do Until m = n : n = r : r = Loop Print n End Sub,例3-13 用以上格式(组合出4种)的Do/Loop循环输出110的平方和 例3-14 判断输入的任意正整数是否是素数。 例3-15 每行10个、输出21000内的素数。,2.5.4 循环的嵌套,一个循环体内又包含了一个完整的循环结构称为循环的嵌套。 两个循环变量,每此外循环变化,都要执行完一轮内循环,循环次数是内外次数之积。,例4.13打印九九乘法表,For i = 1 To

11、9 For j = 1 To 9 se = i Next j Print Next i 思考:打印上三角或下三角程序如何改动?,用二分法求方程的根,步骤: 输入x1、x2,使得f(x1)*f(x2)0 X=(x1+x2)/2 If f(x)*f(x1)0 Then x1=x else x2=x 直到Abs(x1-x2)0.000001,例3-15 我国古代数学家在算经中出了一道题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”。 例3-16 输出乘法口诀表。 例3-17 计算方程x2+y2+z2=2000的所有整数解。 例3-18 编程,运行时单击命令按

12、钮后,输入n(n10)、然后在图片框内输出1个如图3-4所示的n层数字金字塔(图中所示是输入n=7的结果)。,3.4 多重循环应用举例,For ii =1 To 10 For jj=1 To 20 Next ii Next jj,For ii =1 To 10 For ii=1 To 20 Next ii Next ii,For ii =1 To 10 For jj=1 To 20 Next jj Next ii,For ii =1 To 10 Next ii For ii =1 To 10 Next ii,对于循环的嵌套,要注意以下事项: 内循环变量与外循环变量不能同名; 外循环必须完全包含

13、内循环,不能交叉; 不能从循环体外转向循环体内,反之则可以。 正确 错误,3.5 数组及其应用,3.5.1 数组声明与数组元素的引用 1、数组说明 Dim y(5) as Interger Dim t(10) as Single Dim t(1 to 8) as Single Dim Array0(5,5) as Double 2、数组说明符 Dim y(下标界) Dim K(下标界,下标界),(1)把具有同一名字、不同下标的一组“带下标的变量”称为数组;数组中的每一个“带下标的变量”称为数组元素。 (2)同一数组中所有元素的类型相同(变体可存不同类型)。 (3)数组必须先声明、后引用。 (4

14、)不可以对数组进行整体赋值或进行整体输入输出操作,对数组的操作只能通过数组元素来进行。 (5)下标可以用常数、变量、算术表达式、甚至用数组元素来表示。下标的值只能是整数,如果下标的值带有小数,则系统会对它进行四舍五入后自动取整。 (6)在程序的通用对象声明部分可用语句Option Base 1声明所有数组第1个元素下标为1,Option Base 0声明所有数组的第1个元素下标为0(缺省值)。,例3-19:打印数列1、1、2、3、5、8中的前30项,例3-20 编程,编程,输入x1、x2、.、x30,按下列公式计算、输出各点的滑动平均值。 xi i=1 或 i=30 yi= (xi-1+xi+

15、xi+1)/3 1i30,3、数组元素的引用,例3-21 有11个人围成1圈,发贺卡,依次给1、3、6、8、11、2、5、7、10、1、4、6、.号发,问至少发到多少张时每人都有贺卡。 分析: 程序:,例3-28 用随机函数产生N个两位整数,用选择法排序后将它们按值从小到大排序输出。 分析: 程序:,选择法排序,20 5 3 25 1,第1次排序:先假设第k=1个最小,然后逐个比较,最终第k=5个最小,交换a(0)、a(k) 1 5 3 25 20 第2次排序:先假设第k=2个最小,然后逐个比较,最终第k=3个最小,交换a(1)、a(k) 1 3 5 25 20 第3次排序:先假设第k=3个最

16、小,然后逐个比较,最终第k=3个最小,交换a(0)、a(k) 1 3 5 25 20 第4次排序:先假设第k=4个最小,然后逐个比较,最终第k=5个最小,交换a(0)、a(k) 1 5 3 20 25,例3-22 建立一个3行5列的二维数组。数组的前4列由输入对话框输入,第5列为同1行上前面4个数的和。 分析: 例3-23 建立一个5行5列的二维数组,两条对角线上的元素为1,其余元素为0。,3.5.2 动态数组 Dim a(5) as Interger Redim a(10) as Interger 例3_25:编程,输入n(n10)个整数,求它们的最小公倍数。 分析:程序:,例2-31 编程,计算下列多项式的值(n15)。,例2-35 建立一个5行5列的二维数组,两条对角线上的元素为1,其余元素为0。 例2-36

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号