1 / 152

计算机科学学院

Visual Basic 程序设计基础. 计算机科学学院. 1. 关系运算与逻辑运算. 2. 选择结构程序设计. 第四章 控制结构程序设计. 选择控件 单分支条件语句 双分支条件语句 多分支条件语句 If 语句嵌套. 4. 关系运算符. 各个关系运算符的优先级是相同的 关系运算符可以对 数值、字符串 、 表达式 进行比较 关系运算的结果为 逻辑值. 思考题. 思考: x=6 ‘ 当 x=6 时,结果为 true 456=“456” ‘ 出错!类型不匹配

dewey
Download Presentation

计算机科学学院

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Visual Basic程序设计基础 计算机科学学院

  2. 1 关系运算与逻辑运算 2 选择结构程序设计 第四章 控制结构程序设计 • 选择控件 • 单分支条件语句 • 双分支条件语句 • 多分支条件语句 • If语句嵌套 4

  3. 关系运算符 • 各个关系运算符的优先级是相同的 • 关系运算符可以对数值、字符串、表达式进行比较 • 关系运算的结果为逻辑值

  4. 思考题 思考: • x=6 • ‘当x=6时,结果为true • 456=“456” • ‘出错!类型不匹配 • Sqr(2) ^ 2 = 2 • ‘False, Sqr(2) 是个近似数,有误差,所以不等 两个字符串进行比较:逐一比较每个字符的ASCII, 只有两个字符串中所有字符相同时,两字符串相等

  5. 非零为True 零为False 逻辑运算符 • 逻辑运算符可以对数值、表达式进行比较 • 逻辑运算的结果一般为逻辑值, 还可以是数值 Not 3 > 5 ‘true  3 > 5 And 4 >= 2 ‘false Not 3 > 5 Or 3 + 2 < 4 ‘true a <= x And x <= b ‘表示a≤x≤b 表示数学区间〔a,b〕内的x: a <= x And x <= b

  6. 00000000 00001100 And 00000000 00000111 00000000 00000100 00000000 00001100 Or 11111111 11111001 11111111 11111101 逻辑运算符 • 12 And 7 运算结果为:4 • 12 Or -7 运算结果为:-3 逻辑值参与逻辑运算,结果为逻辑值 数值数据参与逻辑运算,结果为数值(按位操作)

  7. 运算符的优先级 算术运算符>字符串运算符>关系运算符>逻辑运算符 & ^ -(负号) *, / \ Mod +,- 无 优 先 顺 序 Not And Or Xor 由高到低 例:设a=4,b=3,c=2,d=1, 表达式a>b+1Or c<d And b Mod c 的值 ?

  8. 1 关系运算与逻辑运算 2 选择结构程序设计 Contents • 选择控件 • 单行结构条件语句 • 块结构条件语句 • IIf函数 • If语句的嵌套 4

  9. 1 2 单选按钮 复选框 选择控件

  10. True 为选中 False 为不选 单选按钮 OptionButton • 属性 • Caption : Option1、Option2… • Enabled • Value • 事件 • Click 表明从一组选项中选择一项,只能选中一项。

  11. 1-Checked 为选中 0-Unchecked 为不选 2-Grayed为 禁止操作(灰色) 复选框CheckBox 一组复选框,可以同时选中多个,也可以一个都不选 • 属性 • Caption : Check1、Check2… • Value • Alignment • 事件 • Click

  12. 框架Frame 框架控件Frame 框架用来对控件进行分组,即把指定的控件放到框架中。必须先画出框架,然后在框架内画出需要成为一组的控件,这样才能使框架内的控件成为一个整体,和框架一起移动。 • Caption : Frame1、Frame2… • Enable: False时,框架中所有对象均被屏蔽 框架上建立对象 1. 先建立框架对象; 2. 选中框架,在工具箱上单击预建立的对象; 3. 在框架上拖动鼠标进行绘制。

  13. If语句 单行结构 条件语句 块结构 条件语句 选择结构 • 根据判断条件的真假来选择执行不同的分支 如何来表示条件? 实现选择结构用什么语句? 关系表达式或逻辑表达式 If语句或select case语句

  14. 表达式 F T 语句组1 语句组2 单行结构条件语句 语句的各部分均在同一行上,又称为行IF语句。 双分支选择 IF <条件> Then <语句组1> Else <语句组2> 注意:<条件>表达式值按非零为True,零为False进行判断

  15. 流程图使用的图形符号

  16. 单分支选择: False x < y True t = x x = y y = t IF <条件> Then <语句组> 单行结构条件语句 If x<y Then t = x: x = y: y = t

  17. 表达式 F T False 语句组1 语句组2 x < y True t = x x = y y = t 块结构条件语句 单分支和双分支选择的块形式 If <条件> Then <语句组1> Else <语句组2> End If If <条件> Then <语句组> End If

  18. 条件语句 tan(x+1) + 3x2 (x = 0) y = 计算分段函数 sin x - x3 + x (x ≠ 0) If x<>0Then y = sin(x) – x^3 + x Else y =tan(x+1) + 3 * x^2 End If

  19. a=3:b=2 ifa>b then msgbox “a大于b” Else msgbox “a小于b” End if 条件语句

  20. 条件语句 a=3:b=2:c=1 ifa>band a>c then msgbox “a最大” End if 20

  21. 条件语句 a=3:b=2:c=1 ifa>band a>c then msgbox “a最大” Else msgbox “a不是最大” End if 21

  22. 条件语句 Dim str as string str=“C” If str>=“A”and str<=“Z”then msgbox “str是大写字母” Else msgbox “str不是大写字母” endif

  23. If 条件1 F ElseIf 条件2 F ElseIf T 条件n F Else T Then Then T Then 语句块1 语句块2 语句块n 语句块n+1 块结构条件语句 IF条件语句使用块形式,常用于对多个条件进行判断,提供了更强的结构化与适应性,并且通常也是比较容易阅读、维护及调试。

  24. 块结构条件语句 If a>100 then print “a大于100” Elseif a>50 then print “a大于50,小于100” Elseif a>10 then print “a大于10,小于50” Else print “a小于等于10” End if

  25. 条件语句 Dim str as string str=“C” If str>=“A”and str<=“Z”then msgbox “str是大写字母” Else if str>=“a”and str<=“z”then msgbox “str是小写字母” Else msgbox “str不是字母” endif

  26. 条件语句 • 已知变量strC中存放了一个字符,判断该字符是字母字符、数字字符还是其它字符,并作相应的显示 IfUcase(strC) >= "A" And Ucase(strC) <="Z"Then Print strC + "是字母字符" ElseIfstrC >="0" And strC <= "9" Then Print strC + "是数字字符" Else Print strC + "是其它字符" End If

  27. 程序的基本组成 • 程序设计的一般步骤: • 1分析:问题定义 • 2设计:设计解题步骤-算法 • 3选择与创建界面 • 4编码:用程序设计语言描述-写程序 • 5测试与调度:改错 • 6完成文档:整理和组织描述程序的所有资料

  28. 开始 dim max as single dim min as single max=val(text1.text) min=val(text2.text) F max<min? T max=min Label3.Caption = "较大值为" & max 结束 If语句 • 任务1 输入两个数,输出较大的数。 • 编写代码: Private Sub Command1_Click() Dim max As Single Dim min As Single max = Val(Text1.Text) min = Val(Text2.Text) If max < min Then max = min End If Label3.Caption = "较大值为" & max End Sub Dim max As Single Dim min As Single max = Val(Text1.Text) min = Val(Text2.Text) If max < min Then max = min Label3.Caption = "较大值为" & max If max < min Then max = min 注意: • 块if语句中的end if能否省略? 注意: • 块if语句中的end if能否省略? • 将块if语句改为单行if语句怎么改?

  29. T F 用户名和口 令正确吗? 显示"欢迎" 消息框 显示"错误" 消息框 If语句 • 任务2 编写一个程序,实现当用户输入的用户名和口令都正确时显示"欢迎登录"的消息对话框,当用户名或口令有错误时显示消息对话框报告错误。(假设用户名为SYL,密码为“123456”)

  30. If语句 • 任务2 编写一个程序,实现当用户输入的用户名和口令都正确时显示"欢迎登录"的消息对话框,当用户名或口令有错误时显示消息对话框报告错误。 • 编写代码: • Private Sub Command1_Click() • Dim user As String • Dim psw As String • user = Text1.Text • psw = Text2.Text • End Sub Ifuser ="SYL" And psw = "123456" Then MsgBox ("欢迎您登录本系统!") Else MsgBox ("您的用户名或口令有误,请重新输入!") End If

  31. If ElseIf 不被4整除 F ElseIf F 不被100整除 T 被400整除 Else F T Then Then T Then 不是闰年 是闰年 是闰年 不是闰年 课堂练习 • 判断某一年是否是闰年。闰年的条件是符合下面二者之一:①能被4整除,但不能被100整除; ②能被400整除

  32. 练习 Dim Year%, leap As Boolean Year = Val(InputBox("Input year")) If Year Mod 4 <> 0Then leap = False ElseIfYear Mod 100 <> 0Then leap = True ElseIf Year Mod 400 = 0Then leap = True Else leap = False End If

  33. IIf( )函数 • 变量=IIf( 表达式, 当条件为真的值, 当条件为假的值) Dim intX%, intY%, intMax% intX= 15 intY = 10 intMax = IIf( intX > intY, intX , intY) Print intMax If intX > intY Then intMax = intX Else intMax = intY End If

  34. IIf( )函数 IIf(条件, 表达式1, 表达式2) If user ="SYL" And psw = "123456" Then MsgBox ("正确!") Else MsgBox ("错误!") End If MsgBox IIf(user = "SYL" And psw = "123456", "正确!", "错误!") IIf(user = "SYL" And psw = "123456", MsgBox("正确!"),MsgBox("错误!"))

  35. If语句 • 任务3 编写一个程序,根据用户输入的某个学生的成绩评出优、良好、中等、及格和不及个五个等级。

  36. 不及格score<60 及格 60≤score<70 中等 70≤score<80 良好 80≤score<90 优 score≥90 等级 If语句 • 任务3 编写一个程序,根据用户输入的某个学生的成绩评出优、良好、中等、及格和不及个五个等级。判断标准如下:

  37. If语句 T • 编写代码: • Private Sub Command1_Click() • Dim score As Single • Dim s As String • score = Val(Text1.Text) • End Sub If score < 60 Then s = "不及格" ElseIf score < 70 Then s = "及格" ElseIf score < 80 Then s = "中等" ElseIf score < 90 Then s = "良好" Else s = "优" End If Text2.Text = s

  38. If语句 • 任务4 学校对学习成绩优良的同学给予奖励,只要满足以下条件之一就可以获得奖励: • 所考语文、数学和英语总分在285以上; • 每门课的成绩都在90分以上; • 语文和数学的成绩为100分,英语在80分以上。 • 界面设计:

  39. If语句 T • 任务4 学校对学习成绩优良的同学给予奖励。 • 编写代码: • Private Sub Command1_Click() • Dim a As Single, b As Single, c As Single • a = Val(Text1.Text):b = Val(Text2.Text):c = Val(Text3.Text) • If a + b + c >= 285 Then • Label4.Caption = "可以获奖!" • ElseIf a >= 90 And b >= 90 And c >= 90 Then • Label4.Caption = "可以获奖!" • ElseIf a = 100 And b = 100 And c >= 80 Then • Label4.Caption = "可以获奖!" • Else • Label4.Caption = "不可获奖!" • End If • End Sub 能改成下面的代码吗? If a + b + c >= 285 or a >= 90 And b >= 90 And c >= 90 or _ a = 100 And b = 100 And c >= 80 Then Label4.Caption = "不可获奖!" End If

  40. IF语句的嵌套 If a>100 then If b>100 then Print “a,b均大于100” endif Endif

  41. 【例】征兵条件:男性18~20岁,1.65米以上;女性16~18岁,1.60米以上,要求:从键盘输入一个人信息,判断是否符号条件【例】征兵条件:男性18~20岁,1.65米以上;女性16~18岁,1.60米以上,要求:从键盘输入一个人信息,判断是否符号条件 If 性别 = “男” Then ‘为男性 If 年龄 >= 18 And 年龄 <= 20 Then If 身高 >= 1.65 Then Print "合格" End If End If Else ‘为女性 If 年龄 >= 16 And 年龄 <= 18 Then If 身高 >= 1.6 Then Print "合格" End If End If End If 例题

  42. IF语句的嵌套 • 比较x,y,z的大小,并进行调整,使得x>y>z • 效果: X > Y > Z • X Y if(x<y) 交换x,y • X > Y Z

  43. y<z False True 交换y和z x<y False True 交换x和y IF语句的嵌套 比较x,y,z的大小,并进行调整 使得x>y>z If x < y Then t = x: x = y: y = t EndIf If y<z Then t = y: y = z: z = t If x < y Then t = x: x = y: y = t End If End If

  44. If语句 • 任务5 编写一个程序,让用户输入三个数判并断该三个数能否组成一个直角三角形。 • 分析: • 本题根据用户输入的三个数,判断它们能否组成一个直角三角形。程序中有三个输入量(即输入的三个数)和一个输出量(即能否组成一个直角三角形)。故可以用三个文本框来接受用户输入的三个数,一个标签框来显示判断结果。 • 界面设计:

  45. Label4. Caption= " " Label4. Caption= " " a ^ 2 = b ^ 2 + c ^ 2 Or b ^ 2 = a ^ 2 + c ^ 2 Or c ^ 2 = a ^ 2 + b ^ 2 a + b > c And a + c > b And b + c > a Label4. Caption= " " T F 三角形? T F 输出判断结果 直角三角形? 输出判断结果 输出判断结果 If语句 T • 任务5 编写一个程序,让用户输入三个数判并断该三个数能否组成一个直角三角形。 • 编写代码: • Private Sub Command1_Click() • Dim a, b, c As Single • a = Val(Text1.Text): b = Val(Text2.Text): c = Val(Text3.Text) • End Sub If a + b > c And a + c > b And b + c > a Then If a ^ 2 = b ^ 2 + c ^ 2 Or b ^ 2 = a ^ 2 + c ^ 2 Or c ^ 2 = a ^ 2 + b ^ 2 Then Label4. Caption= "可以构造一个直角三角形 " Else Label4. Caption= "可以构造一个非直角三角形" End If Else Label4. Caption= "不可以构造一个三角形 " End If

  46. 小结 • 单行结构:If <条件>Then <语句组> • 块结构: If <条件> Then <语句组> End If

  47. 表达式 F T 语句组1 语句组2 双分支条件语句 • 块结构: If <条件> Then <语句组1> Else <语句组2> End If • 单行结构: If <条件> Then <语句1> Else <语句2>

  48. If 条件1 F ElseIf 条件2 F ElseIf T 条件n F Else T Then Then T Then 语句块1 语句块2 语句块n 语句块n+1 多分支条件语句——块IF语句

  49. If嵌套 • If <条件1> Then If <条件2> Then … If <条件n> Then <语句组n> End If … <语句组2> End If <语句组1> End If

  50. 1 3 关系运算与逻辑运算 多分支结构程序设计 2 选择结构程序设计 第四章 控制结构程序设计 4

More Related