[工学]第3章 结构化程序设计与数组.ppt_第1页
[工学]第3章 结构化程序设计与数组.ppt_第2页
[工学]第3章 结构化程序设计与数组.ppt_第3页
[工学]第3章 结构化程序设计与数组.ppt_第4页
[工学]第3章 结构化程序设计与数组.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 结构化程序设计与数组,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 条件 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 temp = 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 表达式列表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语句捕获,并将控制转去执行一段预先写好的处理错误的语句。 格式: 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所示(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) 循环变量取值不合理,则不执行循环体。如下列循环一次也不执行: 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个在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语句,格式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 = InputBox(“请输入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 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 编程,运行时单击命令按钮后,输入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,对于循环的嵌套,要注意以下事项: 内循环变量与外循环变量不能同名; 外循环必须完全包含内循环,不能交叉; 不能从循环体外转向循环体内,反之则可以。 正确 错误,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)不可以对数组进行整体赋值或进行整体输入输出操作,对数组的操作只能通过数组元素来进行。 (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+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个最小,然后逐个比较,最终第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 编程,计算下列矩阵的乘积并输出。,3.6 实例,例326 编程,计算下列多项式的值,Sum=0 sum=sqr(sum+a(1) j=1 sum=sqr(sum+a(2) j=2 sum=sqr(sum+a(3) j=3,例328 用随机函数产生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个最小,然后逐个比较,最终第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,习题选,目的:掌握If结构的语法规则及其应用 内容: 1、p82 习题六(1) 2、p83习题六(2),习题选,目的:掌握IF语句和Select语句的用法和for循环的应用 内容: 1、 编程,输入t后,按下式计算y值并输出,要求分别写作if结构和Select结构。 t2-1 0t1 t3-2t-2 1t3 y t2-tsint 3t5 t+1 5t7 t-1 其它 2、P81 五(1) 3、P83

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论