资源预览内容
第1页 / 共60页
第2页 / 共60页
第3页 / 共60页
第4页 / 共60页
第5页 / 共60页
第6页 / 共60页
第7页 / 共60页
第8页 / 共60页
第9页 / 共60页
第10页 / 共60页
亲,该文档总共60页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第3 3章章 基本程序设计基本程序设计l程序的基本结构 l顺序结构 l选择结构 l循环结构 l其他辅助控制语句 l应用举例 程序的基本结构程序的基本结构 顺序结构顺序结构 l【例3.1】 将变量A、B中的数据交换。l有三种方法可以实现。l【方法一】 使用中间变量(中转站)语句如下 :lc=a:a=b:b=cl【方法二】 不使用中间变量(先求和),语句 如下: la=a+b:b=a-b:a=a-bl【方法三】 不使用中间变量(先作差),语句 如下: la=a-b:b=a+b:a=b-a【例3.2】 输入某同学三门课程的成绩,求它们的平均分。lPrivate Sub Form_Click()l Dim s1!,s2!,s3!,aver!l s1=InputBox(“输入第一门课程的成绩“)l s2=InputBox(“输入第二门课程的成绩“)l s3=InputBox(“输入第三门课程的成绩“)l aver=(s1+s2+s3)/3l print “aver=“;averlEnd Subl选择结构又称条件结构: 根据某个具体的条件的分析、比较和判断,决定完 成相应的操作; 使用If语句来实现; 包括单行结构条件语句和块结构条件语句If If条件语句条件语句l单分支条件结构(If.Then语句)l双分支结构(If.Then.Else语句)l多分支结构(IfThenElseIf语句)lIf语句的嵌套1 1单分支条件结构(单分支条件结构(If.ThenIf.Then语句)语句)用 If.Then 结构有条件地执行一个或多个语句。单行语法和多行块语法 都可以使用: (1)If Then (2)If ThenEnd If 下面两个例子等价: (1)If todayDate 为 True 时 要执行多行代码,则必须使用多行块 If.Then.End If 语法。【例3.3】 已知两个数x和y,比较它们的大小,使得 x大于y:l【方法一】lIf x ThenElseEnd If (2)If ThenElse当的值为真时,执行Then后面的语句块1(或语 句1),否则执行Else后面的语句块2(或语句2)。y =执行过程:首先计算的值,如果结果为True,则执行,否则,执行。 T(真)F(假)条件满足?语句块1语句块2End If之后的语句选择结构流程图l 双分支结构例双分支结构例计算分段函数单分支 y=cos(x)x3+3*x 结构实现 If x0 Then双分支 y=sin(x)+sqr (x*x+1)Else 结构实现 y=cos(x)x3+3*xEnd If【例例3.53.5】 输入一个整数,判断其奇偶性。输入一个整数,判断其奇偶性。lPrivate Sub Form_Click()l Dim x as integerl x=InputBox(“输入一个整数“)l If x mod 2=0 Then Print x; “是偶数 “ Else Print x; “是奇数“lEnd Subx0例如:计计算分段函数y = 本题题在选择选择 条件时时,可以选择选择 x=0(1)用单单分支结结构实现实现 y=3*x*x+4*x-5 If x=0 Then y= 或 If x=0 Then y=(2)用双分支结结构实现实现 If x=0 Then y=Elsey=3*x*x+4*x-5 End Ify=3*x*x+4*x-5多分支结构可以处理两个或两个以上分支。其语句形式为: If ThenElseIf Then Else End If 首先测试。如果它为 False,就测试,依 次类推,直到找到一个为 True 的条件。当它找到一个为 True 的条 件时,就会执行相应的语句块,然后执行 End If 后面的代码。作为 一个选择,可以包含 Else 语句块,如果条件都不是 True,则 执行 Else 语句块。3. 多分支结构(IfThenElseIf语句)例:利用If.Then.Else 语语句编编写求函数y = 的值值的程序,要求只要在文本框Text1中输输入自变变量x的值值,就在标签栏标签栏 label1上显显示函数值值。 根据题题意,在窗体上添加一个文本控件Text1和标签标签 控件label1,代码应码应 包含 在Text1_change事件中。代码为码为 : Private Sub Text1_Change()Dim x As Double, y As DoubleLabel1.Caption = “ 清空Label1的内容x = CDbl(Text1.Text) 将字符串类型转化为双精度类型 If (x = 1# And x = “A“ And Ucase(c)=“0“ And c0 ,Y0 点位于第一象限内X0, Y0 点位于第二象限内X= 0 Then l If d 0 Then l r = Sqr(d) / (2 * a) l X1 = p + r:X2 = p - r l Else l X1 = p:X2 = p l End If l Print “X1=“; X1, “X2=“; X2 l Else l q = Sqr(-d) / (2 * a) l Print “X1=“; p; “+“; q; “i“, “X2=“; p; “-“; q; “i“ l End If lEnd SubSelect Case的结构形式为: Select Case Case Case Case Case Else End Select2.Select Case 表达式或由逗号分隔的多个表达式例如: Case “A“, “B“ , “C“ , “D“ , “E“ Case 1,3,5 Case a,b To 例如: Case 1 to 10 Case “A“ to “Z“ Case a to b Is 例如: Is a+b【例例3.93.9】 从键盘输入一个百分制成绩,将其转换为对应的等级显示,从键盘输入一个百分制成绩,将其转换为对应的等级显示, 转换规则为:转换规则为:9090100100对应对应A A,80808989对应对应B B,70707979对应对应C C,60606969对对应应D D,0 05959对应对应E E。lPrivate Sub Command1_Click() l Dim x As Single, y As Single l x = InputBox(“请输入分数:“) l if x100 Thenl print “分数越界“l Elsel x=x+0.5 x=int(x)l x=x10 l Select Case x l Case 10,9 l Print “A“ lCase 8 l Print “B“ lCase 7l Print “C“ lCase 6l Print “D“ lCase Elsel Print “E“ lEnd Select l End Ifl End Sub课堂练习题 下表为某航空公司机票打折表。试根据此表编写程序。日 期、机票数从文本框中输入,打折情况在窗体上输出。月日订票数(张)优惠率(%) 1、2、3、6、11、12全部=3025 =3035 =3025 =3035 =3025 =3030 , , ) 例如,求分段函数:Y= 函数值值的语语句可以简单简单 地表示为为: y=Iif(x, , , . ,) 循环结构循环结构 lFOR循环结构;lWHILE-WEND;lDO循环;l多重循环lGoto语句lOn-Goto语句循环概述循环概述l在程序中,凡是需要重复相同或相似的操作步骤,都可以使 用循环结构来实现。循环结构由两部分组成:循环体,即要 重复执行的语句序列;循环控制部分,即用于规定循环的重 复条件或重复次数,同时确定循环范围的语句。l要使计算机能够正常执行某循环,由循环控制部分所规定的 循环次数必须是有限的。lVB提供了三种不同风格的循环结构,分别是: 计数循环(ForNext循环) 当循环(WhileWend循环) Do循环(DoLoop循环)l其中计数循环常用于已知循环次数的循环,而当循环和Do循 环适合于循环次数未知,只知道循环结束条件的循环。FORFOR循环循环l格式: For 循环变量=初值 To 终值 Step 步长循环体Next 循环变量 l格式说明: “循环变量”:被用作循环计数器的数值变量。 “初值”、“终值”:都是数值型,可以是数值表达式。 “步长”:是数值型,可以是数值表达式。步长不能为0。 如果步长是1,则Step 1可以省略。 “循环体”:在For和Next之间一条或多条语句。Next后面的循环变量与For语句中的循环变量必须相同。lFor循环的执行过程如下为: 系统将初值赋给循环变量,并自动记下终值和步长。 判断循环变量是否超过终值:未超过终值,执行一次循环体;否则 ,结束循环。 执行Next语句,将循环变量加上一个步长。 转到(2),继续执行。 结束循环,执行Next后面的语句。 l功能说明: 在执行过程第二步中,所说的“超过”包含两种情况: 步长为正数时,循环变量大于终值为“超过”。 步长为负数时,循环变量小于终值为“超过”。 终值和初值的取值有以下情况: 步长为正数时,终值应该大于初值,否则循环体不会被执行。 步长为负数时,终值应该大于初值,否则循环体不会被执行。 当终值等于初值时,不管步长是正数是负数,均执行一次循环体。 循环次数由初值、终值和步长确定,计算公式为: 循环次数 = Int(终值-初值)/ 步长)+ 1 循环变量用来控制循环过程,在循环体内可以被引用,但不应被重 新赋值,否则将无法确定循环次数。【例例3.103.10】 计算计算1 12 233200200的值。的值。lPrivate Sub Command1_Click() l Dim i As Integer, Sum As Integer l Sum = 0 l For i=1 to 200 l Sum = Sum +il Next il Text1.Text = Sum lEnd Sub课堂练习题课堂练习题l求1100所有奇数的平方和。l求表达式x/2!+x2/3!+xn/(n+1)!的值。其 中x、n由键盘输入。l求100999所有的X,满足X = X个位、十位、百 位的立方和。l求11000之间间所有能够够被13整除的数。按每行各 行10个数排满满足条件的数。FORFOR循环逻辑结构流程图循环逻辑结构流程图开始结束循环变量终值?循环变量=初值执行循环体YN循环变量=循环变量+步长开始结束循环变量0)步长为负数(循环体Wend 该循环格式中的一般为布尔表 达式,也可以是数值和字符表达式,结果 为True或False,用来表示一个判断条件。该语句的执行过程是:首先计算给定的的值,如果结果为 True(非0值),
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号