第四章VB程序设计概述§4.1结构化程序设计ppt课件.ppt
《第四章VB程序设计概述§4.1结构化程序设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《第四章VB程序设计概述§4.1结构化程序设计ppt课件.ppt(88页珍藏版)》请在三一办公上搜索。
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.1.1 算法及其表示,开 始,开 始,4.1.2 结构化程序
3、设计,结构化程序设计基本思想之一:任何程序都可以采用顺序、选择、循环三种基本结构来构造。这三种结构可以任意组合、嵌套,构造各种复杂的程序。基本结构只有一个入口和一个出口。1、顺序结构:程序流程按照一个方向进行,依次执行各语句。2、选择结构:程序流程出现一个或多个分支,按一定的条件选择其中之一执行,也叫分支结构。中间可以有两条或多条分支。,4.1.2 结构化程序设计,3、循环结构:程序流程按一定的条件重复多次执行一段程序(循环体)。循环结构按退出循环的条件可分为当型(While)循环结构和直到型(Until)循环结构。有效的循环只允许有限次的重复。当型循环:条件成立时执行循环体,条件不成立时退出
4、循环;直到型循环:条件不成立时执行循环体,条件成立时退出循环。,4.1.2 结构化程序设计,三种基本结构有如下共同特点:只有一个入口,一个出口。无死语句,所谓“死语句”是指始终执行不到的语句。 无死循环,即循环次数是有限的。,4.2 顺序结构,顺序结构是一种最简单的算法结构,也是程序设计中最简单、最常用得基本结构。其特点是:算法的每一个操作按照各自出现的先后顺序从上到下线性执行。 用程序处理实际问题时,常常需要用户输入数据或要求程序输出数据。下面介绍几个语句,并由它们组成顺序结构。这些语句包括赋值语句、输入输出语句等。,4.2.1 赋值语句,格式:目标操作符源操作符功能:把源操作符的值赋给目标
5、操作符。 源 操 作 符 :变量、表达式、常量及带有属性的对象 目标操作符:变量和带有属性的对象 = :赋值号 例: Data15 Text1.text=Str(Data) x=x+2 S$=“Welcome”,注 意:(1)赋值语句兼有计算和赋值双重功能;(2) “”是赋值号,与数学上的等号意义不同;(3)“目标操作符”和“源操作符”的数据类型通常要求一致,但VB 提供的对某些数据类型的自动转换机制,可强制变量转换为适当的数据类型。,赋值兼容与数据溢出,4.2.4 注释、暂停与程序结束,格式: 注释内容 或 Rem 注释内容 (1)注释语句是非执行语句。 (2)任何字符均可放在注释语句中作为
6、注释内容。 示例: This is a test statement Rem 计算圆的周长 a=3:b=4:c=5 a,b,c为三角形的边,注释语句,暂停语句,格式:Stop说明: (1)可放置在过程中的任何地方,相当于在程序代码中设置断点,类似于执行“运行”菜单中的“中断”命令。 (2)执行Stop语句时,系统将自动打开“立即窗口”,方便程序员调试跟踪程序。 (3)程序调试结束后,生成可执行文件之前,应删除代码中的所有Stop语句。,结束语句,格式:End功能:通常用来结束一个程序的执行。在不同环境下的其他用途:End Sub:结束一个Sub过程;End Function:结束一个Funct
7、ion过程;End If:结束一个If 语句块;End Type:结束记录类型的定义;End Select:结束情况语句。,4.2.2 数据输入,InputBox 函数,格式:Inputbox$(prompt,title,default ,xpos,ypos,helpfile,context)参数说明: (1)xpos:指定对话框的左边与屏幕左边的距离; (2)ypos:指定对话框的上边与屏幕上边的距离; (3)helpfile:字符串表达式,识别帮助文件,用该文件为对话框提供上下文相关的帮助; (4)context:数值表达式,由帮助文件的作者指定给某个帮助主题的帮助上下文编号,它与 Hel
8、pfile 参数必须同时提供或省略;,Inputbox$(prompt,title,default) (1)prompt:对话框中的提示消息字符串表达式; (2)title:对话框标题栏中的字符串表达式; (3)default:文本框中的字符串表达式,在无其它输入时作为缺省值;若省略default,则文本框为空。,标 题,提 示字符串,用户输入区默认值,【例】 设计一个程序,由用户输入一个华氏温度F,程序可将其转换为摄氏温度C。转换公式为C5/9*(F32),Private Sub Command1_Click( ) End Sub,Private Sub Command2_Click( )
9、EndEnd Sub,Dim F 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)多个表达式之间可以用以下分隔符隔开:
10、 “ ,”:标准输出格式,每 14 列作为一个输出区段 “ ;“:紧凑格式输出(4) 当输出数值数据时,数值的前面有一个符号位,后面有一个空格,而字符串前后都没有空格。,与 Print 方法有关的函数,Tab (n)功能:与 Print 方法一起使用,在参数 n 指定的位置输出其后的 表达式的值。说明: (1)n 是数值表达式,值为整数,若省略,则将输出点移动到下一个输出区(每个输出区占 14 列)的起点; (2)若 n 小于1,则 tab 将输出位置移动到第1列; (3)一个print 方法中使用多个Tab函数时,每个Tab函数对应一个输出项,各项之间用分号隔开。 如:Print Tab(1
11、0); “Good”; tab(26); ”Morning”,Spc(n)功能:与 Print 方法一起使用,使光标从当前位置跳过 n 个空格,对输出进行定位。,注意: (1)Tab 函数中的 n :相对于屏幕最左端第 1 列而言的列号; (2)Spc 函数中的 n :相对于前一输出项的最后 1 个字符所在列而言跳过的空格数。,Tab函数与Spc函数的比较,Format$(数值表达式,格式字符串)功能:使数值表达式的值按“格式字符串”制定的某种格 式输出。 (1)数值格式化输出:见 P61 表42 (2)日期和时间格式化输出:见 P61 表43,例 Print Format(12345.6,
12、“#,#.#”) 输出:12,345.6,例 Print Format(Now, “yyyy年m月dd日hh:mm”) 输出:2007年4月12日,MsgBox 函数和 MsgBox 语句,标 题,提 示字符串,由Type指定的按钮数目、形式和图标,MsgBox函数的返回值是 17 的整数(或相应的符号常量),分别对应7种命令按钮(见P63表45)。函数功能是,根据接收到的用户响应信息,决定程序下一步进行的操作。,MsgBox(msg, type , title )参数说明: (1)msg:对话框提示消息字符串; (2)type:整数值或字符常量,用来控制在对话框内显示的按钮、图标的种类及数量
13、;(见P63表44) (3)title:对话框的标题字符串。,由 MsgBox 函数或 MsgBox 语句所显示的对话框有一个共同特点:在出现对话框后,用户必须作出选择,否则不能执行其他任何操作。,Msgbox,4.3 选择结构,特点:根据给定的条件是否满足,来决定下一步所要执行的操作。,【例】如果星期天天晴,我们就去浏阳河边烧烤;否则,我们就在教室自习。,三种形式: 单行结构、块结构、多分支结构(情况语句),4.3.1 单行结构条件语句,【例】如果星期天天晴,我们就去浏阳河边烧烤;否则,我们就在教室自习。,格式: If Then Else 其中,“条件”通常是关系表达式或逻辑表达式;“语句1
14、”和“语句2”可以是简单句或复合句;Else子句为可选项。,功能:无ELSE选项 条件取值为“真”,执行语句(序列)1; 条件取值为“假”,语句(序列)1就不执行。 有ELSE选项 条件取值为“真”,执行语句1; 条件取值为“假”,执行语句2。,注意:(1)格式中的If、Then、Else 是关键字,并且一定要配对使用;(2)条件一定要是一个逻辑表达式,也就是说条件的结果 一定要是真值或假值;(3)语句是条件判断之后需要执行的命令,它可以是一条命令,也可以是一组命令。,【例】试编一个程序,要求输入任意两个数,然后把它们按照从大到小的顺序输出。,交换a、b的值,【例】 判断一个学生的成绩是否及格
15、。Private Sub Command1_Click() If val(Text1.text)60 Then Text2 =及格 Else Text2 =不及格End sub,简单的选择结构可以使用 IIf( )函数实现。格式:IIf(条件,True部分,False部分)功能:当“条件”为真时,函数返回值为True部分的值 当“条件”为假时,函数返回值为False部分的值,说明: (1)条件是逻辑表达式或关系表达式; (2)True部分和False部分是表达式,它们的返回值必须与结果变量类型一致。,If x1 Then y1 Else y1/ x,IIF函数使用,4.3.2 块结构条件语句,
16、命令格式:If Then ElseIf Then Else End If,功能:若“条件1”成立,执行“语句块1”;否则若“条件2”成立,执行“语句块2”;若上述条件均不成立,执行“语句块n”。,注意: (1)嵌套使用(单行或块嵌套)时,If 命令不得交叉; (2)遵循就近配对原则。,【例】输入系数 a,b 和c,求二次 方程 ax2+bx+c=0 的实根。,开 始,Private Sub Command1_Click( ) End Sub,Dim a!, b!, c!, d!, x1!, x2!, x!a Val(InputBox(“请输入系数 a:)b Val(InputBox(“请输入系
17、数 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 = Val(Text1.Text) I
18、f 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”是一个关键字,不能写成“Else If”。在多行形式的If语句中,代码的排版推荐使用缩进方式,
19、这样不仅有利于阅读程序,也有利于发现错、排除错误。,4.3.3 情况语句,Select Case Case Case Case Else End Select,功能:根据“测试表达式”的值,从多个语句块中选择符合条件的一个语句块执行。( 最多只选择执行其中一个命令序列 ),“表达式表列”的形式:(1) , 测试表达式的值与其中之一相同,就执行该Case子句中的语句块;例 Case 2,4,6,8,10(2) To 当测试表达式的值落在表达式 1和表达式 2之间(含自身),则执行该 Case 子句中的语句块;(表达式1 当测试表达式的值满足“关系表达式”指定条件时,执行该 Case 子句中的语句
20、块。,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, 67, 68, 69 Text2.text = 及格 Case 70 To 89 Text2.text = 良好 Case Is = 100 Text2.text = 优秀 Case else Text2.text = 不合理的成绩End SelectEnd Sub,【例】从键盘上输入学生成绩,然
21、后在文件框中显示其等级(按 5 级计分值输出 “不及格”、“及格”、“中等”、“良好”、“优秀” )。,方法一:,Private Sub Command1_Click( ) End Sub,Dim score As Integer, strx As Stringstart: score InputBox(“请输入学生成绩”)Select Case score Case 0 To 59:strx$ “不及格” Case 60 To 69:strx$ “及格” Case 70 To 79:strx$ “中等” Case 80 To 89:strx$ “良好” Case 90 To 100:strx
22、$ “优秀” Case Else MsgBox “请输入0100 范围内的整数”, , “出错提示” GoTo startEnd SelectText1.Text scoreText2.Text strx$,例,方法二:,4.3.4 选择结构的嵌套,在选择结构的每个分支中,可以是任何语句,也可以再是一个分支结构。这种分支结构中包含另一个分支结构的情况称为分支嵌套。在分支嵌套中应注意的问题: 每个结构必须完整。 外层结构必须完全包住内层结构,不能交叉。 内层结构应采用缩进格式,以使层次清楚。例:完善问候程序,要求输出 : xx先生/女士,上午/下午/晚上好!,【引例】试求 n!(n 为自然数)。
23、,分析:根据数学知识,自然数 n 的阶乘为: n!123n 2! 3n (n1) ! n,也就是说,一个自然数 n 的阶乘,即从 1 开始连续地乘以下一个自然数,直到 n 为止,亦即等于该自然数与前一个自然数的阶乘的乘积。,显然,如采用简单的顺序结构进行程序设计,该程序中必然包含大量重复的语句,处理过程繁琐而低效。 而实际应用中,经常会遇到类似情形,一些操作并不复杂,但需要反复多次进行处理,诸如:人口增长统计、银行存款利率计算等问题,仅简单依靠顺序结构程序设计,不但程序代码效率低,有时甚至是难以实现的。,因此,Visual Basic 提供了循环语句,而利用它构造循环结构的程序来处理类似引例的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 VB 程序设计 概述 4.1 结构 ppt 课件

链接地址:https://www.31ppt.com/p-1874263.html