算法基础及VB基本语句ppt课件

上传人:博****1 文档编号:570211218 上传时间:2024-08-02 格式:PPT 页数:96 大小:715.50KB
返回 下载 相关 举报
算法基础及VB基本语句ppt课件_第1页
第1页 / 共96页
算法基础及VB基本语句ppt课件_第2页
第2页 / 共96页
算法基础及VB基本语句ppt课件_第3页
第3页 / 共96页
算法基础及VB基本语句ppt课件_第4页
第4页 / 共96页
算法基础及VB基本语句ppt课件_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《算法基础及VB基本语句ppt课件》由会员分享,可在线阅读,更多相关《算法基础及VB基本语句ppt课件(96页珍藏版)》请在金锄头文库上搜索。

1、江苏省计算机等级考试 Visual Basic 程序程序设计第四章第四章 算法根底及算法根底及VBVB的根本语句的根本语句江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计1 1、了解构造化程序设计的根本概念、了解构造化程序设计的根本概念2 2、掌握、掌握VB VB 程序设计中的常用语句程序设计中的常用语句3 3、掌握顺序、选择、和循环构造及相应的语句、掌握顺序、选择、和循环构造及相应的语句教学要求教学要求江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计教学内容教学内容4.1 4.1 算法及程序设计根底算法及程序设计根底4.2 4.2 赋值

2、语句及赋值语句及InputBoxInputBox、MsgBoxMsgBox函数函数4.3 4.3 分支构造与分支构造语句分支构造与分支构造语句4.4 4.4 循环构造与循环构造语句循环构造与循环构造语句4.5 4.5 程序例如程序例如江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计4.1 4.1 算法及程序设计根底算法及程序设计根底l l一个程序一个程序一个程序一个程序( ( ( ( 过过程程程程) ) ) )应应包括:包括:包括:包括:l lNikiklaus WirthNikiklaus WirthNikiklaus WirthNikiklaus Wirth以以

3、以以为为:l l有人以有人以有人以有人以为为: 对数据的描画:指定所用数据的类型,作用域和数据的对数据的描画:指定所用数据的类型,作用域和数据的 组织方式,即数据构造组织方式,即数据构造data structure。 对操作的描画:即操作步骤,也就是算法对操作的描画:即操作步骤,也就是算法algorithm。数据构造数据构造+算法算法=程序程序程序程序=算法算法+数据构造数据构造+程序程序设计方法方法+言言语工具和工具和环境境江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计1 1、算法的概念、算法的概念l算法算法l即即处理理某某个个问题或或处置置某某件件事事的的方方

4、法法和和步步骤;“采采用用什什么么构构造造,运用什么运用什么语句以及如何安排句以及如何安排这些些语句。句。l算法分算法分类:l数数值计算算法算算法l非数非数值计算算法算算法l算法算法优劣:劣: l正确性,效率,占用系正确性,效率,占用系统资源,便于了解,易于源,便于了解,易于调试等。等。江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计1810M N R8108 2 8 2 0 2 0R=8R=2R=0M=2即最大公约数即最大公约数求求最最大大公公约数数 标题标题 :求两个自然数的最大公约数:求两个自然数的最大公约数 分析分析 :求最大公约数的常用方法是辗转相除法:求

5、最大公约数的常用方法是辗转相除法( (欧几里德算法欧几里德算法) )。2 2、算法例如、算法例如江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计 算法描画算法描画 :S1 S1 输入两个自然数:入两个自然数:M M,N N;S2 S2 求求M M除以除以N N的余数的余数R R;S3 S3 使使M=NM=N,即用,即用N N代代换M M;S4 S4 使使N=RN=R,即用,即用R R代代换N N;S5 S5 假假设R0R0,那那么么反反复复执行行S2,S3,S4,S2,S3,S4,否否那那么么转至至S6S6S6 S6 输出出M M,M M即即为M M,N N的最大公

6、的最大公约数。数。江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计3 3、算法的特征、算法的特征2 确定性确定性2 可行性可行性2 有有穷性性2 输入性入性2 输出性出性江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计4 4、算法的描画、算法的描画 l程序流程图程序流程图求求最最大大公公约数数江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计程序程序编码实现算法算法l算法仅提供解题思绪,计算机不可直接执行。算法仅提供解题思绪,计算机不可直接执行。l用用某某一一程程序序设设计计言言语语所所提提供供的的言言语语成成分

7、分,根根据据该该言言语语的的特特点点,并并利利用用该该言言语语的的各各种种工工具具和和手手段段,遵遵照照规规定定的的语语法法规规那么去实现算法,得到原程序代码,计算机可识别并执行。那么去实现算法,得到原程序代码,计算机可识别并执行。江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计5.5.根本算法构造根本算法构造1 1. . 顺序构造顺序构造语句语句1语句语句2语句块语句块构构造造化化程程序序设计江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计l2选择构造选择构造条件满足?块1块2TrueFalse构构造造化化程程序序设计江苏计算机等江苏计

8、算机等级考试级考试 Visual Basic 程序程序设计l3循环构造循环构造块块TrueFalse条件条件构构造造化化程程序序设计江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计三种根本构造的共同特点三种根本构造的共同特点l只需单一入口和单一出口;只需单一入口和单一出口;l构造中的每一部分都有被执行的能够;构造中的每一部分都有被执行的能够;l构造内不应出现永不终止的死循环。构造内不应出现永不终止的死循环。江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计4.2 4.2 赋值语句及赋值语句及InputBoxInputBox、MsgBoxMs

9、gBox函数函数4.2.1 赋值语句4.2.2 InputBox函数4.2.3 MsgBox函数江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计4.2.1 赋值语句 格式:= 功能:先计算表达式的值,再将该值赋予左端的变量。 阐明: -赋值号左端不仅可以是变量名,还可以是对象的属性; -表达式的类型和变量的类型要一致 -赋值语句是按语句出现的先后顺序执行的顺序构造 举例: str1 = Nice to meet you number% = 72 Lable1.Caption = Filename is: Text.FontSize = 12 改改动字号字号江苏计算机

10、等江苏计算机等级考试级考试 Visual Basic 程序程序设计运用下面的方法可以获取一个对象的属性值:运用下面的方法可以获取一个对象的属性值:var = object . Propertyvar = object . Property 例如:例如:Label1.Caption=Text1.TextLabel1.Caption=Text1.Text 式中,式中,varvar是变量名、是变量名、objectobject是对象名、是对象名、propertyproperty是该对是该对象的某个属性名。象的某个属性名。特别留意:属性也存在数据类型,所以在获取对象的属性值时,特别留意:属性也存在数据类

11、型,所以在获取对象的属性值时,最好使器具有一样数据类型的变量。最好使器具有一样数据类型的变量。 阐明阐明 江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计留意:赋值号留意:赋值号= =与比较运算符与比较运算符= =不同不同 赋值是独立的一条语句;赋值是独立的一条语句; 由运算符由运算符= =连结两个操作数的关系表达式是语句连结两个操作数的关系表达式是语句的一部分的一部分, , 不可单独存在不可单独存在 比较运算符不会改动操作数的值;比较运算符不会改动操作数的值; 赋值语句会,改动赋值号左边的量,所以必需是可以赋值语句会,改动赋值号左边的量,所以必需是可以被赋值的变量

12、或属性被赋值的变量或属性Dim x As Integer, y As Integer, z As Booleanx=3 : y=4 : y=xz = x=yPrint x, y, z江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计Private Sub Form_Click() Dim a As Integer,b As Integer a=10 b=3*a Print a,bEnd SubPrivate Sub Form_Click() Dim a As Integer,b As Integer b=3*a a=10 Print a,bEnd Sub例:单击窗体,

13、以下两段程序的执行结果分别是和。例:单击窗体,以下两段程序的执行结果分别是和。提示:利用赋值语句给变量赋值后,在未有新的提示:利用赋值语句给变量赋值后,在未有新的赋值语句再次给它赋值前,变量值坚持不变。赋值语句再次给它赋值前,变量值坚持不变。江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计例:交换两个变量的值。例:交换两个变量的值。Private Sub Form_Click() Dim a As Integer,b As Integer a=10 : b=2 Print a,b 填入程序代码填入程序代码 Print a,bEnd Sub正确答案正确答案Dim Te

14、mp As IntegerTemp=a : a=b : b=Temp标题阐明标题阐明单击窗体程序执行结果为:单击窗体程序执行结果为: 10 2 10 2 2 10 2 10 留意留意 变量量a a和和b b为两个不定两个不定值的的变量,量,因此不能直接用因此不能直接用 a=2 : b=10 a=2 : b=10语句来句来处理理这个个问题。一旦利用一旦利用赋值语句句给变量量赋新新值,会覆盖原,会覆盖原值,所以不能,所以不能直接用直接用 a=b : b=a a=b : b=a语句来句来处理理这个个问题。江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计例:求一元一次方程例

15、:求一元一次方程x+5=0x+5=0的解。的解。Private Sub Form_Click() Dim x As Integer 3*x+5=0 Print “x=;xEnd SubPrivate Sub Form_Click() Dim x As Integerx=(0-)/3 - Print “x=;xEnd Sub 语句语句 是该例题的算法。是该例题的算法。错误程序错误程序正确程序正确程序总结:总结: 利用程序设计言语处置问题,我们首先要知道的是怎样处利用程序设计言语处置问题,我们首先要知道的是怎样处理问题,其次要知道怎样将处理问题的方法用程序设计言语来理问题,其次要知道怎样将处理问题

16、的方法用程序设计言语来表达。表达。江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计4.2.2 InputBox4.2.2 InputBox函数函数 格式格式 :InputBox$(,DefaInputBox$(,)ult,) 功能功能 : 弹出出对话框,用框,用户输入数据后回入数据后回车或或单击“确定按确定按钮后,将后,将输入内容入内容赋值给相相应的的变量;按量;按ESCESC键或或单击“取消按取消按钮,前往空串。前往空串。江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计 阐明阐明 1 1promptprompt:必选项。对话框中的提示信

17、息。:必选项。对话框中的提示信息。2 2titletitle:可选。对话框的标题。省略那:可选。对话框的标题。省略那么为运用程序名。么为运用程序名。3 3defaultdefault:可选。显示在用户编辑框中:可选。显示在用户编辑框中的缺省值,省略为空。的缺省值,省略为空。4 4x,y:x,y:可选。指定对话框的显示位置,省可选。指定对话框的显示位置,省略那么居中。略那么居中。例:例:i = InputBox(“i = InputBox(“输入数入数组元素元素+Chr(10)+“+Chr(10)+“第一个元素第一个元素为: :, 程序例如程序例如, , 100)100)缺省值缺省值标题标题提示

18、字符串提示字符串江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计例:用例:用InputBox函数输入出生日期,计算年龄。函数输入出生日期,计算年龄。Option ExplicitOption ExplicitPrivate Sub Form_Click()Private Sub Form_Click() Dim BirthDay As Date, Age As Integer Dim BirthDay As Date, Age As Integer BirthDay = InputBox( BirthDay = InputBox(输入出生日期输入出生日期, , 计算

19、年龄计算年龄) Age = Year(Date) - Year(BirthDay) Age = Year(Date) - Year(BirthDay) Print Print 他今年:他今年:; Age; ; Age; 岁岁 End SubEnd Sub江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计4.2.3 MsgBox4.2.3 MsgBox函数函数 格式格式 :MsgBox(Prompt,Button,Title,HelpFiMsgBox(Prompt,Button,Title,HelpFile,Context)le,Context) 功能功能 :向用户发布

20、提示信息,并要求用户:向用户发布提示信息,并要求用户作出必要的呼应。作出必要的呼应。 阐明阐明 : 1 1Prompt:Prompt:必选项。字符串表达式,对话必选项。字符串表达式,对话框中的提示信息。框中的提示信息。 2 2Button:Button:指定显示按钮的数目及方式,指定显示按钮的数目及方式,运用的图标款式,这是一个由运用的图标款式,这是一个由4 4个数值常量组个数值常量组成的式子,方式为成的式子,方式为c1+c2+c3+c4c1+c2+c3+c4,用于决议信,用于决议信息框中按钮的个数和类型以及出如今信息框息框中按钮的个数和类型以及出如今信息框中的图标类型,各个参量的可选值及其功

21、能中的图标类型,各个参量的可选值及其功能; ; 详见详见P.62P.62表表4.24.2 3 3Title:Title:对话框标题栏的显示信息。对话框标题栏的显示信息。江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计MsgBox MsgBox 需求重新来一次需求重新来一次?, 2 + 32 + 256 + 4096, ?, 2 + 32 + 256 + 4096, 讯问讯问 MsgBox MsgBox 数据非法,请重输!数据非法,请重输!,1 + 16 + 0 + 4096, ,1 + 16 + 0 + 4096, 警告警告 举举 例例江苏计算机等江苏计算机等级考试

22、级考试 Visual Basic 程序程序设计方法一方法一: 发布提示信息,无须用户呼应,在程序中作为独立发布提示信息,无须用户呼应,在程序中作为独立语句存在语句存在,不加括号;不加括号;例:例: MsgBox 非法数据!非法数据!, , 警告警告假设省略其中参数,假设省略其中参数,逗号不能省略逗号不能省略MsgBox函数的用法函数的用法方法二方法二: 需求用户呼应,和普通函数调用方法一样。需求用户呼应,和普通函数调用方法一样。例:例: Response=MsgBox(真的删除该项吗?真的删除该项吗?,4+48,提示信息提示信息) If Response=vbYes Then Else End

23、 If江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计4.3 4.3 分支构造与分支构造语句分支构造与分支构造语句4.3.1 If-Then-Else- End If语句语句4.3.2 Select- Case-End Select语句语句江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计1、 If-Then-Else语句语句格式格式1:If Then Else End If4.3.1 If-Then-Else- End If4.3.1 If-Then-Else- End If语句语句逻辑变量、关系表达逻辑变量、关系表达式、逻辑表达式式、逻

24、辑表达式B组语句组语句条件?条件?不成立不成立成成立立A组语句组语句 逻辑框图逻辑框图 : 功能功能 : 假设条件成立,那么执行假设条件成立,那么执行A A组语句,组语句,否那么执行否那么执行B B组语句。组语句。 阐明阐明 :IfIf和和End IfEnd If语句成对出现,缺一不可;语句成对出现,缺一不可;ElseElse和和B B组语句部分可以省略组语句部分可以省略, ,当条件不成立时当条件不成立时, ,直接执行直接执行End IfEnd If的的后继语句;后继语句;江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计Private Sub cmdCalculat

25、e_Click() Dim x as Single x=Val(text1.text) If x= 0 Then Text2.text = Str(Sqr(x) Else Text2.text = 数据小于数据小于0,错误!,错误! End IfEnd SubPrivate Sub cmdExit_Click() EndEnd SubPrivate Sub cmdClear_Click() Text1.Text = Text2.Text = Text1.SetFocusEnd Sub例:从键盘输入一个数,求它的平方根。例:从键盘输入一个数,求它的平方根。缩格输入缩格输入江苏计算机等江苏计算机等

26、级考试级考试 Visual Basic 程序程序设计例:计算分段函数例:计算分段函数y 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 SubcmdCalculate江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计 格式格式22:单行:单行If-Then-ElseIf-Then-Els

27、e语句语句 If If Then Then Else Else 2 阐明阐明 :1 1在在A A组语句和组语句和B B组语句都只需一个语句时,可组语句都只需一个语句时,可运用该格式;运用该格式;2 2End IfEnd 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)E

28、nd Sub江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计条件满足条件满足?块块1TrueFalse 格式格式33: If If Then Then 1 End If End If 格式格式4:4: If If Then Then 1 逻辑框图逻辑框图江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计2.2.嵌套的嵌套的IfIf构造构造 在在IfIf语句的句的“语句句块中包含另一个中包含另一个IfIf语句,句,叫做嵌套的叫做嵌套的IfIf构造。构造。If Then 外外层 If Then 内内层 Else If then Else 最内最

29、内层 End IfElse If Then End IfEnd If用于处理有多用于处理有多种情况的问题种情况的问题江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计开场开场边长边长0?能否能组成三角形能否能组成三角形计算计算输出输出出错信息出错信息终了终了是是否否是是否否例:输入三角形的三边例:输入三角形的三边a a、b b、c c,求三角形的面积,求三角形的面积P 64 例例4-1a0 and b0 and c0a+bc and b+ca and a+cb江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计Private Sub cmdCa

30、lculate_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) 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

31、 End IfEnd Sub计算公式:计算公式:其中:其中:a0 And b0 And c0江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计例:计算分段函数例:计算分段函数y y的值。的值。Private Sub cmdCalculate_Click() Dim x As Single,y As Single x=Val(Text1.Text) 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 Sub05江苏计算机等江苏

32、计算机等级考试级考试 Visual Basic 程序程序设计例:输入分数并判别等级分。计算规那么如下:例:输入分数并判别等级分。计算规那么如下: 分数分数 100-90 89-80 79-70 69-60 60 100-90 89-80 79-70 69-60 = 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

33、 End IfEnd Sub缺陷:缺陷: 嵌套层次过多,构造嵌套层次过多,构造不明晰,容易出错。不明晰,容易出错。从文本框取数据从文本框取数据向文本框放数据向文本框放数据江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计3 3、多分支、多分支If-Then-ElseIfIf-Then-ElseIf语句语句 格式格式 : If If Then1 Then A1 ElseIf ElseIf Then2 Then A2 ElseIf ElseIf Thenn Then An Else Else An+1 End If End If 功能功能 :- -对条件自上而下依次判别对

34、条件自上而下依次判别, ,假设条件假设条件i i成立成立, ,那么执行相应的那么执行相应的AiAi组语组语句;句;- -假设一切条件都不成立,那么执行假设一切条件都不成立,那么执行An+1An+1组语句。组语句。- -无论执行了哪个语句块,都将执行无论执行了哪个语句块,都将执行End IfEnd If的后继语句。的后继语句。条件条件1条件条件2假假假假真真真真语句块语句块1语句块语句块2条件条件 n真真假假语句块语句块n语句块语句块n+1江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计1 1该语句构造可以处理多分支问题,只需一个该语句构造可以处理多分支问题,只需一个

35、End End IfIf语句,语句,防止防止IfIf语句嵌套层数过多的情况;语句嵌套层数过多的情况;2 2ElseElse语句可以省略;语句可以省略;3 3该构造是一个单出口的构造,即只会执行一组语句,假设该构造是一个单出口的构造,即只会执行一组语句,假设条件中有两个成立,那么按语句的顺序执行前面的一组语句。条件中有两个成立,那么按语句的顺序执行前面的一组语句。说说 明明江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计Private Sub Text1_KeyPress(KeyAscii As Integer) Dim Score As Integer, Degre

36、e As String If KeyAscii = 13 Then Score = 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-ElseIfIf-Then-ElseIf语句改写:语句改写:90Score=80

37、?江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计格式格式:Select Case Case Case Case Case Else End Select 功能功能 : 计算测试表达式的值,自计算测试表达式的值,自上而下检查测试条件上而下检查测试条件; ; 假设表达式的值符合测试假设表达式的值符合测试 i i,那么执行相应的语句块,那么执行相应的语句块 i i; 假设一切条件都不成立,假设一切条件都不成立,那么执行语句块那么执行语句块n+1n+1。无论执。无论执行了哪个语句块,都将执行行了哪个语句块,都将执行End SelectEnd Select的后继语句。的后继

38、语句。4.3.2 4.3.2 多分支多分支Select-Case-End SelectSelect-Case-End Select语句语句江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计1 1测试表达式可以是算表达式可以是算术表达式或字符表达式;表达式或字符表达式;2 2测试条件有四种方式:条件有四种方式: 常量,如常量,如2 2、3 3、“A“A等等 闭区区间,如,如3 To 783 To 78、“B“B To“H To“H等等 开区开区间,如,如Is20Is20、 Is“P Is“P等等 以上三种方式的以上三种方式的组合,以逗号合,以逗号间隔,条件隔,条件组合是

39、或的关系,合是或的关系,不能表示与的关系不能表示与的关系 3 3Case ElseCase Else语句部分可以省略;句部分可以省略;4 4以以End SelectEnd Select语句句终了;了;5 5该构造是一个构造是一个单出口的构造,即只会出口的构造,即只会执行一个行一个语句句块,假,假设条件中有两个成立,那么按条件中有两个成立,那么按语句的句的顺序序执行前面的行前面的语句句块。说说 明明江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计例:将上例用例:将上例用Select CaseSelect Case语句改写。语句改写。Private Sub Text1_

40、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 Degree = E End Select Text2.Text = Degree End IfEnd Sub江

41、苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计练习:键盘输入三个数,将它们从大到小依练习:键盘输入三个数,将它们从大到小依次陈列输出。次陈列输出。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 b Then temp = a a = b b = temp E

42、nd If If a c Then Print a, b, c Else Print a, c, b End IfEnd Sub保证保证a为为a,b两数中的大值两数中的大值江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计分支构造的适用情况分支构造的适用情况l验证用户输入数据的合法性验证用户输入数据的合法性l分段函数计算分段函数计算l用于区分等级用于区分等级l其他须根据条件不同执行不同操作的情况其他须根据条件不同执行不同操作的情况江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计4.4 4.4 循环构造与循环构造语句循环构造与循环构造语句4.

43、4.1 Do-loop循环构造语句条件循环循环构造语句条件循环4.4.2 For-Next 循循环环构构造造语语句句计计数数循循环环4.4.3 循环嵌套循环嵌套江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计 由一定的条件控制,反复由一定的条件控制,反复执行某个程序段的程序构造称行某个程序段的程序构造称为循循环构造。构造。 用于用于处理一些需求反复理一些需求反复进展某些操作的展某些操作的问题。 循循环要素:要素: & & 循循环控制条件控制条件 条件或条件或逻辑表达式表达式 & & 循循环体体 反复反复执行的行的语句句块 & & 为防止死循防止死循环,在循,在循环体

44、内必需求有体内必需求有对应语句,使得循句,使得循环控控制条件会不制条件会不满足,足,终了循了循环运运转。根本概念根本概念江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计例:在窗体上打印例:在窗体上打印10行行“Hello。 循循环控制条件控制条件 能否已打印了能否已打印了10行行 循循环体体在窗体上打印一行在窗体上打印一行“Hello 提示:要提示:要设立一个立一个变量,用于量,用于记录已打印的已打印的行数,每打印一行,行数,每打印一行,计数数变量要加量要加1,循,循环控制控制条件即条件即计数数变量小于等于量小于等于10江苏计算机等江苏计算机等级考试级考试 Visu

45、al Basic 程序程序设计一、一、“当型循当型循环条件成立条件成立时,执行循行循环体体条件?条件?循环体循环体成立成立循环的后继语句循环的后继语句不成立不成立条件?条件?循环体循环体不成立不成立循环的后继语句循环的后继语句成立成立图图2 2:先执行一次循环体,然后再判别条件,决议能否继续执行循:先执行一次循环体,然后再判别条件,决议能否继续执行循环,此构造至少执行一次循环体。环,此构造至少执行一次循环体。图图 1图图 2图图1 1:先判别条件,当条件成立那么执行循环体,否那么执行循环构造:先判别条件,当条件成立那么执行循环体,否那么执行循环构造的后续语句。的后续语句。江苏计算机等江苏计算机

46、等级考试级考试 Visual Basic 程序程序设计二、二、“直到型循直到型循环条件不成立条件不成立时,执行循行循环体体条件?条件?循环体循环体不成立不成立循环的后继语句循环的后继语句成立成立条件?条件?循环体循环体成立成立循环的后继语句循环的后继语句不成立不成立图图3 3:先判别条件,条件不成立那么执行循环体,直到条件不成立,:先判别条件,条件不成立那么执行循环体,直到条件不成立,执行循环构造的后续语句。执行循环构造的后续语句。图图 3图图 4图图4 4:先执行一次循环体,再判别条件,决议能否继续执行循环。:先执行一次循环体,再判别条件,决议能否继续执行循环。江苏计算机等江苏计算机等级考试

47、级考试 Visual Basic 程序程序设计 4.4.1 Do-Loop 4.4.1 Do-Loop 循环构造语句循环构造语句格式一格式一 Do While Do While Loop Loop条件?条件?循环体循环体成立成立Loop的后继语句的后继语句不成立不成立执行步骤:执行步骤:1 判别条件能否成立。假设条件判别条件能否成立。假设条件不成立,转向第不成立,转向第4步步2 执行循环体;执行循环体;3 转向执行第转向执行第1步;步;4 执行执行Loop语句的后继语句。语句的后继语句。当当型型循循环江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计Private S

48、ub Form_click()Private Sub Form_click() Dim i as integer Dim i as integer i=0 i=0 Do While i10 Do While i10 print “hello print “hello i=i+1 i=i+1 Loop LoopEnd SubEnd Sub上例的实现:上例的实现:缩格缩格江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计例例 求求S=1+2+3+4+100Private Sub Form_click() Dim n as Integer,s as Long n=1 s=0

49、 Do While n=100 s=s+n n=n+1 Loop Print “1+2+3+100=;sEnd Sub实现累加实现累加江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计格式二:格式二: Do Loop While 条件?条件?循环体循环体不成立不成立Loop的后继语句的后继语句成立成立执行步骤:执行步骤:1 执行循环体;执行循环体; 2 判别条件能否成立。假设条判别条件能否成立。假设条件成立,转向第件成立,转向第 1 步步3 条件不成立,那么终了循环,条件不成立,那么终了循环,执行执行Loop语句的后继语句。语句的后继语句。当当型型循循环江苏计算机等江

50、苏计算机等级考试级考试 Visual Basic 程序程序设计格式三格式三 Do Until Loop条件?条件?循环体循环体不成立不成立Loop的后继语句的后继语句成立成立执行步骤:执行步骤:1 判别条件能否成立。假设条判别条件能否成立。假设条件成立,转向第件成立,转向第4步步2 执行循环体;执行循环体;3 转向执行第转向执行第 1 步;步;4 执行执行Loop语句的后继语句。语句的后继语句。直直到到型型循循环江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计格式四格式四 Do Loop Until 条件?条件?循环体循环体不成立不成立Loop的后继语句的后继语句成

51、立成立执行步骤:执行步骤:1 执行循环体;执行循环体; 2 判别条件能否成立。假设条判别条件能否成立。假设条件不成立,转向第件不成立,转向第 1 步,假设步,假设条件成立,那么执行条件成立,那么执行 第第3步步 3 执行执行Loop语句的后继语句。语句的后继语句。直直到到型型循循环江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计1 1While While 短短语总是在条件成立是在条件成立时,继续进展循展循环;条件;条件不成立不成立时,终了循了循环。因此用于。因此用于“当型循当型循环;2 2Until Until 短短语总是在条件不成立是在条件不成立时,执行循行循环

52、体;条件体;条件成立成立时,那么,那么终了循了循环。因此称。因此称为“直到型循直到型循环;3 3上述两条短上述两条短语是可以相互是可以相互转换的。的。总总 结结 Do While i=10 print “hello i=i+1 Loop江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计格式五特殊方式:格式五特殊方式: Do Loop执行行过程:反复程:反复执行循行循环体。体。该构造称构造称为“死循死循环“,在循,在循环体内体内必需必需经过 Exit Do 语句句强迫退出循迫退出循环体。体。Exit Do语句普通与句普通与If-then语句句结合合运用,即当运用,即当满

53、足某一条件足某一条件时,才,才强迫退出循迫退出循环。 If Then Exit Do循环体循环体Loop后续语句后续语句 Do print “hello i=i+1 If i=10 then Exit Do Loop江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计1 1DoDo和和LoopLoop为循环构造关键字,必需成对出现,缺一不可;为循环构造关键字,必需成对出现,缺一不可;2 2循环体为可执行语句组成循环体为可执行语句组成, ,可以嵌套分支构造和循环构造;可以嵌套分支构造和循环构造;3 3语句语句 Exit Do Exit Do 用于无条件退出循环,可在恣意用

54、于无条件退出循环,可在恣意Do-LoopDo-Loop语语句构造的循环体中出现。句构造的循环体中出现。4 4运用循环构造,一定要防止死循环的出现。运用循环构造,一定要防止死循环的出现。 Do-Loop Do-Loop语句运用阐明语句运用阐明江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计 算法分析算法分析 :求最大公约数的常用方法是:求最大公约数的常用方法是 辗转相除法。辗转相除法。例:求两个数的最大公约数。例:求两个数的最大公约数。P 68 例例4-31810M N R8108 2 8 2 0 2 0R=8R=2R=0M=2即最大公约数即最大公约数江苏计算机等江苏

55、计算机等级考试级考试 Visual Basic 程序程序设计 在该例中,我们运用了三个变量,分别表示被除数在该例中,我们运用了三个变量,分别表示被除数m m、除数除数n n及余数及余数r r。 Do r=m Mod n m=n n=rLoop Until r=0最大公约数是最大公约数是 ?江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计 由于输入的数据由于输入的数据M M和和N N要求是自然数,在程序中应参与对要求是自然数,在程序中应参与对数据的合法性进展检验的部分;数据的合法性进展检验的部分; 思索到程序的运用范围,数据类型可选用长整型。思索到程序的运用范围,数据

56、类型可选用长整型。 问题分析及界面设计问题分析及界面设计江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计Private Sub Command1_Click() Dim m As Long, n As Long, r As Long m = Val(Text1.Text) 取数据取数据M n = Val(Text2.Text) 取数据取数据N If m Int(m) Or m 1 Or n Int(n) Or n 1 Then Text3.Text = 数据数据错误错误! Else Do 求最大公求最大公约约数数 r = m Mod n m = n n = r Lo

57、op Until r = 0 Text3.Text = CStr(m) 输输出最大公出最大公约约数数 End If End Sub Private Sub Command2_Click() Text1.Text = Text2.Text = Text3.Text = End Sub Private Sub Command3_Click() End End Sub检验数据检验数据合法性合法性Mod 前后加空格前后加空格江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计例:将十进制数转换成二进制。例:将十进制数转换成二进制。 算法分析算法分析 :十进制向二进制转换,:十进

58、制向二进制转换, 采取的是除采取的是除2 2取余法。取余法。4522221112122252101001高位高位低位低位4510=1011012处理理这类问题必需思索的是如下几点:必需思索的是如下几点:1 1需求反复运需求反复运转的操作的操作除除2 2取余取余2 2终止循止循环的条件的条件商商为0 0a=0?a Mod 2a=a2F终了循环终了循环T江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计留意:留意:在循在循环控制条件中必需出控制条件中必需出现变量,且量,且该变量在循量在循环体中一定体中一定要改要改动值,否那么会呵斥,否那么会呵斥“死循死循环,即无休止的循,

59、即无休止的循环。假假设在运在运转程序程序过程假程假设出出现“死循死循环,用,用Ctrl+BreakCtrl+Break可以可以强迫迫终止程序的止程序的执行。行。Private Sub Command1_Click() Dim a As Integer, r as Integer,s As String a = Val(Text1.Text) Do While a 0 r=a Mod 2 a = a 2 Loop Text2.Text = sEnd Subs = Cstr(r) & s将余数逆序输出,即将最新获得的余数,将余数逆序输出,即将最新获得的余数,衔接在已获得的余数串的前面衔接在已获得的

60、余数串的前面江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计练习练习1 1:计算圆周率的近似值。计算公式如下:计算圆周率的近似值。计算公式如下:计算准确到通项的值小于计算准确到通项的值小于10-710-7。 提示提示 :s=s+s=s+ 可实现累加。可实现累加。处理求累加和的问题,关键留意两点:处理求累加和的问题,关键留意两点:1 1通项的表示;通项的表示; 2 2循环的终了条件;循环的终了条件;江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计Private Sub Form_Click() Dim Pi As Single, s As

61、Single, r As Single Dim n As Integer n = 1: s = 0s为累加器累加器 Do r = 1 / (2 * n - 1) 2求通求通项 s = s + r n = n + 1 Loop While r 1e-7 Pi = Sqr(8 * s) Print PiEnd Sub江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计计算准确到通项的绝对值小于计算准确到通项的绝对值小于10-410-4。练习练习2 2:假设公式改为:假设公式改为江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计Private Sub

62、 Form_Click() Dim Pi As Single, s As Single, r As Double Dim n As Integer n = 1: s = 0 Do r = (-1) (n + 1) * 1 / (2 * n - 1)求通求通项 s = s + r n = n + 1 Loop While Abs(r) 0.0001 Pi = 4 * s Print PiEnd Sub江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计 格式格式 : For For = To To Step Step 循环体循环体 Next Next 功能功能 :由计数变

63、量控制,有限次地执行循环体。:由计数变量控制,有限次地执行循环体。4.4.2 4.4.2 计数循环计数循环For-NextFor-Next循环循环 步骤步骤 :1. 1. 计算初值、终值和步长值,将初值计算初值、终值和步长值,将初值赋予计数变量;赋予计数变量;2. 2. 比较计数变量和终值,假设计数变比较计数变量和终值,假设计数变量大于终值,终了循环;量大于终值,终了循环;3. 3. 计数变量小于终值,执行循环体;计数变量小于终值,执行循环体;4. 4. 计数变量计数变量= =计数变量计数变量+ +步长值步长值5. 5. 转向第转向第2 2步。步。计数变量计数变量=初值初值计数变量计数变量终值

64、终值是是循环体循环体计数变量计数变量=计数变量计数变量+步长值步长值否否计算初值,终值,步长计算初值,终值,步长江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计v For - Next For - Next是关键字,成对出现,缺一不可;是关键字,成对出现,缺一不可;v 循环体由可执行语句组成,可嵌套分支构造和循环构造;循环体由可执行语句组成,可嵌套分支构造和循环构造;v 计数变量应为整型或单精度型,初值、终值和步长值为相应计数变量应为整型或单精度型,初值、终值和步长值为相应类型的表达式;类型的表达式;v 步长值可以为正,也可以为负,省略时默许步长值为步长值可以为正,

65、也可以为负,省略时默许步长值为1 1;v 循环次数为:循环次数为:Int(Int(终值终值- -初值初值/ /步长值步长值+1+1v Exit For Exit For语句可以出如今循环体中,用于无条件退出循环语句可以出如今循环体中,用于无条件退出循环 说说 明明江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计Private Sub Form_Click() For i = 1 To 10 Step 2 Print i; Next i Print i=; iEnd Sub 执执行行本本程程序序,窗窗体体上上将将显显示示:1 1 3 3 5 5 7 7 9 9 i=1

66、1i=11。它它阐明循环一共执行了阐明循环一共执行了5 5次,退出循环时,次,退出循环时,i i的取值为的取值为1111。例:请写出窗体上打印的内容,以及循环执行的次数。例:请写出窗体上打印的内容,以及循环执行的次数。P 70江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计 循环控制变量主要是用于控制循环的执行次数循环控制变量主要是用于控制循环的执行次数, , 但我们经过但我们经过合理的设置合理的设置, ,可以在循环体中巧妙加以利用可以在循环体中巧妙加以利用, ,以提高程序的效率以提高程序的效率. . 分析分析 :这个式子有个式子有现成的求和公式,在成的求和公式,在

67、这里主要借助里主要借助该例表达一例表达一下在循下在循环体中体中计数数变量的运用。量的运用。 设计数数变量量为i i,初,初值为1 1,终值为100100,步,步长值为1 1,可省略。,可省略。i i从从1 1变化到化到2 2、3 3、4 4、100100,正好和式子中的通,正好和式子中的通项变化一致。化一致。S=0For i=1 To 100 S=S+iNext iS=0For i=100 To 1 Step -1 S=S+iNext i例:求例:求S=1+2+3+100S=1+2+3+100。S=0:n=0For i=1 To 100 n=n+1 S=S+nNext i江苏计算机等江苏计算机

68、等级考试级考试 Visual Basic 程序程序设计写出以下程序的运转结果写出以下程序的运转结果Private Sub Form_Click() Dim p As Integer, i As Integer, n As Integer p = 2: n = 20 For i = 1 To n Step p p = p + 2 n = n - 3 i = i + 1 If p = 10 Then Exit For Next i Print i, p, nEnd Sub江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计分析分析:这类问题没有什么算法,只需将一切情况列举然

69、后检查得:这类问题没有什么算法,只需将一切情况列举然后检查得分情况,直到发现答案为止。设该生共答对分情况,直到发现答案为止。设该生共答对i道题,答错道题,答错26-i)道题,道题,假设假设 i*8-(26-i)*5=0那么那么i就是答案。就是答案。i的变化范围是的变化范围是1-26。一旦找到答案,可以立刻终了。一旦找到答案,可以立刻终了循环。循环。穷举法要点:穷举法要点:-经过循环语句,经过循环语句,遍历一切能够的遍历一切能够的情况;情况;-在循环体内经在循环体内经过条件语句,将过条件语句,将符合条件的情况符合条件的情况找出来。找出来。例:某试卷有例:某试卷有26个问题,答对一题得个问题,答对

70、一题得8分,答错一题扣分,答错一题扣5分,某学生分,某学生回答了全部回答了全部26个问题,总分为个问题,总分为0分,问他答对几道题,答错几道题。分,问他答对几道题,答错几道题。Private Sub Form_Click() Dim i As Integer For i = 1 To 26 If i * 8 - (26 - i) * 5 = 0 Then Exit For Next i Print 答答对; i; 道道, 答答错; 26 - i; 道道End Sub条件关条件关系表达式系表达式江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计例例4_5 4_5 从字母

71、数字组成的字符串中找出一切的大写从字母数字组成的字符串中找出一切的大写字母并逆序输出字母并逆序输出江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计一、界面一、界面设计如上如上图二、算法二、算法设计 由由题意,所需意,所需执行的操作行的操作应该是:依次判是:依次判别字符字符串中的每一个字符能否是大写字母,假串中的每一个字符能否是大写字母,假设是,那么取是,那么取出放入出放入结果字符串中。果字符串中。 思索思索经过在一个循在一个循环构造里面嵌套一个判构造里面嵌套一个判别构造构造实现,因反复,因反复执行判行判别的次数,即字符串的的次数,即字符串的长度度len(s)len(

72、s)知,那么循知,那么循环构造用构造用FORFOR语句句实现; ; 判判别一个字符能否是大写字母,可先将一个字符能否是大写字母,可先将单个字符个字符从字符串中取出从字符串中取出Mid(s,i,1)Mid(s,i,1),并将,并将该字符直接与字符直接与“A“A、Z Z字符字符进展比展比较,应大于等于大于等于“A“A ,并同,并同时小于等于小于等于Z Zx=“Ax=“A AND x=“Z AND x= A And x = Z Then t = x & t End If Next i留意与书上代码的比较留意与书上代码的比较江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计

73、分析分析 :素数:除了:素数:除了1 1和它本身,不能被其它数整除的数。和它本身,不能被其它数整除的数。 算法思索用穷举法。算法思索用穷举法。 程序程序 : For i = 2 To x - 1 If x Mod i = 0 Then Exit For Next i例:判别一个数能否为素数例:判别一个数能否为素数. .If Then Print x; 是素数!是素数!Else Print x; 不是素数!不是素数!End Ifi = x 错误程序错误程序 For i=2 To x-1For i=2 To x-1 If x Mod i=0 Then If x Mod i=0 Then Print

74、 x; Print x;不是素数不是素数 Else Else Print x=; Print x=;是素数是素数 End If End IfNext iNext i其实不用整除到其实不用整除到X-1,整除到,整除到SqrX,即可判别,即可判别江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计格式:格式:For For Do Do For Do Do For Next Loop Loop Next Next Next Loop Loop 4.4.3 4.4.3 循环的嵌套循环的嵌套 所谓循环的嵌套,是指在循环构造中所谓循环的嵌套,是指在循环构造中包含另一个循环构造。条件

75、循环和计数循包含另一个循环构造。条件循环和计数循环可以相互嵌套。环可以相互嵌套。江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计例:在窗体上按行依次打印例:在窗体上按行依次打印1 1到到1010,每个数字打印,每个数字打印1010遍。遍。 分析分析 :这是一个典型的需求用二重循环构造的例子,外层用于控:这是一个典型的需求用二重循环构造的例子,外层用于控制打印数字的个数,内层控制每个数字打印的遍数。制打印数字的个数,内层控制每个数字打印的遍数。Private Sub Form_cliclk()Private Sub Form_cliclk() Dim i as int

76、eger,j as integer Dim i as integer,j as integer For i=1 to 10 For i=1 to 10 For j=1 to 10 For j=1 to 10 Print i; Print i; Next j Next j Print Print Next I Next IEnd SubEnd Sub问题问题: 在执行整个程序中在执行整个程序中 print i 语句共执行了多少次?语句共执行了多少次?打印打印10个数字个数字每个数字打印每个数字打印10遍遍换行换行江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计1 1内

77、层循环必需完全包含在外层循环之中,不能交叉;内层循环必需完全包含在外层循环之中,不能交叉;2 2内层循环中还可以嵌套循环构造,但建议不要运用多层循内层循环中还可以嵌套循环构造,但建议不要运用多层循环,处理普通问题最多需求三重循环;环,处理普通问题最多需求三重循环;3 3在多重在多重DO-LOOPDO-LOOP循环中,假设有循环中,假设有EXIT DOEXIT DO语句,那么只会强语句,那么只会强迫退出该语句所在的循环,并执行迫退出该语句所在的循环,并执行LOOPLOOP的后续语句,并不会退的后续语句,并不会退出一切的循环。出一切的循环。4 4在多重在多重FOR-NEXTFOR-NEXT循环中,

78、假设有循环中,假设有EXIT FOREXIT FOR语句,那么只会语句,那么只会强迫退出该语句所在的循环,并执行强迫退出该语句所在的循环,并执行NEXTNEXT的后续语句,并不会的后续语句,并不会退出一切的循环。退出一切的循环。说说 明明江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计4.5 4.5 程序例如程序例如江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计例:产生例:产生10个个2050随机整数,打印在窗体上,随机整数,打印在窗体上,并指出最大值和最小值。并指出最大值和最小值。 分析分析 :1. 1. 要求得到要求得到1010个随

79、机数,用个随机数,用记数循数循环FORFOR语句句实现。2. 2. 产生随机整数的方法是生随机整数的方法是 x = Int x = Int上界上界 - -下界下界+1+1*Rnd*Rnd+ +下界下界 必需和必需和RandomizeRandomize语句配合运用。句配合运用。3. 3. 要求出最大要求出最大值和最小和最小值,那么每,那么每产生一个随机数,即与知生一个随机数,即与知的最大数、最小数比的最大数、最小数比较,假,假设它大于知的最大数,那么它是新它大于知的最大数,那么它是新的最大数;假的最大数;假设它小于知的最小数,那么它是新的最小数。它小于知的最小数,那么它是新的最小数。江苏计算机等

80、江苏计算机等级考试级考试 Visual Basic 程序程序设计Private Sub Form_Click()Private Sub Form_Click() Dim i As Integer, x As Integer, Dim i As Integer, x As Integer, Dim max As Integer, min As Integer Dim max As Integer, min As Integer For i = 1 To 10 For i = 1 To 10 x = Int(Rnd * 31) + 20 x = Int(Rnd * 31) + 20 Print x

81、; Print x; Next I Next I Print Print Print max=; max Print max=; max Print min=; min Print min=; minEnd SubEnd Submax = 0: min = 51If max x Then min = x江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计Private Sub Form_Click() Dim S As Long, i As Integer Dim j As Integer, fact As Long For i = 1 To 10 fact = 1 F

82、or j = 1 To i fact = fact * j Next j S = S + fact Next i Print s=; SEnd SubPrivate Sub Form_Click() Dim S As Long, i As Integer Dim fact As Long fact = 1 For i = 1 To 10 fact = fact * i S = S + fact Next i Print s=; SEnd Sub问题:这两段程序的功能分别是什么?问题:这两段程序的功能分别是什么?请留意多重循环中赋初值语句的位置。请留意多重循环中赋初值语句的位置。江苏计算机等江苏

83、计算机等级考试级考试 Visual Basic 程序程序设计 分析分析 :设要解的方程要解的方程为f(x)=0,f(x)=0,并知一个不并知一个不够准确的初始解准确的初始解X0X0,那么有牛,那么有牛顿迭代公式:迭代公式:Xn+1=Xn-f(Xn)/f(Xn) n=0Xn+1=Xn-f(Xn)/f(Xn) n=0,1 1,2 2,利用迭代公式,依次求得利用迭代公式,依次求得X1X1,X2X2,X3X3, , 当当| Xn+1-Xn | | Xn+1-Xn | 时, Xn+1 Xn+1即即为所求得根。所求得根。3 3 留意此算法的三要素:迭代公式、初留意此算法的三要素:迭代公式、初值、和迭代精度

84、、和迭代精度终了条了条件件. .例例4-9 用牛顿迭代法求方程用牛顿迭代法求方程xex-1=0在在X0=0.5附近的一附近的一 个根,要求准确到个根,要求准确到10-7。江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计Private Sub Form_Click() Dim x as Single,x0 as Single x=0.5 Do x0=x x=x0-(x0*exp(x0)-1)/(exp(x0)*(x0+1) Loop Until Abs(x-x0)=1e-7 Print xEnd Sub江苏计算机等江苏计算机等级考试级考试 Visual Basic 程

85、序程序设计例例4_10 4_10 求反码求反码江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计Private Sub Command1_Click() Dim Source As String, i As Integer Source = Text1.Text If Mid(Source, 1, 1) 1 Then Text2 .Text= 正数没有反码正数没有反码 Else Text2 = Source End IfEnd Sub For i = 2 To Len(Source) If Mid(Source, i, 1) = 1 Then Mid(Source,

86、i, 1) = 0 Else Mid(Source, i, 1) = 1 End If Next iMid函数的特殊功能用指定的字符交换字符串中指定位置的内容函数的特殊功能用指定的字符交换字符串中指定位置的内容江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计练练 习习1随机随机产生生10个个201000之之间的整数,分的整数,分别 求出奇数偶数之和;求出奇数偶数之和;2求出求出1000以内的完数;完数即以内的完数;完数即该数是其一切数是其一切 因子之和,如:因子之和,如:6=1+2+3;江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计Pr

87、ivate Sub Form_Click()Dim n As Integer, i As Integer Dim ou As Double, ji As Double Print 该组随机数为:该组随机数为: Randomize For i = 1 To 10 n = Int(Rnd * (1000 - 20 + 1) )+ 20 Print n; If n Mod 2 = 0 Then ou = ou + n Else ji = ji + n End If Next i Print Print 奇数之和奇数之和=; ji Print 偶数之和偶数之和=; ouEnd Sub江苏计算机等江苏计

88、算机等级考试级考试 Visual Basic 程序程序设计例:找出例:找出10001000以内的一切完数。所谓完数,是指它的一切的质以内的一切完数。所谓完数,是指它的一切的质因子之和等于它本身的数,如因子之和等于它本身的数,如6=1+2+36=1+2+3。l 解题思绪:解题思绪:l 第一步:找出确定一个数是完数的方法;第一步:找出确定一个数是完数的方法;l 第二步:从第二步:从1 1到到10001000依次判别。依次判别。l 算法实现算法实现: : 两层循环:两层循环:l 内内层层循循环环用用于于找找出出某某数数 m m 的的一一切切因因子子并并相相加加求求和和,并并在在循循环环终了后根据因子

89、和能否与该数相等来判别该数能否是完数;终了后根据因子和能否与该数相等来判别该数能否是完数;l 外层循环那么用于穷举一切外层循环那么用于穷举一切10001000以内的整数。以内的整数。江苏计算机等江苏计算机等级考试级考试 Visual Basic 程序程序设计Private Sub Form_Click() Dim i As Integer, f As Integer, s As Integer For i = 1 To 1000 s = 0 For j = 1 To i - 1 If i Mod j = 0 Then s = s + j Next j If s = i Then Print i Next iEnd Sub留意留意s赋初值的位置赋初值的位置

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号