版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,结构化程序设计,顺序结构 选择结构 循环结构,2,2.7.1 赋值语句,1. 格式 = 或: .= 2. 功能 计算表达式的值,再将此值赋给变量或对象属性。,2.7 语句,3,3. 说明 (1) : 应符合VB变量命名约定。 (2) : 常量、变量、表达式。 (3) : 缺省时为当前窗体。 (4) 赋值号“=”: 与数学中的等号意义不同。例:X=X+1 (5) 赋值号左边必须是变量或对象属性。 例: X=1 MyStr=Good Morning Command1.Caption=确定 X+1=X 错误,赋值号左边是表达式,4,(6) 变量名或对象属性名的类型应与表达式类型相容。 例: Di
2、m A As Integer, B As Single Dim C As Double, S As String A = 100 将整型数100赋给整型变量A S = 123.45 将字符串123.45赋给变量S A = S 将数字字符串变量赋值给整型变量, 变量A中存放123 S = A S中存放字符串123 B = 12345.67 A = B 高精度变量赋值给低精度变量, 先四舍五入后取整, A中存放12346,5,C = 123456.789 B = C 高精度变量赋值给低精度变量, 变量B中存放123456.8。有效数字7位 S = abc A = S 错误,类型不匹配 例: 执行下
3、列各赋值语句后,A的数据类型是什么? (设A没有定义数据类型) A = 5 + 3 A = 5+3 A = #11/26/99# A = #11/26/1999# A = Not 5 8,可以用TypeName函数判断变量的数据类型。 如:Print TypeName(A),6,(7) 变量未赋值时,数值型变量值为0,字符串变量 值为空串。 【例题】设变量A中存放5,变量B中存放8,交换两个变量的值,使变量A中存放8,变量B中存放5。 分析: 需要借助第三个变量C 代码如下: A = 5 B = 8 C = A A = B B = C,返回,7,一、 单行结构条件语句,1. 格式 If The
4、n Else 2. 功能 如果成立, 则执行 否则执行 3. 说明 (1) : 关系表达式、布尔表达式 数值表达式(0为False,非0为True) 字符串表达式(0为False,非0为True) (2) 、: 可以有多条语句,各语句之间用冒号隔开。 (3)可以没有Else部分,这时必须有。,2.7.2 IF语句,8,例: If N0 Then A=A+B:B=B+A Else A=A-B:B=B-A 例: If Xaaa Then Print X 【例题】设界面如下图所示,用文本框输入x的值,单击“计算Y”按钮时,根据以下公式计算y的值。,Private Sub Command1_Click
5、() X = Val(Text1.Text) If X = 0 Then Y = Abs(X) Else Y = Log(X) Label3.Caption = Y End Sub,9,4. 注意 (1) 应作为一条语句书写 续行符号 空格下划线 (2) 无论条件是否成立,都具有共同出口 例: If X = 0 Then X = 1 + X Else X = 5 - X Y = 1 - X Print Y=; Y 若 X=2 则打印 Y=-2 若 X=-2 则打印 Y=-6,共同出口,10,5. 嵌套 IF . THEN.IF . THEN .ELSE .ELSE 【例题】平面直角坐标系中,不
6、同的象限内,点的坐标的符号有以下4种情况:,在A象限 X0,Y0 B X0 C X0,Y0,任意输入一对坐标值,找出它所在的象限。,11,Private Sub Command1_Click() X = Val(Text1.Text): Y = Val(Text2.Text) If X = 0 Or Y = 0 Then Print 不在任何象限内: _ Exit Sub If X 0 Then If Y 0 Then Print IN A Else _ Print IN D Else If Y 0 Then Print IN B _ Else Print IN C End Sub,12,二、
7、块结构条件语句,1.格式 If Then ElseIf Then ElseIf Then Else End If 功能: ,If Then 语句组1 Else 语句组2 End If,13,【例题】输入华氏温度F,利用公式C=5/9*(F-32)转换成摄氏温度C,根据转换结果C的不同值,按以下要求给出相应的提示。,C40时,打印HOT 30C40时,打印 WARM 20C30时,打印 ROOM TEMPERATURE 10C20时,打印 COOL 0C10时,打印 COLD C0时,打印 FREEZING,14,Private Sub Command1_Click() C = 5 / 9 *
8、(Val(Text1.Text) - 32) Text2.Text = Format(C, 0.00) If C 40 Then Label2.Caption = HOT ElseIf C 30 And C 20 And C 10 And C 0 And C = 10 Then Label2.Caption = COLD Else Label2.Caption = FREEZING End If End Sub,If C 40 Then Label2.Caption = HOT ElseIf C 30 Then Label2.Caption = WARM ElseIf C 20 Then La
9、bel2.Caption = ROOM TEMPERATURE ElseIf C 10 Then Label2.Caption = COOL ElseIf C 0 Then Label2.Caption = COLD Else Label2.Caption = FREEZING End If,15,2. 注意 (1) 关键字ElseIf不能写成Else If,中间不能有空格。 (2) 严格按照格式书写,不能随意换行或合并。 例:,If x = 0 then y =1 Else y = 2 End If,If x = 0 then y =1 Else: y = 2 End If,If x = 0
10、 then y =1 Else y = 2 End If,(3) 块结构条件语句可以嵌套。,16,2.7.3 Select Case语句,1. 格式 Select Case Case Case Case Else End Select 2. 功能: 根据测试表达式的值,按顺序匹配Case后的表达式,如果匹配成功,则执行该Case下的语句块,然后转到End Select语句之后继续执行。,17,3. 说明 : 数值或字符表达式 Case 表达式表: 表中的表项为如下形式: (1) 表达式1,表达式2. 如: Case 1 , 3 , 5 (2) 表达式1 TO 表达式2 如: Case 10 T
11、O 30 Case A TO Z (3) Is 如: Case Is = 10 Case Is = 0 与 Case 0 相同,18,Y=,ex+e-x x0,X = Val(Text1.Text) Select Case X Case Is 0 Y = Log(X) / Log(10) End Select Print Y=; Y,X = Val(Text1.Text) Select Case X Case X 0 Y = Log(X) / Log(10) End Select Print Y=; Y,【例题】求函数Y的值,19,4. 注意 (1) Case表达式中不能使用中的变量。 Sel
12、ect Case X Case X 只能是一个变量或一个表达式,不能是变量表或表达式表。 Select Case X1,X2,X3 Case X1X2X3 0 and X 100 (5)Select Case语句也可以嵌套。,20,在窗体上画一个名称为Command1的命令按钮和两个名称 分别为Text1和Text2的文本框,然后编写如下事件过程: Private Sub Command1_Click( ) n = Text1.Text Select Case n Case 1 To 20 x = 10 Case 2,4,6 x = 20 Case Is 10 x = 30 Case 10 x
13、 = 40 End Select Text2.Text = x End Sub,程序运行后,在文本框Text1中输 入10,然后单击命令按钮,则在 Text2中显示的内容是() A)10 B)20 C)30 D)40,思考题,21,三、应用举例,【例1】设计一个口令检测程序,界面如下图,当用户输入的口令正确时,显示“恭喜!,您已成功进入本系统”,否则,显示,“口令错!,请重新输入”。如果连续两次输入了错误口令,在第三次输入完口令后则显示一个消息框,提示“对不起,您不能使用本系统”,然后退出整个应用程序。,22,Private Sub Text1_KeyUp(KeyCode As Integer
14、, _ Shift As Integer) Static I As Integer 保存输入错误口令的次数 If KeyCode = 13 Then 如果按下的键为回车键 If UCase(Text1.Text) = HELLO Then Label2.Caption = 恭喜!您已成功进入本系统 ElseIf I = 0 Or I = 1 Then I = I + 1 Label2.Caption = 口令错!请重新输入 Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) Else MsgBox 对不起,您不能使用本系统: End End
15、 If End If End Sub,23,MsgBox函数和MsgBox过程 函数形式:变量% = MsgBox(提示,按钮图标+ 缺省按钮+模式,标题) 过程形式: MsgBox 提示,按钮图标 +缺省按钮+ 模式,标题,24,【例3】设计一个四则运算的自我练习应用程序,界面如下图所示。,25,要求: (1) 执行时,当在Text1中输入一种运算符后,在标签Label2中立即出现该运算符号。 (2) 单击“出题”按钮可以产生两个0,1000之间的随机整数,这时由Text2、Label2和Text3组成一个表达式。 (3) 可以通过单击“计算”按钮计算所生成的表达式的值。 (4) 也可以由用
16、户在文本框Text4中输入运算结果通过单击“判断”按钮可以判断输入的运算结果是否正确,然后在Label4上显示“正确”或“错误”。 (5) 单击“退出”按钮结束运行。,26,(1) 在Text1中输入加、减、乘、除符号后,在Label2中立即出现相应的运算符号。 Private Sub Text1_Change() Label2.Caption = Text1.Text End Sub (2) 单击“出题”按钮Command1,生成两个0,1000之间的随机整数。 Private Sub Command1_Click() Randomize Text2.Text = Int(Rnd * 100
17、1) Text3.Text = Int(Rnd * 1001) Text4.Text= End Sub,27,(3) 单击“计算”按钮Command2得出Text4的值。 Private Sub Command2_Click() If Label2.Caption = + Then Text4.Text = Val(Text2.Text) + Val(Text3.Text) ElseIf Label2.Caption = - Then Text4.Text = Val(Text2.Text) - Val(Text3.Text) ElseIf Label2.Caption = * Then Te
18、xt4.Text = Val(Text2.Text) * Val(Text3.Text) ElseIf Label2.Caption = / Then Text4.Text = Val(Text2.Text) / Val(Text3.Text) Else a = MsgBox(运算类型错,请重输, , 警告) Text1.SetFocus: Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End If End Sub,28,(4) Text4的内容也可以由用户输入,通过单击“判断”按钮Command3判断输入结果是否正确。 Privat
19、e Sub Command3_Click() Select Case Label2.Caption Case + If Text4.Text=Val(Text3.Text)+Val(Text2.Text) Then Label4.Caption = 正确 Else Label4.Caption = 错误 End If,29,Case - If Text4.Text=Val(Text2.Text)-Val(Text3.Text) Then Label4.Caption = 正确 Else Label4.Caption = 错误 End If Case * If Text4.Text=Val(Te
20、xt2.Text)*Val(Text3.Text) Then Label4.Caption = 正确 Else Label4.Caption = 错误 End If,30,Case / If Text4.Text=Val(Text2.Text)/Val(Text3.Text) Then Label4.Caption = 正确 Else Label4.Caption = 错误 End If Case Else a=MsgBox(运算类型错,请重输, , 警告) Text1.SetFocus Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text)
21、End Select End Sub 注: 因实数的不精确表示,除法判断条件应写成: Abs(Val(Text4.Text) - Val(Text2.Text) / Val(Text3.Text) 0.000001,31,2.7.4 For - Next语句,1. 格式 For = To Step Exit For Next ,循环变量值超过终值?,执行循环体,后续语句,Yes,No,2. 功能: 执行过程如流程图所示,32,3. 说明 (1)循环变量数值变量 (2)初值,终值,步长数值表达式 (3)步长可正可负,但不能为0,为1时可以省略 步长0时,必须: 初值终值 步长=终值 循环结束条件
22、循环变量的值终值 (4)Exit For退出循环,常放在条件语句中 (5)Next之后的循环变量与For语句中的循环变量 应一致,也可以省略,33,累加分析: 累加器(变量)初值 S=0 循环体(重复执行) S=S+I (I=1,2,N) Private Sub Command1_Click() Dim N As Integer, I As Integer, Sum As Integer N = Val(Text1.Text) Sum = 0 For I = 1 To N Sum = Sum + I Next I Label3.Caption = Sum End Sub,【例题】求1+2+3+
23、4+N,34,【例题】求 N!( N!=123N) 累乘分析: 初始化: F=1 循环体: F=F I (I=1,2,3N) 程序: Private Sub Command1_Click() Dim N As Integer, I As Integer, F As Long N = Val(Text1.Text) F = 1 For I = 1 To N F = F * I Next I Text2.Text = F End Sub,35,在窗体上画一个名称为Command1的命令按钮,然后编写 如下事件过程: Private Sub Command1_Click( ) Dim i As In
24、teger, x As integer For i = 1 To 6 If i = 1 Then x =i If i = 4 Then x = x + 1 Else x = x + 2 End If Next I Print x End Sub,程序运行后,单击命令按钮, 其输出结果是() A)9 B)6 C)12 D)15,思考题,36,在窗体上画一个名称为Command1的命令按钮,然后编写 如下事件过程: Private Sub Command1_Click( ) c = ABCD For n = 1 To 4 Print ( ) Next n End Sub 程序运行后,单击命令按钮,
25、要求在窗体上显示如下内容 D CD BCD ABCD 则在( )处应填入的内容为: A) Left(c,n) B) Right(c,n) C) Mid(c,n,1) D) Mid(c,n,n),思考题,37,执行以下程序段 Dim x As Integer, i As Integer x = 0 For i = 20 To 1 Step -2 x = x + i 5 Next i 后,x的值为 A)16 B) 17 C) 18 D) 19,思考题,38,2.7.5 Do - Loop语句,问题: 求12+22+32+42+小于某数N的最大值,N由用户指定。 特点:已知循环条件、未知循环次数,用
26、Do Loop循环结构实现 1. 格式,格式一: Do While Exit Do Loop,格式二: Do Until Exit Do Loop,39,2. 功能 使用While : 条件为True时,执行循环体 条件为False时,退出循环 使用Until : 条件为False时,执行循环体 条件为True时,退出循环 格式一、二:在循环起始处判断条件,为当型循环 格式三、四:在循环终止处判断条件, 为直到型循环,格式三: Do Exit Do Loop While ,格式四: Do Exit Do Loop Until,40,【例题】求12+22+32+42+小于某数N的最大值,N由用户
27、指定。设计界面下图:,41,Private Sub Command1_Click() Dim N As Long , S As Long N = Val(Text1.Text) I = 0 S = 0 Do While S N I = I + 1 S = S + I * I Loop Text2.Text= S I * I End Sub,初始化,循环体,循环条件,Until S = N,While S N,思考:求12+22+32+42+大于或等于某数N的最小值,42,4.循环的嵌套,在一个循环体内又完整地包含另一个循环,称为循环的嵌套(或多重循环),例: For I = 1 To 3 Fo
28、r J = 5 To 7 Print I, J Next J Next I 执行过程: ,43,说明 (1) 嵌套的循环可以是ForNext循环,也可以是 DoLoop循环 (2) FOR循环有一个公共端点,可使用一个NEXT语句,循环变量按从内到外排列,FOR I=1 TO 3 FOR J=5 TO 7 PRINT I,J NEXT J,I,FOR I=1 TO 3 FOR J=5 TO 7 PRINT I,J NEXT J NEXT I,例:,(3) 内外循环不应交叉 例: FOR I=. FOR J=. . NEXT I NEXT J,44,(4) 嵌套循环应选用不同的循环变量 例: F
29、OR I=1. FOR J=. . NEXT J . FOR J=. . NEXT J NEXT I,45,【例题】求1+(1+2)+(1+2+3)+(1+2+3+n), n由用户输入。 分析: Private Sub Form_Click() N = Val(Text1.Text) Sum = 0 For I = 1 To N Sum1 = 0 For J = 1 To I Sum1 = Sum1 + J Next J Sum = Sum + Sum1 Next I Text2.Text = Sum End Sub,Sum1 = 0,46,设有以下循环结构: Do 循环体 Loop While 则以下叙述中错误的是( )。 A) 若“条件”是一个为0的常数,则一次也不执行循环体 B) “条件”可以是关系表达式、逻辑表达式或常数 C) 循环体中可以使用Exit Do语句 D) 如果“条件”总为True,则不停地执行循环体,思考题,47,在窗体上画一个名称为Command1的命令按钮,然后编写 如下事件过程: Private Sub Command
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山西大学《大学生心理健康教育》2025-2026学年期末试卷
- 上海东海职业技术学院《物流管理学》2025-2026学年期末试卷
- 太原城市职业技术学院《中国文化概论》2025-2026学年期末试卷
- 上海南湖职业技术学院《临床输血学检验技术》2025-2026学年期末试卷
- 内蒙古医科大学《城市经济学》2025-2026学年期末试卷
- 沈阳体育学院《哲学概论》2025-2026学年期末试卷
- 山西财经大学《风电机组设计与制造》2025-2026学年期末试卷
- 上海立达学院《犯罪心理学》2025-2026学年期末试卷
- 齐齐哈尔工程学院《工程管理概论》2025-2026学年期末试卷
- 心理障碍咨询策略
- adl评定量表参考
- 初中英语作业改革实践研究课题报告
- 预制菜创业计划书
- 激光雕刻产品的设计与制作-课件
- 体育培优补差记录表模板
- 池州市事业单位考试历年真题
- A级锅炉部件制造质量手册
- 四年级下册语文第二单元 快乐读书吧十万个为什么 导读一等奖创新教学设计
- 造价咨询重点、难点及控制措施
- 教学设计 大自然的语言 全国公开课一等奖
- GB/Z 25756-2010真空技术可烘烤法兰刀口法兰尺寸
评论
0/150
提交评论