1、第四章 基本控制结构,从本章开始,将分三节介绍结构化程序设计的三个最基本的控制结构顺序结构、选择结构、循环结构。应用这三种结构,,某个事件中的语句是逐条执行,执行过的语句将不再执行。,顺序结构就是一条一条语句的简单排列,程序执行时也就按照书写顺序从上往下顺序执行。,重点内容1,重点内容2,VB中一个功能相对独立的程序段一般包括三个部分,第一部分为变量提供数据,第二部分进行运算处理,第三部分结果输出。为使初学者能尽早进入程序设计状态,本章就程序中第一部分和第三部分在VB下常用技术和方法进行讲述。,提供数据输出数据消息框,举例如下:,为变量提供数据,数据运算,变量输出,一、 输出数据的基本方法,1
2、.通过Print方法输出到窗体2.通过print方法输出到图片框 3.通过标签(Label)输出结果,通过Print方法输出到窗体,关于Print方法,我们在前面已经使用过,使用Print方法控制输出位置最常用的是两个函数:Tab()函数和Spc()函数,上午4时0分23秒,7,科目一考试 http:/ 驾驶员理论考试科目二考试 http:/ 场地考试科目三考试 http:/ 实际道路考试科目四考试 http:/ 安全文明驾驶常识考试2016年驾驶员试题网学车试题大全,1. Tab(n)函数,在Print方法中,Tab(n)是用于确定输出项列位置的函数,通常和输出项之间用分号隔开,格式为: P
3、rint Tab(n); 输出项 表示在某一行第n列输出数据 参见例4-1,2.Spc(n)函数,和Tab函数类似,Spc(n)函数也是控制输出项输出的列位置,其语法要求也基本相同,不同的是Spc函数用来确定输出项之间的空格数。 如:Print Spc(4); 学号; Spc(6); 姓名; Spc(5); 性别 表示“学号”和窗体左边界相隔4个空格,“姓名”和“学号”之间相隔6个空格,“性别”和“姓名”之间相隔5个空格。,通过Print方法输出到图片框,图片框(PictureBox)控件可以输出图形、图像和文本,还可以像窗体一样作为容器包含其它控件,不仅如此,图片框控件具有和窗体相似的属性和
4、方法,图片框主要的方法有Print、Cls等。通过Print方法输出到图片框的格式为: 图片框名.Print Tab(n); 输出项 Print方法如果省略了对象名,则表示默认的对象为窗体(Form)。参见例4-2,通过标签(Label)输出结果,通过标签(Label)输出结果,是通过标签的Caption属性值来实现。,例4-3 鸡兔同笼问题。已知鸡和兔的总头数与总脚数分别为16和40。问笼中鸡和兔子各几只?分析:设有鸡x只,兔y只,鸡和兔的总头数为h,总脚数为f,根据数学知识可以写出下面的方程式,标签、文本框可不可以使用Print、CLS方法?,二、 提供数据的基本方法,(一)使用赋值语句
5、赋值语句是任何程序设计语言中最基本的语句,VB中赋值语句有两种格式: 格式1: Let 变量名=表达式 格式2: Let 对象名.属性名=表达式 第一种格式用于给一个变量赋值,第二种用于修改对象的属性值。先计算右边表达式的值,再赋给左边的变量或属性。,说明: Let 是赋值语句的关键字,是一个可选项,通常省略。 表达式的类型应与变量名的类型一致,即同时为数值型或同时为字符型。当同时为数值型但精度不相同时,强制转换。例如:iA% = 4.7(4舍5入)iA是整型变量,iA中的结果是5,当表达式和变量的类型不同时,将出现编译错误。 可以把字符串或数值表达式的值赋给Variant变量,但反过来不一定
6、正确。,! 使用赋值语句应注意如下问题,1语句格式要正确 (1) 赋值号左边只能是变量名或对象的属性值,不能是函数或表达式。 例如以下形式的赋值语句就是错误的: cos(x)=y 应为 y =os(x) 5=y 应为 y=5 x+3=y 应为 x=x+3,! 使用赋值语句应注意如下问题,(2) “=”为赋值号,而不是数学上的等号。 例如,依次执行x=1和x=3两个语句后,变量x的值为3,这就是变量赋值具有时序性,最后一次赋值的值就是变量的值,将“=”理解为数学上的等号,结果将是不成立的。请大家深入理解三个重要模型:n=n+1 将当前变量n的值加1后再赋给变量n (计数器原理)s=s+x 将当前
7、变量s的值加x后再赋给变量s (累加器原理)f=f*i 将当前变量f的值乘i后再赋给变量f (累乘器原理)这些在数学上都是不成立的,但在程序设计中却是非常重要的。,! 使用赋值语句应注意如下问题,(3) 不能在同一个赋值语句中给多个变量赋值。 如要对x,y,z三个变量赋初值均为1,则必须分别赋值。如写成x=1: y=1: z=1的形式,也可写成x=1: y=x: z=y的形式。但不能写成x=y=z=1的形式。x=y=z=1表示什么意思?,比较如下程序:x=2 t=xy=3 x=yx=y y=tPrint x,y print x,y,! 使用赋值语句应注意如下问题,2数据类型问题 当赋值号左边变
8、量类型与右边表达式类型不一致时,分下面四种情况: (1) 若均为数值型,而类型不同时,以变量类型为准。 (2) 当变量为数值型,而表达式为数字字符串,则自动转换成数值型再赋值。当表达式中有非数字字符或是空字符串时,出现“类型不匹配”。 (3) 当变量为数值型,而表达式为逻辑型时,True转换成-1,False转换成0,反之,数值型数据赋给逻辑型变量时,非0转换为True,0转换成False。 (4) 任何非字符类型赋值给字符型变量,均自动转换为字符型。,! 使用赋值语句应注意如下问题,3变量之间的赋值与交换变量值,需借助一个中间变才能进行交换数据。,程序设计中一个常见的任务是交换两个变量的值。
9、,例如设计程序交换两个变量的值.思考:有两个瓶子x和y,分别装有醋和豆油,如何交换两个瓶子的液体?方法:借用第3个瓶子t算法:T=x:x=y:y=T设计界面:,代码:Private Sub Command1_Click()x = Text1y = Text2T = xx = yy = TText1 = xText2 = yEnd Sub,(二) 使用InputBox函数,在程序设计时,有时要求动态地输入数据,根据输入的数据进行相应的处理。InputBox()函数是实现这种功能最常用的一个函数。InputBox()函数可以弹出一个对话框接由用户从键输入的信息,其使用格式为:变量=InputBox
10、(提示信息,标题,默认值,x坐标,y坐标),(二) 使用InputBox函数,其中: (1) 变量 用于指定接收输入信息的变量。由于该函数接收的是字符串信息,因此变量如要接收数值型数据时,需要用Val( )函数将数字字符串转换成数值型数据。 (2) 提示信息 为字符串表达式,用于指明在对话框中的提示信息,一般用于对要接收的值加以说明。当内容太多需要多行显示时,可在每行行末加回车Chr(13)或换行Chr(10)控制符。 (3) 标题 是一个字符串表达式,指明窗口标题内容,如P63图4-4中,由于没有指明标题,则显示工程名“工程1”。 (4) 默认值 字符串表达式。指明当在输入对话框中无输入时,
11、则该值作为输入的内容。 (5) x坐标与y坐标 整型表达式,用于指定对话框的位置(相对于屏幕左上角),若省略,则出现在屏幕中央。,(二) 使用InputBox函数,如:x=InputBox(“请输入你的Email信箱地址”+Chr(10)+ “请注意地址应写完整!”),程序运行时出现对话框窗口,如图4-4所示。输入内容后单击“确定”按钮或按回车键,输入的内容就赋给变量x。参见图4-4。,标题部分,提示信息,注意: 函数中的各项参数次序必须一一对应,除了“提示”一项不能省略外,其余各项均为可选项,如果要省略某些参数,则必须加入相应的逗号分割符。 strName= InputBox$(“请输入你的
12、姓名然后单击确定”, “输入框”, , 100,100),(二) 使用InputBox函数,例4-4 鸡兔同笼问题。我们可将在程序运行过程中,总头数与总脚数通过InputBox函数输入,最后结果通过Print方法直接输出在窗体上。程序代码可写在窗体的Click事件中,代码如下:Private Sub Form_Click() Dim h As Integer, f As Integer, x As Integer, y % h = Val(InputBox(请输入总头数, 鸡兔同笼, 0) f = InputBox(请输入总脚数, 鸡兔同笼, 0) x = (4 * h - f) / 2 y
13、= (f - 2 * h) / 2 Print 若总头数为 & h & ;若总脚数为 & f & 则 Print 鸡有 & x & 只 Print 兔有 & y & 只End Sub,结果为字符型,数值型数据,(三) 使用文本框,在程序运行时为变量提供数据,除了使用InputBox函数外,还有应用最广泛的是使用文本框,将文本框的Text属性的值赋给给变量,格式为:变量名=对象名.Text其作用是将文本框的值赋给某一变量。同InputBox函数一样,文本框的值也是字符型数据。在应用中,若要得到数值型数据,可通过转化函数Val将字符型数据转化为数值型。,(1)利用Open语句打开文件 Open F
14、or Input As #(2)利用Input语句读出数据 格式:Input #,(3)关闭文件 Close #文件号 让我们一起做一下例4-6,(三) 使用数据文件,三、 MsgBox函数,使用过Windows及其应用软件的人肯定熟悉如图4-7所示的消息框,这在VB中可用MsgBox函数来实现。MsgBox函数的使用格式如下:变量=MsgBox(提示,按钮,标题)其中:(1) 变量 用于指定接收函数的返回值。MsgBox函数的返回值是一个整数,因此变量一般为整型变量。(2) 提示与标题 意义同InputBox函数。(3) 按钮 整型表达式,决定消息框中按钮的数目、类型及出现在消息框上的图标类
15、型。其设置见表4-1。,“按钮”设置值被分成三组。具体使用时,由每一组中取一个值相加而成(当然,并非每次都要取三个值,也可以取两个、一个甚至全部省略)。,三、 MsgBox函数,三、 MsgBox函数,如要产生图4-10所示的消息框,可用如下语句:x=MsgBox(是否保存对第4章基本控制结构.doc的修改?, 3 + vbExclamation + vbdefultbutton1, Microsoft Word)变量x用于记录用户按了消息框中哪一个按钮,不同的按钮返回的值不同。各个按钮的返回值见表4-2。,按钮代号,图标类型,默认按钮,变量的返回值,三、 MsgBox函数(),系统定义的常数
16、,Dim PAI As Single=3.14156,用户自定义的常数,输出数据到文件中 (1) Open For output As # (2) Write #, (3) Close #文件号,四、使用数据文件,让我们一起做一下例4-3,自学内容:框架控件(frame)用于将屏幕上的对象分组,可以把不同的对象放在一个框架中,框架提供了视觉上的分割和修饰窗体 在vb种除框架控件之外,直线、图片框和图像框也能起到分割和修饰窗体的作用,Frame具有总体上的激活/屏蔽特性。 把窗体上(不在frame内)的控件进行分组,并把它们放到一个框架中,可按如下步骤操作: 选择需要分组的控件执行“编辑”-“剪
17、贴”在窗体上画一个框架控件,并保持它为活动状态执行“编辑”-“粘贴”注:为了选择框架中的控件,必须在框架处于非活动状态时,按住ctrl键,然后用鼠标画一个框,使这个框能够“套住”要选择的控件,其interval属性的取值范围为0-65535,因此最大时间间隔不能超过65秒。因为60000毫秒为一分钟,如果把interval属性设置为1000,则表明每秒钟发生一个计时器事件,如果希望每秒钟产生n个事件,则应该设置interval的值为1000/n 计时器支持timer事件,对于一个含有计时器控件的窗体,每经过一段由interval属性指定的时间间隔,就产生一个timer事件。 注: 在vb中,可
18、以用time函数获取系统时钟的时间。Timer事件是vb模拟实时计时器的事件,这是两个不同的时间系统。参见例电子表,习题:指出执行下面赋值语句后各变量的数据类型 (1) a=6=5 (2) a=5+3 (3) a=#11/26/1999# (4) a=Not 5 8 (5) a=5:b=6:c=b=a=8 (6) a=5“:b=6 c=b=a=8,1、实习指导(P325实验4) 2、选择题(P104-110,答案写在书上) 3、判断题(P110,答案写在书上) 4、运行结果题、编程题(P111-114)写在报告中:第5、6次实习:1、2、3 、4、5、6 5、复习第1-3章,预习第4章 基本控制结构,作 业,