《总结程序结构》PPT课件.ppt
VB程序设计1 1序程计设VB 程序设计程序设计程序控制结构程序控制结构VB程序设计2 2序程计设程序设计方法:程序设计方法:1 1、认真阅读题目,建立窗体、认真阅读题目,建立窗体 (注:窗体不一样,编程方式也不一样注:窗体不一样,编程方式也不一样)2 2、分析处理数据及操作先后关系、分析处理数据及操作先后关系3 3、转化为结构(流程图或、转化为结构(流程图或N-SN-S图)图)4 4、程序设计、程序设计5 5、上机检查(调试)、上机检查(调试)6 6、总结、改进、总结、改进7 7、推广应用、推广应用注注:1 1、掌握题目的分类,采用相应的程序结构和设计方法。、掌握题目的分类,采用相应的程序结构和设计方法。2 2、同一个题目,完善程序的逻辑、算法、优化结构。、同一个题目,完善程序的逻辑、算法、优化结构。0:程序设计程序设计VB程序设计3 3序程计设IF Then Else End if如果条件成立如果条件成立 否则否则 判断结束判断结束1:IF选择选择块块结构结构(1)基本格式:基本格式:(2)执行方式:流程图执行方式:流程图条件表达式条件表达式语句组语句组AT语句组语句组BFEnd if之后的语句之后的语句示例:示例:If score=60 Then Print“祝贺你考试通过!祝贺你考试通过!”Else Print“考试未通过考试未通过.”End If Print 继续努力!继续努力!VB程序设计4 4序程计设2:单行单行条件语句条件语句(1).基本格式基本格式 If Then 语句组语句组A Else 语句组语句组B(2).执行方式:流程图执行方式:流程图条件表达式条件表达式语句组语句组AT语句组语句组BFif之后的语句之后的语句示例:示例:If score=60 Then Print“通过!通过!”Else Print“未通过未通过.”Print 继续努力!继续努力!注:此语句没有注:此语句没有End ifVB程序设计5 5序程计设3:比较比较示例:示例:从键盘上输入两个整数,并按从大到小输出。从键盘上输入两个整数,并按从大到小输出。Private Sub Command5_Click()方法方法1 a=Val(InputBox(请输入一个正整数请输入一个正整数a)b=Val(InputBox(请输入一个正整数请输入一个正整数b)If a b Then t=a:a=b:b=t End If Print a,bEnd SubIf a b Then t=a:a=b:b=tVB程序设计6 6序程计设4:多分支选择结构多分支选择结构 Select n格式:格式:Select Case Case Case Case Else End Selectn示例:示例:a=InputBox(“请输入一个字请输入一个字”)Select Case a Case is=“。”Print“是句号是句号”Case“,”Print“是逗号是逗号”Case a To z Print“是小写字母是小写字母 Case“A”,”B”,”C”to“Z”Print“是大写字母是大写字母 Case is”0”Print“可能是数字字符可能是数字字符 End SelectCase is=“0”and is c And a+c b And b+c a Then k=(a+b+c)/2 s=Sqr(k*(k-a)*(k-b)*(k-c)Print s Else MsgBox(输入的边长输入的边长a、b、c不能组成三角形不能组成三角形)End IfEnd SubVB程序设计8 8序程计设Private Sub Command1_Click()方法方法2 a=Val(InputBox(请输入三角形边长请输入三角形边长a)b=Val(InputBox(请输入三角形边长请输入三角形边长b)c=Val(InputBox(请输入三角形边长请输入三角形边长c)注:输入的边长注:输入的边长a、b、c必须组成三角形必须组成三角形,否则重新输入否则重新输入,直到成功为直到成功为至至 Do While(a+b c Or a+c b Or b+c c And a+c b And b+c a Then k=(a+b+c)/2 s=Sqr(k*(k-a)*(k-b)*(k-c)Text4.Text=s Else MsgBox(输入的边长输入的边长a、b、c不能组成三角形不能组成三角形)End IfEnd Sub计算任意三角形的面积计算任意三角形的面积SVB程序设计10 10序程计设 假设广州市地铁假设广州市地铁1号线全长共有号线全长共有12站台,搭乘站数与车票价格的对应站台,搭乘站数与车票价格的对应关系如下表关系如下表:123456789101112站数站数123456789101112价格价格112233445566提提示示:乘乘客客输输入入当当前前站站号号及及目目的的地地站站号号,计计算算机机报报告告(加加收收1元元附附加加费费)显示票价显示票价money(元)(元),若输入的站超越若输入的站超越(112),提示,提示“ERROR!”。解题思路:解题思路:输入:当前站号,目的站号输入:当前站号,目的站号判断输入的站号是否超界?判断输入的站号是否超界?不不超超界界计算出搭乘站数计算出搭乘站数n判断区段,计算出票价判断区段,计算出票价打印输出票价打印输出票价超界:打印超界:打印“ERROR!”6:条件结构示例条件结构示例2VB程序设计11 11序程计设Private sub Command1_click()Dim a%,b%,c%a=Val(InputBox(输入当前站号输入当前站号=)b=Val(InputBox(输入目的地站号输入目的地站号=)If(a=1 And b=1 And a=12)Thenn=Abs(b-a)If(n=1 Or n=2)Then c=1If(n=3 Or n=4)Then c=2If(n=5 Or n=6)Then c=3If(n=7 Or n=8)Then c=4If(n=9 Or n=10)Then c=5If(n=11 Or n=12)Then c=6Print 票价票价=“;c+1 ElsePrint 站号超界,站号超界,ERROR!End IfEnd sub 解题思路:解题思路:输入:当前站号,目的站号输入:当前站号,目的站号判断输入的站号是否超界?判断输入的站号是否超界?不不超超界界计算出搭乘站数计算出搭乘站数n判断区段,计算出票价判断区段,计算出票价打印输出票价打印输出票价超界:打印超界:打印“ERROR!”Select case n case 1,2 :c=1 case 3,4 :c=2 case 5,6 :c=3 case 7,8 :c=4 case 9,10 :c=5 case 11,12 :c=6End selectc=int(n+1)/2)VB程序设计12 12序程计设当前站是陈家祠站当前站是陈家祠站 站号站号6Private Sub Command10_Click()票价票价 a=6 If Text1.Text=火车东站火车东站 Then b=1 If Text1.Text=体育西路体育西路 Then b=2 If Text1.Text=天河天河 Then b=3 If Text1.Text=中山东路中山东路 Then b=4 n=a-d c=Int(n+1)/2)Text2.Text=c+1End SubSub Command1_Click()火车东站火车东站 Text1.Text=火车东站火车东站End SubSub Command4_Click()中山东路中山东路 Text1.Text=中山东路中山东路End SubVB程序设计13 13序程计设7:循环循环块块结构格式结构格式1:当型循环格式当型循环格式While 循环条件循环条件 语句组语句组 Wend2:For格式格式(计数循计数循环环)For=To Step Exit For Next 3:Do循环循环 格式格式格式一格式一:Do While Exit Do Loop格式二格式二:Do Until Exit Do Loop格式三格式三:Do Exit Do Loop While 格式四格式四:Do Exit Do Loop UntilVB程序设计14 14序程计设8:循环要点循环要点 Private Sub Command1_Click()N=Val(Text1.Text)Sum=0 i=1 While ia-1 then Print a,”是素数。是素数。”Endif正常出口正常出口ia-1 素数素数非非正正常常出出口口i=a-1 不是素数不是素数VB程序设计16 16序程计设10:循环结构示例循环结构示例1(项操作项操作)同同同同一类题材一类题材一类题材一类题材,采用相同的程序结构,采用相同的程序结构,采用相同的程序结构,采用相同的程序结构思考题:思考题:思考题:思考题:(1)s=2+4+6+8+10(1)s=2+4+6+8+10(2)s=1*2*3*4*5*10(2)s=1*2*3*4*5*10(3)s=1!+2!+3!+4!+5!(3)s=1!+2!+3!+4!+5!(4)s=2(4)s=20 0+2+21 1+2+22 2+2+23 3+2+26363(5)(5)(6)(6)前前前前2020项之和项之和项之和项之和 示例:示例:S=1+2+3+10Sub Command1_click()S=0 For n=1 to 10 step 1 K=n S=S+K Next Print sEnd sub Sub Command1_click()4 S=0 For n=0 to 63 step 1 K=2n S=S+K Next Print sEnd sub Sub Command1_click()3 S=0 For n=1 to 5 step 1 k=1 For i=1 to n K=k*i Next S=S+K Next Print sEnd sub VB程序设计17 17序程计设10:循环结构示例循环结构示例2(行列输出行列输出)打印九九乘法表打印九九乘法表(两重循环两重循环).For i=1 To 9 行行 For j=1 To 9 列列 一行的内容一行的内容 Print i&j&=&i*j;Next j Print 一行内容完后回车一行内容完后回车 Next i思考:打印思考:打印下三角下三角A或或上三角上三角B程序如何改动?程序如何改动?For j =1 To iABFor j=i to 9VB程序设计18 18序程计设For i=1 To 9 行行 For j=1 To 9 列列 Print i&j&=&i*j;Next j Print Next i*图图1For i=1 To 9 行行 For j=1 To 9 列列 Print “*”;Next j Print Next i*图图2For i=1 To 9 行行 For j=1 To i 列列 Print “*”;Next j Print Next iVB程序设计19 19序程计设*图图2*图图3*图图4For i=1 To 9 行行 For j=1 To i 列列 Print “*”;Next j Print Next iFor i=1 To 9 For j=1 To 2*i-1 Print “*”;Next j Print Next iFor i=1 To 9 For k=1 to 20-i Print space(1);Next k For j=1 To 2*i-1 Print “*”;Next j Print Next iVB程序设计2020序程计设11:循环结构示例循环结构示例3(遍历法)(遍历法)从键盘上输入一个正整数,输出它所有的约数。从键盘上输入一个正整数,输出它所有的约数。Private Sub Command4_Click()N=Val(InputBox(请输入一个正整数请输入一个正整数)For i=1 To N If N Mod i=0 Then Print i End If NextEnd SubVB程序设计21 21序程计设从键盘上输入两个正整数,输出它的最大公约数和最小公倍数。从键盘上输入两个正整数,输出它的最大公约数和最小公倍数。Private Sub Command5_Click()方法方法1 a=Val(InputBox(请输入一个正整数请输入一个正整数a)b=Val(InputBox(请输入一个正整数请输入一个正整数b)If a Max Then Max=x If x Max Then Max=N If N Min Then Min =N Next Print Max,Min,SumEnd SubVB程序设计2525序程计设14:循环结构示例循环结构示例5(其它)(其它)例例1 猴子吃桃子。小猴在某天摘桃若干个,当天吃掉一半多一猴子吃桃子。小猴在某天摘桃若干个,当天吃掉一半多一个;第二天吃了剩下的桃子的一半多一个;以后每天都吃尚存个;第二天吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第桃子的一半多一个,到第7天要吃时只剩下一个,问小猴共摘天要吃时只剩下一个,问小猴共摘下了多少个桃子?下了多少个桃子?例例2用辗转相除法求两自然数用辗转相除法求两自然数 m,n 的最大公约数和最小公倍的最大公约数和最小公倍数。数。例例3打印输出斐波那契打印输出斐波那契(Fibonacci)数列的前数列的前20项项