控制结构程序设计.ppt_第1页
控制结构程序设计.ppt_第2页
控制结构程序设计.ppt_第3页
控制结构程序设计.ppt_第4页
控制结构程序设计.ppt_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

2,上次课复习,1,窗体 文本框 图片框 计时器,3,MsgBox,2,InputBox,3,三种清除方法,清除文本框、标签信息 Text1.Text = “ Label1.Caption = “ 清除窗体、图片框文本 Form1.Cls Picture.Cls 清除窗体、图片框图片 Form1.Picture = LoadPicture() Picture.Picture = LoadPicture(),4,MsgBox()函数与MsgBox语句,MsgBox函数 1. 格式 2. 返回值 MsgBox函数的返回值是一个整数,这个整数与所选择的按钮有关。,MsgBox(msg, type, title, helpfile,context),对话框中显示的提示信息,为一个字符串,对话框类型,确定对话框的图标和按钮,为一个整数值为一个整数值,对话框标题显示的信息,为一字符串,3,4,5,x = MsgBox(“参数错误“,18, “错误“),5,MsgBox语句,MsgBox()返回所选按钮的整数值,若不需返回值,则可作为MsgBox过程使用。,函数形式:变量%=MsgBox(提示,按钮,标题) 语句形式: MsgBox 提示,按钮,标题,函数形式:x = MsgBox(“参数错误”,18) 语句形式:MsgBox “参数错误“,18,6,真题以下关于MsgBox的叙述中,错误的是( ) A)MsgBox函数返回一个整数。 B) 通过MsgBox函数可以设置信息框中图标和按钮 的类型。 C) MsgBox语句没有返回值。 D) MsgBox函数的第一个参数是一个整数,该参数 只能确定对话框中显示的按钮数量。,D,7,Private Sub Command1_Click() a$ = “software and hardware” b$ = Right(a$, 8) c$ = Mid(a$, 1, 8) MsgBox a$, , b$, c$, 1 End Sub 单击命令按钮,在弹出的信息框的标题栏中显示的是 A)software and hardware B)software C)hardware D)1,真题,C,8,第4章 控制结构程序设计,选择结构程序设计,2,For-Next循环,4,多分支结构程序设计,3,关系运算与逻辑运算,1,9,第4章 控制结构程序设计,列表框、组合框,6,常用算法,8,多重循环,7,Do-Loop和While-Wend循环,4,10,选择结构,根据判断条件的真假来选择执行不同的分支,IF 条件 Then A操作 Else B操作,IF x 100 Then x=1 Else x=2,两个方面的问题: 如何来表示条件; 实现选择结构用什么语句;,表示条件:一般用关系表达式或逻辑表达式 实现选择结构:if语句或select case语句,11,关系运算符,各个关系运算符的优先级是相同的 关系运算符可以对数值、字符串、表达式进行比较 关系运算的结果为逻辑值,12,逻辑运算符,逻辑运算符可以对数值、表达式进行运算 逻辑运算的结果一般为逻辑值,Not 3 5 3 5 And 4 = 2 Not 3 5 Or 3 + 2 4 a = x And x = b,表示axb,表示数学区间a,b内的x: a = x And x = b,13,12 And 7,12 Or -7,数值数据参与逻辑运算时是按位进行逻辑运算,-3,4,数值参与逻辑运算,14,运算符的优先级 算术运算符字符运算符关系运算符逻辑运算符,15,单分支条件语句,If Then If Then End If 表达式值按非零为True,零为False进行判断,16,If xy Then t = x x = y y = t End If If xy Then t = x: x = y: y = t,x y,t = x x = y y = t,False,True,17,双分支条件语句,If Then Else End If If Then Else ,表达式,语句组1,语句组2,T,F,18,y =,tan(x+1) + 3x2 (x = 0),sin x - x3 + x (x 0),If x0 Then y = sin(x) x3 + x Else y =tan(x+1) + 3 * x2 End If,计算分段函数,19,IIf()函数,变量=IIf(表达式,当条件为真的值,当条件为假的值) Dim intX%, intY%, intMax% intX= 15 intY = 10 intMax = IIf(intX intY, intX, intY) Print intMax,20,If 语句的嵌套,比较x,y,z的大小,并进行调整 使得xyz If x y Then t = x: x = y: y = t EndIf If yz Then t = y: y = z: z = t If x y Then t = x: x = y: y = t End If End If,yz,交换x和y,xy,交换y和z,False,True,False,True,21,【例4.1】征兵条件:男性1820岁,1.65米以上;女性1618岁,1.60米以上 要求:从键盘输入一个人信息,判断是否符号条件,If 性别 = “男“ Then If 年龄 = 18 And 年龄 = 1.65 Then Print “合格“ End If End If Else If 年龄 = 16 And 年龄 = 1.6 Then Print “合格“ End If End If End If,22,多分支条件语句,23,已知变量strC中存放了一个字符,判断该字符是字母字符、数字字符还是其它字符,并作相应的显示,If Ucase(strC) = “A“ And Ucase(strC) =“0“ And strC = “9“ Then Print strC + “是数字字符“ Else Print strC + “是其它字符“ End If,例题,24,课堂练习,判断某一年是否是闰年。闰年的条件是符合下面二者之一:能被4整除,但不能被100整除;能被400整除。,Dim Year%, leap As Boolean Year = Val(InputBox(“Input year“) If Year Mod 4 0 Then leap = False ElseIf Year Mod 100 0 Then leap = True ElseIf Year Mod 400 = 0 Then leap = True Else leap = False End If,25,上次课复习,1,关系运算符 逻辑运算符,2,If选择结构,26,框架控件,对控件进行分组,27,单选按钮 Option,属性 Caption Enabled Value Alignment 事件 Click,Value值 True 为选中 False 为不选,28,复选框 Check,属性 Caption Value Alignment 事件 Click,1-checked为选中 0-Unchecked为不选 2-Grayed为禁止操作(灰色),29,例题,补充几个属性 字号属性 FontSize 下划线 FontUnderline 加粗 FontBold 倾斜 FontItalic,记忆方法:注意都包含Font,在代码窗口输入对象名后,利用 下拉式属性列表输入Font后可查到对应的字体系列属性名,框架上建立对象 1. 先建立框架对象; 2. 选中框架,在工具箱上单击预建立的对象; 3. 在框架上拖动鼠标进行绘制。,30,第4章 控制结构程序设计,选择结构程序设计,2,For-Next循环,4,多分支结构程序设计,3,关系运算与逻辑运算,1,31,Select Case语句,Select Case 变量或表达式 Case 条件1 Case 条件2 Case Else End Select,表达式1,语句块1,表达式2,语句块2,表达式n,语句块n,语句块n+1,True,True,True,False,False,False,条件的表现形式 一组枚举表达式:Case 2, 5, 8 表达式1 To 表达式2 :Case 10 To 20 比较范围:Case Is10,32,If Ucase(strC) =“A“ And Ucase(strC) =“0“ And strC = “9“ Then Print strC + “是数字字符“ Else Print strC + “是其它字符“ End If,Select Case strC Case “a“ To “z“, “A“ To “Z“ Print strC + “是字母字符“ Case “0“ To “9“ Print strC + “是数字字符“ Case Else Print strC + “是其它字符“ End Select,33,真题,以下Case语句中错误的是_。 (A)Case 0 To 10 (B)Case Is10 (C)Case Is10 And Is10,C,注意: 1、Select Case后不能跟多个变量 2、不能在条件中出现变量 3、不能在条件中出现逻辑表达形式,34,Select Case a, b, c Case a100 MsgBox “输入数据错误“ Case b100 MsgBox “输入数据错误“ Case c100 MsgBox “输入数据错误“ Else Text4.Text = a+b+c End Select,不能对多个变量进行判断,不能在条件中出现变量和 不允许的逻辑表达形式,注意事项:,35,课堂练习,空调机基本单价为2500元。购买空调机的价格随季节而异。冬季购买,优惠15,春、秋季购买,优惠8,夏季购买,不优惠。编写一个程序,打印出顾客随季节购买空调机的单价,数量和总价。数据由键盘输入。,Select Case season case “冬季“ total_price = price * (1 - 0.15) * num case “春季“ , “秋季“ total_price = price * (1 - 0.08) * num case else total_price = price * num End Select,36,思考题,已知坐标点(x,y),判断其落在哪个象限?,37,【例4-4】鸡兔同笼,在同一个笼子里装有鸡和兔子共m只,鸡和兔子的总脚数为n只,计算鸡和兔子各有多少只?,条件1:输入的m和n必须是整数 条件2:n必须是偶数 条件3:n=2*m And n=4*m 条件4:计算的结果x与y必须是整数,条件1: m - Int(m) = 0 Instr(str(m), “.“) = 0,条件2: n mod 2 = 0,38,m = Val(Text1.Text) n = Val(Text2.Text),If m - Int(m) = 0 And n - Int(n) = 0 And n mod 2 = 0 And _ n=2*m And n=4*m Then y = n / 2 m x = m - y Text3.Text = x Text4.Text = y End if,39,x = Int(Rnd) + 3 If x2 8 Then y = x2+1 If x2 = 9 Then y = x2 -2 If x2 8 Then y = x3 Print y,下面程序运行后输出的结果是_,思考题,7,40,控制结构,控制结构,41,简介:,循环种类: (1)“当型循环”,42,(2)“直到型循环”,简介:,43,第4章 控制结构程序设计,选择结构程序设计,2,For-Next循环,4,多分支结构程序设计,3,关系运算与逻辑运算,1,44,For 循环变量 = 初值 To 终值 step 步长 循环语句块 Exit For Next 循环变量,For i = 1 To 2 step 1 Form1.Print i Next i,步长为正数的For循环流程图,4.4 For-Next循环,45,For i = 1 To 2 step 1 Form1.Print i Next i,4.4 For-Next循环,46,For i = 1 To 2 step 1 Form1.Print i Next i,Form1.Print i,4.4 For-Next循环,47,For i = 1 To 2 step 1 Form1.Print i Next i,Form1.Print i,i = i + 1,4.4 For-Next循环,48,For i = 1 To 2 step 1 Form1.Print i Next i,Form1.Print i,True,i = i + 1,4.4 For-Next循环,49,For i = 1 To 2 step 1 Form1.Print i Next i,Form1.Print i,True,i = i + 1,退出循环,4.4 For-Next循环,50,循环变量的初值、终值和步长均是数值表达式。其中步长可以是正数,也可以是负数,但不能为0。当步长略去不写时,默认为1。 利用Exit For语句可提前结束循环。 关键字Next为循环正常结束的终端语句,Next语句中的循环变量必须与For语句中的循环变量一致。,注意:正常退出循环后,循环变量的值“超过”终值。,说明,51,【例4-5】 计算一个自然数的阶乘,Private Sub Command1_Click() Dim n%, i%, Term Term End Sub,False,累乘积变量须置初值1,52,【例4-5】计算2+4+6+100,Private Sub Command1_Click() Dim sum%, x% sum = 0 For x = 2 To 100 Step 2 sum = sum + x Next x Form1.Print “sum=“; sum End Sub,累加和变量须置初值0,53,Private Sub Command1_Click() Dim T As Long, S As Long, k% T = 1: S = 0 For k = 1 To 10 T = T * k S = S + T Next k Form1.Print S End Sub,【例4-6】计算1+2!+3!+10!的值,54,【例4-7】显示如右三角形图案,Private Sub Form_Load() Dim a%, b% Form1.AutoRedraw = True Print Tab(15); “*“ For a = 1 To 6 Print Tab(15 - a); “*“; Spc(2 * a - 1); “*“ Next a Print Tab(15 - a); For b = 15 - a To 15 + a Print “*“; Next b End Sub,55,【例4-8】已知2000年我国的人口是12.6583亿,如果在 以后的5年内人口每年平均增长1.07%,问到2005年我国 的人口是多少 ?,P = 12.6583: R = 0.0107 For i = 2001 To 2005 P = P * (1 + R) Next i Form1.Print “2005年人口数:“; P,56,第4章 控制结构程序设计,列表框、组合框,6,常用算法,8,多重循环,7,Do-Loop和While-Wend循环,4,57,4.5 While-Wend循环,格式: While 条件 语句块 Wend 说明 条件:是布尔表达式,58,WhileWend,例:从键盘输入若干学生的成绩,直到输入无效成绩(低于0分或高于100)终止,按成绩划分等级,并统计学生总人数及各个等级的学生人数。成绩分为五类:90分100分为优秀、80分89分为良好、70分79分为中等、60分69分为及格、0分59分为不及格。,score = Val(InputBox(“请输入成绩“) While score = 0 And score = 100 Wend,If score = 90 Then y = y + 1 ElseIf score = 80 Then l = l + 1 ElseIf score = 70 Then z = z + 1 ElseIf score = 60 Then j = j + 1 Else b = b + 1 End If total = total + 1,score = Val(InputBox(“请输入成绩“),59,【例4-8】已知2000年我国的人口是12.6583亿,如果在以后每年平均增长1.07%,问多少年后我国的人口达到13亿,Private Sub Command1_Click() p = 12.6583: r = 0.0107: n = 0 While p 13 p = p * (1 + r) n = n + 1 Wend Form1.Print n, p End Sub,60,4.5 Do-Loop循环,形式1先判断后执行,有可能一次也不执行; 关键字While指明条件为真时执行循环体中的语句, Until正好相反,61,形式2先执行后判断,至少执行一次,62,DoLoop循环控制结构,score = Val(InputBox(“请输入成绩“) While score = 0 And score = 100 Wend,If score = 90 Then y = y + 1 ElseIf score = 80 Then l = l + 1 ElseIf score = 70 Then z = z + 1 ElseIf score = 60 Then j = j + 1 Else b = b + 1 End If total = total + 1,score = Val(InputBox(“请输入成绩“),Do While score = 0 And score = 100,Loop,Do Until score 100,Loop,思考:本题是否适合将条件写于Loop后?,63,score = Val(InputBox(“请输入成绩“) Do If score 100 Then Exit Do If score = 90 Then y = y + 1 ElseIf score = 80 Then l = l + 1 ElseIf score = 70 Then z = z + 1 ElseIf score = 60 Then j = j + 1 Else b = b + 1 End If total = total + 1 score = Val(InputBox(“请输入成绩“) Loop,DoLoop循环,64,【例4-8】已知e的计算公式为 编写程序计算e的值,要求精确到10-6,Private Sub Command1_Click() Dim e As Single, t As Single, n As Integer e = 1: n = 0: t = 1 Do n = n + 1 t = t / n e = e +t Loop While t 0.000001 Print e, n End Sub,65,【例4-9】编写一个猜数字游戏程序,让计算机产生一个100以内的随机整数,用户从键盘输入一个数,由计算机判断输入的数是大还是小,并给出提示,直到输入正确的数为止。,Private Sub Command1_Click() Dim n As Integer, x As Integer Randomize n = Int(Rnd * 100) Do x = Val(InputBox(“输入一个100以内的整数“) If x = n Then Form1.Print x;“正确“ Exit Do ElseIf x n Then Form1.Print x; “太大“ Else Form1.Print x; “太小“ End If Loop End Sub,66,循环的非正式退出 无条件退出 Exit For Exit Do 有条件退出 If 条件 Then Exit For If 条件 Then Exit Do,67,第4章 控制结构程序设计,列表框、组合框,6,常用算法,8,多重循环,7,Do-Loop和While-Wend循环,4,68,4.6 列表框和组合框,ListBox,ComboBox,69,List属性,列表框,属性 List属性 Colunms ListCount:列表框的列表项数 ListIndex:当前选中的列表项的索引 Sorted Text:得到当前列表框的内容 MultiSelect,70,71,事件 Click DbClick 方法 AddItem 索引 :在列表框中插入一个数据项 Clear:清除列表框中的全部内容 RemoveItem 索引 :每次只能删除一个项目,72,组合框,属性 Style:用于确定组合框的类型和显示方式 Text 事件 Change Click,73,74,【例4-10】在列表框中显示对应于组合框中相关院系的专业名称,75,第4章 控制结构程序设计,列表框、组合框,6,常用算法,8,多重循环,7,Do-Loop和While-Wend循环,4,76,【例4-10】产生并显示由数码1、2、3构成的所有三位数, 并统计这些三位数的个数,For a = 1 To 3 For b = 1 To 3 For c = 1 To 3 x = 100 * a + 10 * b + c Print x Next c Next b Next a,77,【例4-11】编写打印右边图案的代码,For i = 1 To 9 Print Tab(20); For j = 1 To 9 Print “*“; Next j Print Next i,2 * i - 1,20 - i,内循环:控制列 外循环:控制行,78,思考:九九乘法表,上三角九九乘法表?下三角九九乘法表?,79,九九乘法表,For i = 1 To 9 For j = 1 To 9 Print Tab(13 * (j - 1); i; “*“; j; “=“; i * j; Next j Print Next i,80,下三角九九乘法表,For i = 1 To 9 For j = 1 To i Print Tab(13 * (j - 1); i; “*“; j; “=“; i * j; Next j Print Next i,81,上三角九九乘法表,For i = 1 To 9 For j = i To 9 Print Tab(13 * (j - 1); i; “*“; j; “=“; i * j; Next j Print Next i,82,第4章 控制结构程序设计,列表框、组合框,6,常用算法,8,多重循环,7,Do-Loop和While-Wend循环,4,83,4.8 常用算法(1) 1.方程求解-二分法,0,y,x,a,b,f(x),或,直到区间长度,或,84,a = 1: b = 4,x = (a + b) / 2,f1

温馨提示

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

评论

0/150

提交评论