第四章 vb基本的控制结构_第1页
第四章 vb基本的控制结构_第2页
第四章 vb基本的控制结构_第3页
第四章 vb基本的控制结构_第4页
第四章 vb基本的控制结构_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、uInputBox函数作用:打开一个对话框,等待用户输入,返回作用:打开一个对话框,等待用户输入,返回字符串类字符串类型型的输入值。的输入值。形式:InputBox(提示提示,标题标题,默认值默认值,x坐标位置坐标位置,y坐标位置坐标位置)其中:提示项不能省略。若要多行显示,可在每行行末加回车换行符号常数vbCrLf。例例4.1 利用利用InputBox输入基本工资和营业额,按输入基本工资和营业额,按营业额营业额的的5%提成提成,计算出实发工资后用,计算出实发工资后用Print方法在窗体显示。方法在窗体显示。 下页有分析与代码提示:为一字符串表达式,在对话框中作为信息显示,若要在多行显示,必须

2、在每行行末加回车Chr(13)和换行Chr(10)控制符,不能省略该项。例要在屏幕上显示图示的例要在屏幕上显示图示的对话框对话框: :作用:作用:打开一个信息框,等待用户选择一个按按钮。 MsgBox函数返回所选按钮的值, MsgBox过程不返回值MsgBox函数形式: 变量变量% = MsgBox(提示提示,按钮按钮,标题标题)MsgBox过程形式: MsgBox 提示提示,按钮按钮,标题标题按钮项是一整型表达式,决定信息框按钮的数目和类型及出现在信息框上的图标形式。 按钮值如下按钮值如下: : 函数返回所选按钮整数值函数返回所选按钮整数值: :2.u PrintPrint方法 作用:在对象

3、上输出信息。 形式:对象.PrintPrintSpc(n)|Tab(n)表达式列表;|, 其中: 对象:窗体、图形框或打印机。缺省对象为窗体。 Spc(n)函数:从当前打印位置起空n个空格。 Tab(n)函数:从最左端开始计算的第n列。 分号:定位在上一个被显示的字符之后。 逗号:定位在下一个打印区开始处(每个14列)。 PrintPrint语句尾无分号或逗号,表示输出后换行。语句尾无分号或逗号,表示输出后换行。形式:形式: Format Format (表达式表达式, 格式字符串格式字符串)常用数值格式化符及举例常用数值格式化符及举例 1.23E-010.00E+001234.567用指数表

4、示E+$1234.57$#.#1234.567在数字前强加123456.7%#.#%1234.567数值乘以100,加百分号%1,234.567#,#0.0001234.567千分位,1234.567#.#1234.567位置不足时不填充0#01234.567000000.00001234.567用0填充不足的位置0显示结果格式字符串表达式作 用符号例例4.4 利用利用Format函数显示数值。函数显示数值。 计算机要处理的问题往往是复杂多变的,仅采用顺序结构是不够的。必须利用选择结构等来解决实际应用中的各种问题。VB中提供了多种形式的条件语句来实现选择结构,有If条件语句和Select Ca

5、se情况语句等。它们都是对条件进行判断,根据判断结果,选择执行不同的分支。 1. IfThen语句(单分支结构) If If Then Then 语句块语句块(可以是一句或多句语句) End IfEnd If或或 If If Then Then 表达式:关系表达式、逻辑表达式,算术表达式。表达式值按非零为True,零为False进行判断。该语句的作用是当表达式的值为True,执行Then后面的语句块,否则不做任何操作。表达式 语句块 T F 例:例:已知两个数已知两个数x x和和y y,比较它们的大小,使得,比较它们的大小,使得x x大于大于y y。 本章目录本章目录If xy Then t=

6、x x=y y=tEnd If 或或 If xy Then t=x: x=y: y=t 简单简单IfIf形式无形式无End IfEnd If,只能是一句语句或语句间,只能是一句语句或语句间用冒号分隔,而且必须在一行上书写。用冒号分隔,而且必须在一行上书写。 t y x2. IfThenElse语句语句 If 表达式表达式 Then 语句块语句块1 Else 语句块语句块2 End If或或 If 表达式表达式 Then 语句语句1 Else 语句语句2 当表达式的值为当表达式的值为True时,执行时,执行Then后面的语句块后面的语句块1,否则执行否则执行Else后面的语句块后面的语句块2 表

7、达式 F 语句块 1 T 语句块 2 计算分段函数yxxxxxxxsincos231030单分支结构实现: y=cos(x)x3+3*x If x0 Then y=sin(x)+sqr (x*x+1) 双分支结构实现: If x0 Then y=sin(x)+sqr (x*x+1) Else y=cos(x)x3+3*x End If 表 达 式 2 表 达 式n T F T F 语 句 块 n+1 语 句 块 2 语 句 块 1 F T 表 达 式 1 语 句 块 n 该语句的作用是根据不同的表达式值确定执行哪该语句的作用是根据不同的表达式值确定执行哪个语句块个语句块 3. IfThenEl

8、seIf3. IfThenElseIf语句语句 If If 表达式表达式1 Then1 Then 语句块语句块1 1 ElseIf ElseIf 表达式表达式2 Then2 Then 语句块语句块2 2 Else Else 语句块语句块 n+1 n+1 End IfEnd If例例4.5已知变量已知变量strC中存放了一个字符,判断该字符中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。是字母字符、数字字符还是其他字符。 If Ucase(strC) =A And Ucase (strC) =0 And strC 0) Y= 0 (X=0) 1X2 (X0成立,则利用表达式计算成立

9、,则利用表达式计算Y的值;的值;否则,如果否则,如果X0成立,则利用表达式计算成立,则利用表达式计算Y的值;的值;否则,否则,X0一定成立,利用表达式计算一定成立,利用表达式计算Y的值。的值。这就形成了选择结构的嵌套。这就形成了选择结构的嵌套。Select Case 测试变量或表达式测试变量或表达式Case 表达式列表表达式列表1 语句块语句块1Case 表达式列表表达式列表2 语句块语句块2Case Else 语句块语句块n+1End Select表达式列表表达式列表与变量或表达式变量或表达式的类型必须相同,是下面4种形式之一 :表达式 例例: : AA一组用逗号分隔的枚举值 例例: 2,4

10、,6,8表达式1 To 表达式2 例:例:60 To 10060 To 100Is 关系运算符表达式 例:例: Is 60Is =A And Ucase (strC) =0 And strC 0 And y 0 Then MsgBox(在第一象限在第一象限) ElseIf x 0 Then MsgBox(在第二象限在第二象限)ElseIf x 0 And y 0 And y 0 And y 0 MsgBox(“在第一象限在第一象限”) Case x 0 MsgBox(“在第二象限在第二象限”) Case x 0 And y 0 And y y,x,y)该语句与如下语句等价该语句与如下语句等价

11、: If x y Then Tmax = x Else Tmax = y If x y Then Tmax = x Else Tmax = y 例例4.7 4.7 根据当前日期函Now、WeekDay,利用Choose函数显示今日是星期几的形式。 提示:用Now或Date函数可获得今天的日期;WeekDay函数可获得指定日期是星期几的整数,规定星期日是1,星期一是2,依次类推。t = Choose(Weekday(Now), “t = Choose(Weekday(Now), “星期日星期日”, “, “星期星期一一”, “, “星期二星期二”, “, “星期三星期三”, “, “星期四星期四

12、”, , “星期五星期五”, “, “星期六星期六”) )MsgBox(MsgBox(今天是:今天是: & Now & t) & Now & t) 例例4.8由计算机来当一年级的算术老师,要求给出一系列的110的操作数和运算符,学生输入该题的答案,计算机根据学生的答案判断正确与否,当结束时给出成绩。 分析:产生110操作数,可通过Int(10 * Rnd + 1) 实现常见错误常见错误1在选择结构中缺少配对的结束语句对多行式的If块语句中,应有配对的 End If语句结束。2. 多边选择ElseIf关键字的书写和条件表达式的表示 ElseIf 不要写成Else If; 多个条件表达式次序问题,

13、见例4.33. Select Case语句的使用 Select Case 后不能出现多个变量;Case子句后不能出现变量见例4.6For循环语句用于控制循环次数预知的循环结构。循环语句用于控制循环次数预知的循环结构。For For 循环变量循环变量 初值初值 To To 终值终值 Step 步长步长语句块语句块Exit For语句块语句块Next Next 循环变量循环变量循环变量必须为数值型。循环变量必须为数值型。Dim i%, sum%For i = 1 To 100 Step 2 sum = sum + iNext iMsgBox(sum)例例4.10 计算计算1-100的奇数和。循环流

14、程:循环流程: (1) (1) 循环变量被赋初值,它仅被循环变量被赋初值,它仅被赋值一次。赋值一次。 (2) (2) 判断循环变量是否在终值内,判断循环变量是否在终值内,如果是,执行循环体;如果否,结束如果是,执行循环体;如果否,结束循环,执行循环,执行NextNext的下一语句。的下一语句。 (3) (3) 循环变量加步长,转循环变量加步长,转(2)(2),继,继续循环续循环 ForFor循环遵循循环遵循“先检查,后执行先检查,后执行”的原的原则则 步长步长00,初值大于终值时不执行,初值大于终值时不执行, ,省略时为省略时为1 1。 步长步长00,初值小于终值时不执行,初值小于终值时不执行

15、, , 步长步长=0=0,死循环,死循环。循环次数循环次数 T T 循环变量终值 语句块 语句块 循环变量=循环变量+步长 F 循环变量=初值 有Exit For F Next 的下一语句 ) 1(步长初值终值Int4)1(3213Int循环执行次数输出 i的值分别为: 2 5 8 11而出了循环输出为: I=14Private Sub Command1_Click() j = 0 For i = 1 To 20 Step 2 i = i + 3 j = j + 1 Print 第; j; 次循环i=; i Next i Print 退出循环后i=; i End Sub正常情况:i=1,3,5

16、,7,9,11, 13,15,17,19现在:i=4,9,14,19Do循环用于控制循环次数未知的循环结构。循环用于控制循环次数未知的循环结构。形式形式1: Do Do While|UntilWhile|Until 语句块语句块 Exit Do 语句块语句块LoopLoop形式形式1为先判断后执行,有可能一次也不执行;为先判断后执行,有可能一次也不执行;形式形式2为先执行后判断,至少执行一次。为先执行后判断,至少执行一次。 形式形式2:Do 语句块语句块 Exit Do 语句块语句块Loop While|Until F T 语句块 语句块 Do WhileLoop 表达式列表 1 有 Exit

17、 Do F T T F 语句块 语句块 表达式列表 1 Do Loop While 有 Exit Do F T 例例4.13 4.13 我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。解此问题两种方法,可根据公式:直接利用标准函数对数可求得:但求得的年数不为整数;也可利用循环求得 :)008. 1log()2log(n 0.008)13(126nPrivate Sub Command1_Click() x = 13:n = 0 Do While x n (2) m除以n得余数r (3)若r=0,则n为最大公约数,结束;否则执行(4) (4)mn,nr,再重复执行(2)例

18、 求 m=14 ,n=6 的最大公约数. If m n Then t = m: m = n: n = t r=m mod n Do While (r 0) m=n n=r r= m mod n Loop Print 最大公约数=, n 辗转相减法辗转相减法 m=m-n mn n=n-m nm m、n为公约数 m=nDo While m n m n If m n Then 14 6 m = m n 8 6 Else 2 6 n = n m 2 4 End If 2 2Loop m n r 14 6 2 6 2 0例例4.184.18求自然对数求自然对数e e的近似值,其误差小于的近似值,其误差小

19、于0.000010.00001。近似公式近似公式 分析:本例涉及到程序设计中两个重要运算:分析:本例涉及到程序设计中两个重要运算:累累加和连乘加和连乘i!。累加是在原有和的基础上再加一个。累加是在原有和的基础上再加一个数;连乘则是在原有积的基础上再乘以一个数。数;连乘则是在原有积的基础上再乘以一个数。该题先求该题先求i!,再将,再将1/i!进行累加,循环次数未知,进行累加,循环次数未知,可先设置一个次数很大的值,然后在循环体内判可先设置一个次数很大的值,然后在循环体内判断是否到达精度,也可用断是否到达精度,也可用Do While来实现。来实现。 本章目录本章目录 “穷举法”也称为“枚举法”或“

20、试凑法”, 即将可能出现的各种情况一一测试,判断是否满足条件,一般采用循环来实现,判断是否满足条件,采用循环结构来实现。 例例4.19 百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,编程列出所有可能的购鸡方案。 设母鸡、公鸡、小鸡各为x、y、z只,根据题目要求,列出方程为: x+y+z=100 3x+2y+0.5z=100三个未知数,两个方程,此题有若干个解。解决此类问题采用“试凑法”,把每一种情况都考虑到。 方法一:最简单三个未知数利用三重循环来实现。 方法二:从三个未知数的关系,利用两重循环来实现。穷举法穷举法 ) “递推法”又称为“迭代法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都从旧值的基础上递推出新值,并由新值代替旧值。 例题:求出Fabonacci(斐波那契)数列的前20项。 Fabonacci(斐波那契)数列的规律是:前2项为0和1,其余各项为该项前2项之和,即0,1,1,2,3,5,8,13。 在若干个数中求最大值,一般先假设一个较小的数为最大值的初值,若无法估计较小的值,则取第一个数为最大值的初值;然后将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值;依次逐一比较。例例 随机产生随机产生1010

温馨提示

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

最新文档

评论

0/150

提交评论