程序设计概述结构化程序设计_第1页
程序设计概述结构化程序设计_第2页
程序设计概述结构化程序设计_第3页
程序设计概述结构化程序设计_第4页
程序设计概述结构化程序设计_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章 VB 程序设计概述4.1 结构化程序设计4.2 顺序结构4.4 循环结构4.3 选择结构4.5 综合应用程序举例程序设计概述结构化程序设计4.1 结构化程序设计程序设计方法经历了手工编程、结构化程序设计方法和面向对象的程序设计方法几个阶段。VB作为一种面向对象的程序设计语言,既继承了结构化程序设计的优点,又采用了面向对象、事件驱动的编程机制。就整个工程来说,它是由许多面向对象的事件过程组成的,程序运行过程中通过触发事件,驱动执行相应的事件过程来实现程序员的意图。程序设计概述结构化程序设计4.1.1 算法及其表示 算法是解决问题的方法和步骤。要用计算机来解决一个实际问题,编程时,首先要设

2、计解决这个问题的算法(方法和步骤)。例 将两个变量x和y的值进行交换,设x = 10,y = 20。 分析:变量是存储单元的代名词,存储器可以反复地“读”,“写”,如果直接交换,即x = y : y = x,则x原来的值被覆盖其结果x和y的值都是20。在此可借助一个中间变量t作为一个临时的“容器”。算法为:步骤1:将x的值暂存在t中;步骤2:将y的值存入x中;步骤3:将t的值存入y中。程序设计概述结构化程序设计 算法的几种表示方法: 自然语言、伪代码、PAD图、流程图、N-S结构流程图等等。流程图也称为框图,它是用一些几何图形、流向线和文字说明来表示各种类型的操作。常用的几种图符如图所示。4.

3、1.1 算法及其表示程序设计概述结构化程序设计表示任务的开始或结束表示任务中的命令序列表示任务执行的走向表示对条件进行判断2连接点处理框程序设计概述结构化程序设计开 始打开电脑打开 IE键入 按 Enter 键结 束开 始星期六天晴?结 束去烧烤Y去自习N 来看两个小例子:程序设计概述结构化程序设计4.1.2 结构化程序设计结构化程序设计基本思想之一:任何程序都可以采用顺序、选择、循环三种基本结构来构造。这三种结构可以任意组合、嵌套,构造各种复杂的程序。基本结构只有一个入口和一个出口。1、顺序结构:程序流程按照一个方向进行,依次执行各语句。2、选择结构:程序流程出现一个或多个分支,按一定的条件

4、选择其中之一执行,也叫分支结构。中间可以有两条或多条分支。程序设计概述结构化程序设计4.1.2 结构化程序设计3、循环结构:程序流程按一定的条件重复多次执行一段程序(循环体)。循环结构按退出循环的条件可分为当型(While)循环结构和直到型(Until)循环结构。有效的循环只允许有限次的重复。当型循环:条件成立时执行循环体,条件不成立时退出循环;直到型循环:条件不成立时执行循环体,条件成立时退出循环。当型循环直到循环程序设计概述结构化程序设计4.1.2 结构化程序设计三种基本结构有如下共同特点:只有一个入口,一个出口。无死语句,所谓“死语句”是指始终执行不到的语句。 无死循环,即循环次数是有限

5、的。程序设计概述结构化程序设计4.2 顺序结构顺序结构是一种最简单的算法结构,也是程序设计中最简单、最常用得基本结构。其特点是:算法的每一个操作按照各自出现的先后顺序从上到下线性执行。 用程序处理实际问题时,常常需要用户输入数据或要求程序输出数据。下面介绍几个语句,并由它们组成顺序结构。这些语句包括赋值语句、输入输出语句等。程序设计概述结构化程序设计4.2.1 赋值语句格式:目标操作符源操作符功能:把源操作符的值赋给目标操作符。 源 操 作 符 :变量、表达式、常量及带有属性的对象 目标操作符:变量和带有属性的对象 = :赋值号 例: Data15 Text1.text=Str(Data) x

6、=x+2 S$=“Welcome”程序设计概述结构化程序设计注 意:(1)赋值语句兼有计算和赋值双重功能;(2) “”是赋值号,与数学上的等号意义不同;(3)“目标操作符”和“源操作符”的数据类型通常要求一致,但VB 提供的对某些数据类型的自动转换机制,可强制变量转换为适当的数据类型。赋值兼容与数据溢出程序设计概述结构化程序设计4.2.4 注释、暂停与程序结束格式: 注释内容 或 Rem 注释内容 (1)注释语句是非执行语句。 (2)任何字符均可放在注释语句中作为注释内容。 示例: This is a test statement Rem 计算圆的周长 a=3:b=4:c=5 a,b,c为三角

7、形的边注释语句程序设计概述结构化程序设计暂停语句格式:Stop说明: (1)可放置在过程中的任何地方,相当于在程序代码中设置断点,类似于执行“运行”菜单中的“中断”命令。 (2)执行Stop语句时,系统将自动打开“立即窗口”,方便程序员调试跟踪程序。 (3)程序调试结束后,生成可执行文件之前,应删除代码中的所有Stop语句。程序设计概述结构化程序设计结束语句格式:End功能:通常用来结束一个程序的执行。在不同环境下的其他用途:End Sub:结束一个Sub过程;End Function:结束一个Function过程;End If:结束一个If 语句块;End Type:结束记录类型的定义;En

8、d Select:结束情况语句。程序设计概述结构化程序设计4.2.2 数据输入InputBox 函数格式:Inputbox$(prompt,title,default ,xpos,ypos,helpfile,context)参数说明: (1)xpos:指定对话框的左边与屏幕左边的距离; (2)ypos:指定对话框的上边与屏幕上边的距离; (3)helpfile:字符串表达式,识别帮助文件,用该文件为对话框提供上下文相关的帮助; (4)context:数值表达式,由帮助文件的作者指定给某个帮助主题的帮助上下文编号,它与 Helpfile 参数必须同时提供或省略;程序设计概述结构化程序设计Inpu

9、tbox$(prompt,title,default) (1)prompt:对话框中的提示消息字符串表达式; (2)title:对话框标题栏中的字符串表达式; (3)default:文本框中的字符串表达式,在无其它输入时作为缺省值;若省略default,则文本框为空。标 题提 示字符串用户输入区默认值程序设计概述结构化程序设计【例】 设计一个程序,由用户输入一个华氏温度F,程序可将其转换为摄氏温度C。转换公式为C5/9*(F32)Private Sub Command1_Click( ) End SubPrivate Sub Command2_Click( ) EndEnd Sub Dim F

10、 As Long, C As LongF Val(InputBox(请输入华氏温度, 例4-1)C 5 / 9 * (F - 32)Text1.Text FText2.Text C华氏摄氏温度互换程序设计概述结构化程序设计4.2.3 数据输出Print 方法格式: 对象名. Print 表达式表 说明: (1)“对象名”可以是窗体、立即窗口、图片框、打印机等的名称(Name 属性),若省略对象名在当前窗体上输出; (2)“表达式表”是一个或多个表达式,可为数值表达式(求出表达式的值然后输出)或字符串(原样输出)。如若省略,则输出一空行; (3)多个表达式之间可以用以下分隔符隔开: “ ,”:标

11、准输出格式,每 14 列作为一个输出区段 “ ;“:紧凑格式输出(4) 当输出数值数据时,数值的前面有一个符号位,后面有一个空格,而字符串前后都没有空格。 程序设计概述结构化程序设计1218161519151614 列为1个输出区程序设计概述结构化程序设计与 Print 方法有关的函数Tab (n)功能:与 Print 方法一起使用,在参数 n 指定的位置输出其后的 表达式的值。说明: (1)n 是数值表达式,值为整数,若省略,则将输出点移动到下一个输出区(每个输出区占 14 列)的起点; (2)若 n 小于1,则 tab 将输出位置移动到第1列; (3)一个print 方法中使用多个Tab函

12、数时,每个Tab函数对应一个输出项,各项之间用分号隔开。 如:Print Tab(10); “Good”; tab(26); ”Morning” 程序设计概述结构化程序设计Spc(n)功能:与 Print 方法一起使用,使光标从当前位置跳过 n 个空格,对输出进行定位。注意: (1)Tab 函数中的 n :相对于屏幕最左端第 1 列而言的列号; (2)Spc 函数中的 n :相对于前一输出项的最后 1 个字符所在列而言跳过的空格数。Tab函数与Spc函数的比较程序设计概述结构化程序设计415201016程序设计概述结构化程序设计Format$(数值表达式,格式字符串)功能:使数值表达式的值按“

13、格式字符串”制定的某种格 式输出。 (1)数值格式化输出:见 P61 表42 (2)日期和时间格式化输出:见 P61 表43 程序设计概述结构化程序设计例 Print Format(12345.6, “#,#.#”) 输出:12,345.6程序设计概述结构化程序设计例 Print Format(Now, “yyyy年m月dd日hh:mm”) 输出:2007年4月12日程序设计概述结构化程序设计MsgBox 函数和 MsgBox 语句 格式: MsgBox(msg,type,title) MsgBox 函数 标 题提 示字符串由Type指定的按钮数目、形式和图标程序设计概述结构化程序设计 Msg

14、Box函数的返回值是 17 的整数(或相应的符号常量),分别对应7种命令按钮(见P63表45)。函数功能是,根据接收到的用户响应信息,决定程序下一步进行的操作。MsgBox(msg, type , title )参数说明: (1)msg:对话框提示消息字符串; (2)type:整数值或字符常量,用来控制在对话框内显示的按钮、图标的种类及数量;(见P63表44) (3)title:对话框的标题字符串。程序设计概述结构化程序设计程序设计概述结构化程序设计程序设计概述结构化程序设计 MsgBox 语句格式: MsgBox Msg$ ,type,title说明: (1)各参数的含义及作用与MsgBox

15、函数相同; (2)但MsgBox语句没有返回值,它仅是一个简单语句,因此常被用于简单的信息显示。 由 MsgBox 函数或 MsgBox 语句所显示的对话框有一个共同特点:在出现对话框后,用户必须作出选择,否则不能执行其他任何操作。 Msgbox程序设计概述结构化程序设计4.3 选择结构特点:根据给定的条件是否满足,来决定下一步所要执行的操作。【例】如果星期天天晴,我们就去浏阳河边烧烤;否则,我们就在教室自习。?三种形式: 单行结构、块结构、多分支结构(情况语句)程序设计概述结构化程序设计4.3.1 单行结构条件语句【例】如果星期天天晴,我们就去浏阳河边烧烤;否则,我们就在教室自习。if条 件

16、then语句1语句2else 格式: If Then Else 其中,“条件”通常是关系表达式或逻辑表达式;“语句1”和“语句2”可以是简单句或复合句;Else子句为可选项。程序设计概述结构化程序设计条 件条 件语句 (序列)1True语句 1True下一个语句False下一个语句语句 2Else 功能:无ELSE选项 条件取值为“真”,执行语句(序列)1; 条件取值为“假”,语句(序列)1就不执行。 有ELSE选项 条件取值为“真”,执行语句1; 条件取值为“假”,执行语句2。程序设计概述结构化程序设计 注意:(1)格式中的If、Then、Else 是关键字,并且一定要配对使用;(2)条件一

17、定要是一个逻辑表达式,也就是说条件的结果 一定要是真值或假值;(3)语句是条件判断之后需要执行的命令,它可以是一条命令,也可以是一组命令。程序设计概述结构化程序设计 【例】试编一个程序,要求输入任意两个数,然后把它们按照从大到小的顺序输出。开 始给 a、b 赋值ab?依次输出 a、b 值N依次输出b、a的值YDim A,B As Singlea=InputBox(“请输入a的值:” )b=InputBox(“请输入b的值:”)If a60 Then Text2 =及格 Else Text2 =不及格End sub程序设计概述结构化程序设计 简单的选择结构可以使用 IIf( )函数实现。格式:I

18、If(条件,True部分,False部分)功能:当“条件”为真时,函数返回值为True部分的值 当“条件”为假时,函数返回值为False部分的值 说明: (1)条件是逻辑表达式或关系表达式; (2)True部分和False部分是表达式,它们的返回值必须与结果变量类型一致。 If x1 Then y1 Else y1/ xIIf(x1,1,1/ x)IIF函数使用程序设计概述结构化程序设计4.3.2 块结构条件语句命令格式:If Then ElseIf Then Else End If 功能:若“条件1”成立,执行“语句块1”;否则若“条件2”成立,执行“语句块2”;若上述条件均不成立,执行“语

19、句块n”。注意: (1)嵌套使用(单行或块嵌套)时,If 命令不得交叉; (2)遵循就近配对原则。程序设计概述结构化程序设计【例】输入系数 a,b 和c,求二次 方程 ax2+bx+c=0 的实根。开 始输入 a,b,c d b 24ac d 0 d 0N xb/2a输出 xY输出此方程无实根N结 束输出 x1,x2Y x1(b d )/2a x2(b d )/2a程序设计概述结构化程序设计Private Sub Command1_Click( ) End SubDim a!, b!, c!, d!, x1!, x2!, x!a Val(InputBox(“请输入系数 a:)b Val(Inp

20、utBox(“请输入系数 b:)c Val(InputBox(“请输入系数 c:)d b * b 4 * a * cIf d 0 Then x1 (b + Sqr(d) / (2 * a) x2 (b Sqr(d) / (2 * a) Print x1; x1, x2; x2Else If d 0 Then x b / (2 * a) Print x; x Else Print 此方程无实根 End IfEnd If程序代码:语句块 1语句块 2语句块 3程序设计概述结构化程序设计 例 编程求符号函数sgn(x)的值。 程序代码如下:Private Sub Command1_Click() x

21、 = Val(Text1.Text) If x 0 Then Text2.Text = 1 ElseIf x = 0 Then Text2.Text = 0 Else Text2.Text = -1 End IfEnd Sub 用户界面程序设计概述结构化程序设计单行形式If语句与多行形式的If语句的区别。前者适用于简单的二叉分支的情况,后者适用于多分支的情况。前者可以改写为后者的形式。前者必须写在一行中;后者必须写成多行,并且在关键字“Then”后面必须回车。后者必须是If开头,End If结束,两者必须成对出现。但是,前者没有End If。后者中“ElseIf”是一个关键字,不能写成“Els

22、e If”。在多行形式的If语句中,代码的排版推荐使用缩进方式,这样不仅有利于阅读程序,也有利于发现错、排除错误。程序设计概述结构化程序设计4.3.3 情况语句Select Case Case Case Case Else End Select表达式表列 1语句块 1YEnd Select 之后的下一条语句N其 它?N表达式表列 2N语句块 nY语句块 2Y程序设计概述结构化程序设计功能:根据“测试表达式”的值,从多个语句块中选择符合条件的一个语句块执行。( 最多只选择执行其中一个命令序列 )“表达式表列”的形式:(1) , 测试表达式的值与其中之一相同,就执行该Case子句中的语句块;例 C

23、ase 2,4,6,8,10(2) To 当测试表达式的值落在表达式 1和表达式 2之间(含自身),则执行该 Case 子句中的语句块;(表达式1 表达式2)例 Case 2 To 10(3)Is 当测试表达式的值满足“关系表达式”指定条件时,执行该 Case 子句中的语句块。程序设计概述结构化程序设计Private Sub Command1_Click()Select Case Val(Text1.Text) Case Is 0 Text2.text = 不合理的成绩“ Case Is 60 Text2.text = 不及格 Case 60, 61, 62, 63, 64, 65, 66,

24、67, 68, 69 Text2.text = 及格 Case 70 To 89 Text2.text = 良好 Case Is 终值?循环变量循环变量步长执行循环体N(a) 步长为正数For-Next 循环的逻辑流程开 始(b) 步长为负数循环变量初值循环变量10,转到 ,否则执行循环体; i 增加一个步长值,即 i i1; 返回 继续执行; 执行 Next 后面的语句。 循环变量是 i, 循环初值是 1, 循环终值是 10, 步长为正值 1, 循环体包含两个语句: tti Print t!思考:这个循环结构完成什么 程序功能?程序设计概述结构化程序设计 (1) For 语句和 Next 语

25、句必须成对出现,且 For 语句必须在 Next 语句之前。 (2) For 循环方便实现对一个语句序列执行固定次数的循环,其循环次数的计算公式为: 循环次数Int(终值初值)/步长1。 程序设计注意点:程序设计概述结构化程序设计【例】试求 n!(n 为自然数)。 分析:根据数学知识,自然数 n 的阶乘为: n!123n 2! 3n (n1) ! n 也就是说,一个自然数 n 的阶乘,即从 1 开始连续地乘以下一个自然数,直到 n 为止,亦即等于该自然数与前一个自然数的阶乘的乘积。程序设计概述结构化程序设计Private Sub Form_Click( ) Dim N As Integer N

26、InputBox(“Enter N:”) Result1 For i1 To N ResultResult * i Next i Print N;”!”;Result End SubVB 程序如下:程序设计概述结构化程序设计 【例】每只公鸡价值 5 个钱,每只母鸡价值 3 个钱,每 3 只小鸡价值 1 个钱。现有 100 个钱想买 100 只鸡,问公鸡、母鸡、小鸡各应买几只? 据题意,设 x, y,z 分别为公鸡、母鸡、小鸡的数目,则可得到不定方程组:5x3yz/3100 xyz100 所以,用 VB 程序解决百钱买百鸡问题的过程,就是编程求解下面方程组的过程。程序设计概述结构化程序设计 那么

27、,对于上述方程组进行求解,就是要找到所有那些同时满足两个方程的参数 x,y,z 值的组合,即在某个参数值确定的情况下,分别判定另两个参数与之组合能否满足等式要求。逐个进行重复操作(即判定)显然符合使用循环的条件。 然而这里遇到一个问题,虽然已经知道程序中间需要用到循环结构,然而仅仅依靠前面学习的单重循环(即程序中只用一层循环)也无法实现问题的解答,因为方程参数有 3 个。 因此,许多时候遇到类似的复杂问题,要实现求解,就必须用到更复杂的循环结构,即多重循环。这就是在程序设计中使用循环的嵌套。程序设计概述结构化程序设计 (4) For 循环进行嵌套使用时,有基本要求:每个循环必须有一个唯一的变量

28、名作为循环变量;内层循环的Next语句必须放在外层循环的 Next语句之前,内外循环不得互相骑跨。下例所示嵌套错误:For j1 To 5 For i 2 To 8 Next j Next i骑跨程序设计概述结构化程序设计 For-Next 循环的嵌套形式有以下三种: 一般形式:For I1= For I2= For I3= Next I3 Next I2Next I1省略Next后的 参数:For I1= For I2= For I3= Next NextNext内外层循环终 点相同时:For I1= For I2= For I3= Next I3,I2,I1程序设计概述结构化程序设计 这样

29、一来,可用循环嵌套来解决百钱买百鸡问题,再次分析题意及方程组:5x3yz/3100 xyz100(1)各层循环的循环变量初值与终值为 1 和 100 ;(2)循环中步长为 1 ;(3)循环体的内容,就是判断符合方程等式的各组 x, y,z 值的语句。 显然,各种鸡最多可买的数量为 100 ,所以方程变量 x,y,z 的取值范围就是1100。所以: 由此确定了 For 循环中各组成部分,可以进行代码编写。程序设计概述结构化程序设计据此,编写 VB 程序如下:Private Sub Form_Click( )End Sub 显然,这个三重循环结构简单清晰,但程序效率极低,因为需要执行的循环次数为:

30、 1001001001,000,000 事实上,稍加分析发现,每重循环都执行 100 次没有必要。因为100 钱最多能买 20 只公鸡,即在最外层循环最多能执行 20 次,以此类推,可修改程序以减少循环执行次数!For x1 To 100 For y1 To 100 For z1 To 100 Sumxyz RSum5*x3*yz/3 If (Sum100) And (RSum100) Then Print x,y,z End If Next z Next yNext x程序设计概述结构化程序设计修改后的 VB 程序如下:Private Sub Form_Click( )End Sub 循环次

31、数大大减少! 注意到程序中仍然存在三重循环嵌套,需要对程序进一步优化以缩短程序运行时间,提高效率!For x0 To 20 For y0 To 34x For z0 To 100 Sumxyz RSum5*x3*yz/3 If (Sum100) And (RSum100) Then Print x,y,z End If Next z Next yNext x程序设计概述结构化程序设计优化后的 VB 程序如下:Private Sub Form_Click( )End Sub 使用一个数值表达式,省去最内层循环,使三重循环变为二重循环! 不使用中间变量,直接把条件列入 If 语句,提高程序代码质量

32、。For x0 To 20 For y0 To 34-x z100 xy If 5*x3*yz/3100 Then Print x,y,z End If Next yNext x程序设计概述结构化程序设计 (5)使用 Exit For 语句可以实现在循环变量达到终值前便退出循环,并允许一次或多次地出现在循环体中的任何位置。但它仅能退出所在的最内层循环,如上例:For i1 to 100 For j1 to 100 Print ij; If i*j5000 Then Exit For Next jNext i 程序设计概述结构化程序设计 (6)For 循环中的“循环体”是可选项,当该项默认时,执

33、行 “空循环” ,在实际运用中可实现暂停操作。当循环结束时,暂停也相应结束。 在某特定条件得到满足的情况下,按规定的次数重复执行一个语句(序列)。 For 循环实现的程序功能:程序设计概述结构化程序设计4.4.2 While 循环结构功能:当给定条件为 True 时,执行循环体。说明:(1)先测试“条件”,再决定是否执行循环; (2)循环体中应含有对“条件”的修改操作,使循环体能正常结束;否则,会构成死循环; (3)循环可嵌套,不许交叉,每个 Wend 和最近的 While 相匹配。开 始计算“条件”值条件为“真”吗结 束N循 环 体Y格式: While 条件 循环体 Wend程序设计概述结构

34、化程序设计【例】 小红今年12岁,她父亲比她大30岁,编程计算出她父亲在几年后比她年龄大一倍,那时父女的年龄各为多少?Dim age As Integerage 12While age * 2 age + 30 age age + 1WendPrint “经过”; age 12; _ “年,小红父女的年龄分别是:” ; _ age + 30; 和; agePrivate Sub Command1_Click( ) End Sub程序设计概述结构化程序设计4.4.3 Do 循环结构程序设计格式1: Do While | Until Exit Do Loop格式2: Do Exit Do Loop

35、 While | Until Do WhileLoop流 程 图计算“条件”值条件 “真”吗循环体YN开 始结 束NYDoLoop While流 程 图开 始结 束计算“条件”值循环体条件 “真”吗YNDoLoop Until流 程 图开 始结 束计算“条件”值循环体条件 “真”吗Do UntilLoop流 程 图NY开 始结 束计算“条件”值循环体条件 “真”吗程序设计概述结构化程序设计Private Sub Command1_Click( ) End Sub【例】 编写程序,对任意输入的正整数 n(n=3) 判断其是否为素数。Dim n%, i%, k%n = Val(InputBox(“

36、请输入一个正整数 (3):”)i = 2k = Int(n / 2)Do While i k Then Print n; “是素数!” Else Print n; “不是素数!k=int(sqr(n)程序设计概述结构化程序设计【例】 输入两个正整数,求它们的最大公约数。 辗转相除法:用两数中的大数除以小数,并将所除得到的余数作为下一次的除数再除上一次的除数;如此往复,直至余数为 0,则最后一次的除数就是最大公约数。Dim m%, n%, r%, t%mVal(InputBox(“请输入第一个整数:”)n Val(InputBox(“请输入第二个整数:”)If m n Then tm: mn:

37、ntDo r m Mod n mn n rLoop Until r 0Print “它们的最大公约数是:; mPrivate Sub Command1_Click( ) End Sub程序设计概述结构化程序设计4.4.4 循环结构的嵌套 在一个循环结构的循环体内含有另一个循环结构,称为循环嵌套,又称为多重循环。 多重循环用于复杂问题的求解过程,可以是同类循环的嵌套使用,也可以是不同类循环的相互嵌套。 思路:(1)确定程序结构,考虑是否需要使用循环;(2)根据实际需要和当前条件,确定应使用的循环类型;(3)提取循环中各组成要素,一一罗列;(4)将各要素进行组合。程序设计概述结构化程序设计使用嵌套

38、时应注意以下几个问题:嵌套中的各个控制结构必须完整,内外结构不能交叉。内外循环变量也不能同名。与IFEndIf语句一起使用时,只能从循环内跳到循环外,不能从循环外跳到循环内,也不能从外循环跳到内循环。嵌套中使用强制退出语句Exit只退出本层循环。输入代码时嵌套中各层结构应采用总体缩排,以使层次分明。For与Next配对的规则:从最内层的循环往外看,next总是与离它最近的没有配过对的For配对。可以省略Next后面的循环变量。当内外循环有相同的终点时,可以共用同一个Next语句,此时Next后面的循环变量名不能省略。并列的循环可以用同一个变量名作循环变量,而嵌套的循环不能用同一个变量名作循环变

39、量。4.4.4 循环结构的嵌套程序设计概述结构化程序设计【例】 用台劳多项式求 SinX 的近似值。分析: (1)SinX 的初值为 X ; (2)有一求和过程,求和对象: (1)n1*X2n1) / (2n1)! (3)存在大量重复操作,根据需要应设计两个循环: a. 外层循环用于实现各分数项的累加; b. 内层循环用于求各项分子、分母; 其中: Factor : (2*n1)的阶乘 Xpower : X2n1 标志位 sign: (1)n1程序设计概述结构化程序设计Private Sub Command1_Click( ) End SubDim n As IntegerDim x As s

40、ingleDim y As doublex = InputBox(“请输入X:”)n = InputBox(“请输入 n:”)y = x : sign = 1For i = 2 To n Factor = 1 : Xpower = 1 For j = 1 To 2*i1 Factor = Factor*j Xpower = Xpower*x Next j sign = sign y = ysign*Xpower/FactorNext iPrint “SinX”;y实现多项式逐项相加求得各求和项的分子和分母Factor :(2*n1)!Xpower :X2n1Sign:(1)n1程序设计概述结构

41、化程序设计【例】 输出 100200 之间的所有素数。Private Sub Command1_Click( ) End SubNumber = 0For x = 101 To 199 Step 2 i = 2: k = Int(x/2) Do While i k Then Number = Number1 If Number mod 5 = 0 Then Print x Else Print x, End IfNext x使求得的素数确在100 200之间判定 X是否为素数程序设计概述结构化程序设计格式:GoTo 功能:把控制转移到“标号”所在的程序行,并从该行开始往下执行。说明: (1)标

42、号是一个标识符或整型数; (2)程序必须给GoTo语句提供唯一的转向入口,入口处格式为: (3)不能用GoTo语句转向另一个过程。 4.4.5 Goto语句例5-5程序设计概述结构化程序设计例 Private Sub Form_click() I = 0: s = 0 Start: I = I + 1: s = s + I If I = 100 Then GoTo Ending GoTo Start Ending: Print “s=”; s End Sub 该程序是通过GoTo语句完成循环的,其中Start与Ending是两个标号,本程序实现的是求 1+2+3+100的值。 由于GoTo语句易破坏程序的结构,因此一般不提倡使用。程序设计概述结构化程序设计4.5 综合应用程序举例 本节主要考虑常用算法程序设计,因此所有的程序均只在Form或Command控件的单击事件中编写,而不考虑介面设计与属性设置。一般步骤如下:第一步: 分析问题 确定要使用的数据(输入、输出),确定相关变量。 确定算法, 从有限步的输入中获取输出。 确定操作顺序, 以便在有限步内解决问题。第二步: 画出程序的基本轮廓对一个简单的程序来说,可列出程序顺序执行的动作。第三步:实现程序

温馨提示

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

评论

0/150

提交评论