四章节算法基础及VB基本语句.ppt
《四章节算法基础及VB基本语句.ppt》由会员分享,可在线阅读,更多相关《四章节算法基础及VB基本语句.ppt(96页珍藏版)》请在三一办公上搜索。
1、第四章 算法基础及VB的基本语句,2,1、了解结构化程序设计的基本概念2、掌握VB 程序设计中的常用语句3、掌握顺序、选择、和循环结构及相应的语句,教学要求,3,教学内容,4.1 算法及程序设计基础4.2 赋值语句及InputBox、MsgBox函数4.3 分支结构与分支结构语句4.4 循环结构与循环结构语句4.5 程序示例,4,4.1 算法及程序设计基础,一个程序(过程)应包括:Nikiklaus Wirth认为:有人认为:,对数据的描述:指定所用数据的类型,作用域和数据的 组织形式,即数据结构(data structure)。对操作的描述:即操作步骤,也就是算法(algorithm)。,数
2、据结构+算法=程序,程序=算法+数据结构+程序设计方法+语言工具和环境,5,1、算法的概念,算法即解决某个问题或处理某件事的方法和步骤;“采用什么结构,使用什么语句以及如何安排这些语句”。算法分类:数值计算算法非数值计算算法算法优劣:正确性,效率,占用系统资源,便于理解,易于调试等。,6,18,10,M N R,8,10,8,2,8,2,0,2,0,R=8,R=2,R=0,M=2即最大公约数,求最大公约数,题目:求两个自然数的最大公约数分析:求最大公约数的常用方法是辗转相除法(欧几里德算法)。,2、算法示例,7,算法描述:,S1 输入两个自然数:M,N;S2 求M除以N的余数R;S3 使M=N
3、,即用N代换M;S4 使N=R,即用R代换N;S5 若R0,则重复执行S2,S3,S4,否则转至S6S6 输出M,M即为M,N的最大公约数。,8,3、算法的特征,确定性 可行性 有穷性 输入性 输出性,9,4、算法的描述,程序流程图,求最大公约数,10,程序编码实现算法,算法仅提供解题思路,计算机不可直接执行。用某一程序设计语言所提供的语言成分,根据该语言的特点,并利用该语言的各种工具和手段,遵照规定的语法规则去实现算法,得到原程序代码,计算机可识别并执行。,11,5.基本算法结构,1).顺序结构,语句1,语句2,语句块,结构化程序设计,12,2)选择结构,结构化程序设计,13,3)循环结构,
4、结构化程序设计,14,三种基本结构的共同特点,只有单一入口和单一出口;结构中的每一部分都有被执行的可能;结构内不应出现永不终止的死循环。,15,4.2 赋值语句及InputBox、MsgBox函数,4.2.1 赋值语句4.2.2 InputBox函数4.2.3 MsgBox函数,16,4.2.1 赋值语句 格式:=功能:先计算表达式的值,再将该值赋予左端的变量。说明:-赋值号左端不仅可以是变量名,还可以是对象的属性;-表达式的类型和变量的类型要一致-赋值语句是按语句出现的先后顺序执行的(顺序结构)举例:,str1=Nice to meet you number%=72 Lable1.Capti
5、on=Filename is:Text.FontSize=12 改变字号,17,使用下面的方法可以获取一个对象的属性值:var=object.Property 例如:Label1.Caption=Text1.Text 式中,var是变量名、object是对象名、property是该对象的某个属性名。特别注意:属性也存在数据类型,所以在获取对象的属性值时,最好使用具有相同数据类型的变量。,说明,18,注意:赋值号(=)与比较运算符(=)不同 赋值是独立的一条语句;由运算符(=)连结两个操作数的关系表达式是语句的一部分,不可单独存在 比较运算符不会改变操作数的值;赋值语句会,改变赋值号左边的量,所
6、以必须是可以被赋值的变量或属性,Dim x As Integer,y As Integer,z As Booleanx=3:y=4:y=xz=x=yPrint x,y,z,19,Private Sub Form_Click()Dim a As Integer,b As Integer a=10 b=3*a Print a,bEnd Sub,Private Sub Form_Click()Dim a As Integer,b As Integer b=3*a a=10 Print a,bEnd Sub,例:单击窗体,下列两段程序的执行结果分别是()和()。,提示:利用赋值语句给变量赋值后,在未有
7、新的赋值语句再次给它赋值前,变量值保持不变。,20,例:交换两个变量的值。,Private Sub Form_Click()Dim a As Integer,b As Integer a=10:b=2 Print a,b 填入程序代码 Print a,bEnd Sub,正确答案Dim Temp As IntegerTemp=a:a=b:b=Temp,题目说明单击窗体程序执行结果为:10 2 2 10,注意 变量a和b为两个不定值的变量,因此不能直接用 a=2:b=10语句来解决这个问题。,一旦利用赋值语句给变量赋新值,会覆盖原值,所以不能直接用 a=b:b=a语句来解决这个问题。,21,例:求
8、一元一次方程x+5=0的解。,Private Sub Form_Click()Dim x As Integer 3*x+5=0 Print“x=”;xEnd Sub,Private Sub Form_Click()Dim x As Integerx=(0-)/3-Print“x=”;xEnd Sub,语句是该例题的算法。,错误程序,正确程序,总结:利用程序设计语言处理问题,我们首先要知道的是怎么解决问题,其次要知道怎么将解决问题的方法用程序设计语言来表达。,22,4.2.2 InputBox函数格式:InputBox$(,)功能:弹出对话框,用户输入数据后回车或单击“确定”按钮后,将输入内容赋
9、值给相应的变量;按ESC键或单击“取消”按钮,返回空串。,23,说明(1)prompt:必选项。对话框中的提示信息。(2)title:可选。对话框的标题。省略则为应用程序名。(3)default:可选。显示在用户编辑框中的缺省值,省略为空。(4)x,y:可选。指定对话框的显示位置,省略则居中。,例:i=InputBox(“输入数组元素”+Chr(10)+“第一个元素为:”,程序示例,100),缺省值,标题,提示字符串,24,例:用InputBox函数输入出生日期,计算年龄。,Option ExplicitPrivate Sub Form_Click()Dim BirthDay As Date,
10、Age As Integer BirthDay=InputBox(输入出生日期,计算年龄)Age=Year(Date)-Year(BirthDay)Print 你今年:;Age;岁End Sub,25,如果赋值号左端的变量为数值型或日期型等非字符型变量,输入字符数据 单击“取消”按钮 不输入直接按回车键,则系统都会提示出错:,Dim x As Integerx=InputBox(输入数组元素+Chr(10)+第一个元素为:,示例,10,100,100),注意,26,4.2.3 MsgBox函数格式:MsgBox(Prompt,Button,Title,HelpFile,Context)功能:向
11、用户发布提示信息,并要求用户作出必要的响应。说明:(1)Prompt:必选项。字符串表达式,对话框中的提示信息。(2)Button:指定显示按钮的数目及形式,使用的图标样式,这是一个由4个数值常量组成的式子,形式为c1+c2+c3+c4,用于决定信息框中按钮的个数和类型以及出现在信息框中的图标类型,各个参量的可选值及其功能;详见P.62表4.2(3)Title:对话框标题栏的显示信息。,27,MsgBox 需要重新来一次?,2+32+256+4096,询问,MsgBox 数据非法,请重输!,1+16+0+4096,警告,举 例,28,方法一:发布提示信息,无须用户响应,在程序中作为独立语句存在
12、,不加括号;例:MsgBox 非法数据!,警告,如果省略其中参数,逗号不能省略,MsgBox函数的用法,方法二:需要用户响应,和普通函数调用方法相同。例:Response=MsgBox(真的删除该项吗?,4+48,提示信息)If Response=vbYes Then Else End If,29,4.3 分支结构与分支结构语句,4.3.1 If-Then-Else-End If语句4.3.2 Select-Case-End Select语句,30,1、If-Then-Else语句格式1:If Then Else End If,4.3.1 If-Then-Else-End If语句,逻辑变量、
13、关系表达式、逻辑表达式,逻辑框图:,功能:如果条件成立,则执行A组语句,否则执行B组语句。,说明:If和End If语句成对出现,缺一不可;Else和B组语句部分可以省略,当条件不成立时,直接执行End If的后继语句;,31,Private Sub cmdCalculate_Click()Dim x as Single x=Val(text1.text)If x=0 Then Text2.text=Str(Sqr(x)Else Text2.text=数据小于0,错误!End IfEnd Sub,Private Sub cmdExit_Click()EndEnd Sub,Private Sub
14、 cmdClear_Click()Text1.Text=Text2.Text=Text1.SetFocusEnd Sub,例:从键盘输入一个数,求它的平方根。,缩格输入,32,例:计算分段函数y的值。,Private Sub cmdCalculate_Click()Dim x As Single,y As Single x=Val(Text1.Text)If x=0 Then y=2*Sqr(x+7)-6 Else y=5*x+Exp(x)-2 End If Text2.Text=Str(y)End Sub,cmdCalculate,33,格式2:单行If-Then-Else语句 If The
15、n Else 说明:(1)在A组语句和B组语句都只有一个语句时,可使用该格式;(2)End If语句省略。例:上例可改写为以下程序段。,Private Sub cmdCalculate_Click()Dim y As Single,x As Single x=Val(Text1.Text)If x=0 Then y=2*Sqr(x+7)-6 Else y=5*x+Exp(x)-2 Text2.Text=Str(y)End Sub,34,格式3:If Then End If格式4:If Then,逻辑框图,35,2.嵌套的If结构 在If语句的“语句块”中包含另一个If语句,叫做嵌套的If结构。
16、,If Then 外层 If Then 内层 Else If then Else 最内层 End IfElse If Then End IfEnd If,用于解决有多种情况的问题,36,例:输入三角形的三边a、b、c,求三角形的面积,P 64 例4-1,a0 and b0 and c0,a+bc and b+ca and a+cb,37,Private Sub cmdCalculate_Click()Dim a As Single,b As Single,c As Single,p As Single,s As Single a=Val(Text1.Text)b=Val(Text2.Text)
17、c=Val(Text3.Text)If(1)Then If a+bc And b+ca And c+ab Then p=(a+b+c)/2 s=Sqr(p*(p-a)*(p-b)*(p-c)Text4.Text=Str(s)Else Text4.Text=“不能构成三角形”End If Else Text4.Text=“边长不能小于0”End IfEnd Sub,计算公式:,其中:,a0 And b0 And c0,38,例:计算分段函数y的值。,Private Sub cmdCalculate_Click()Dim x As Single,y As Single x=Val(Text1.Te
18、xt)If x0 Then y=1/(x-5)Else If x5 Then y=3*x2+4*x+5 Else y=Log(x)End If End If Text2.Text=Str(y)End Sub,39,例:输入分数并判断等级分。计算规则如下:分数 100-90 89-80 79-70 69-60 60等级分 A B C D E,Private Sub Text1_KeyPress(KeyAscii As Integer)Dim Score As Integer,Degree As String If KeyAscii=13 Then Score=Val(Text1.Text)If
19、Score=90 And Score=80 Then Degree=B Else If Score=70 Then Degree=C Else If Score=60 Then Degree=D Else Degree=E End If End If End If End If Text2.Text=Degree End IfEnd Sub,缺点:嵌套层次过多,结构不清晰,容易出错。,从文本框取数据,向文本框放数据,40,3、多分支If-Then-ElseIf语句格式:If Then ElseIf Then ElseIf Then Else End If,功能:-对条件自上而下依次判断,若条件
20、i成立,则执行相应的Ai组语句;-若所有条件都不成立,则执行An+1组语句。-无论执行了哪个语句块,都将执行End If的后继语句。,41,(1)该语句结构可以解决多分支问题,只有一个End If语句,避免If语句嵌套层数过多的情况;(2)Else语句可以省略;(3)该结构是一个单出口的结构,即只会执行一组语句,若条件中有两个成立,则按语句的顺序执行前面的一组语句。,说 明,42,Private Sub Text1_KeyPress(KeyAscii As Integer)Dim Score As Integer,Degree As String If KeyAscii=13 Then Sco
21、re=Val(Text1.Text)If Score=90 And Score=80 Then Degree=B ElseIf Score=70 Then Degree=C ElseIf Score=60 Then Degree=D Else Degree=E End If Text2.Text=Degree End IfEnd Sub,特点:结构清晰。,将上例用If-Then-ElseIf语句改写:,90Score=80?,43,格式:Select Case Case Case Case Case Else End Select,功能:计算测试表达式的值,自上而下检查测试条件;若表达式的值符
22、合测试 i,则执行相应的语句块 i;若所有条件都不成立,则执行语句块n+1。无论执行了哪个语句块,都将执行End Select的后继语句。,4.3.2 多分支Select-Case-End Select语句,44,(1)测试表达式可以是算术表达式或字符表达式;(2)测试条件有四种形式:常量,如2、3、“A”等 闭区间,如3 To 78、“B”To“H”等 开区间,如Is20、Is“P”等 以上三种形式的组合,以逗号间隔,条件组合是或的关系,不能表示与的关系(3)Case Else语句部分可以省略;(4)以End Select语句结束;(5)该结构是一个单出口的结构,即只会执行一个语句块,若条件
23、中有两个成立,则按语句的顺序执行前面的语句块。,说 明,45,例:将上例用Select Case语句改写。,Private Sub Text1_KeyPress(KeyAscii As Integer)Dim Score As Integer,Degree As String If KeyAscii=13 Then Score=Val(Text1.Text)Select Case Score Case 90 To 100 Degree=A Case 80 To 89 Degree=B Case 70 To 79 Degree=C Case 60 To 69 Degree=D Case Is60
24、 Degree=E End Select Text2.Text=Degree End IfEnd Sub,46,练习:键盘输入三个数,将它们从大到小依次排列输出。,Private Sub Form_Click()Dim a As Integer,b As Integer,c As Integer,temp As Integer a=InputBox(输入a,顺序输出)b=InputBox(输入b,顺序输出)c=InputBox(输入c,顺序输出)If a c Then Print a,b,c Else Print a,c,b End IfEnd Sub,保证a为a,b两数中的大值,47,分支结
25、构的适用情况,验证用户输入数据的合法性分段函数计算用于区分等级其他须根据条件不同执行不同操作的情况,48,4.4 循环结构与循环结构语句,4.4.1 Do-loop循环结构语句(条件循环)4.4.2 For-Next 循环结构语句(计数循环)4.4.3 循环嵌套,49,由一定的条件控制,反复执行某个程序段的程序结构称为循环结构。用于解决一些需要重复进行某些操作的问题。循环要素:&循环控制条件 条件或逻辑表达式&循环体 重复执行的语句块&为防止死循环,在循环体内必须要有对应语句,使得循环控制条件会不满足,结束循环运行。,基本概念,50,例:在窗体上打印10行“Hello”。循环控制条件 是否已打
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章节 算法 基础 VB 基本 语句

链接地址:https://www.31ppt.com/p-5399447.html