第四章 算法基础及VB的基本语句_第1页
第四章 算法基础及VB的基本语句_第2页
第四章 算法基础及VB的基本语句_第3页
第四章 算法基础及VB的基本语句_第4页
第四章 算法基础及VB的基本语句_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

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

文档简介

1、江苏省计算机等级考试 visual basic 程序设计程序设计第四章第四章 算法基础及算法基础及vbvb的基本语句的基本语句江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计21 1、了解结构化程序设计的基本概念、了解结构化程序设计的基本概念2 2、掌握、掌握vb vb 程序设计中的常用语句程序设计中的常用语句3 3、掌握顺序、选择、和循环结构、掌握顺序、选择、和循环结构及相应的语句及相应的语句教学要求教学要求江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计3江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计

2、程序设计44.1 4.1 算法及程序设计基础算法及程序设计基础:l有人认为:有人认为: 对数据的描述对数据的描述:指定所用数据的类型,作用域和数据的:指定所用数据的类型,作用域和数据的 组织形式,即数据结构(组织形式,即数据结构(data structure)。)。 对操作的描述对操作的描述:即操作步骤,也就是算法(:即操作步骤,也就是算法(algorithm)。)。数据结构数据结构+算法算法=程序程序程序程序=算法算法+数据结构数据结构+程序设计方法程序设计方法+语言工具和环境语言工具和环境江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计51 1、算法的概念、

3、算法的概念l算法算法即解决某个问题或处理某件事的方法和步骤;即解决某个问题或处理某件事的方法和步骤;“采用什么采用什么结构,使用什么语句以及如何安排这些语句结构,使用什么语句以及如何安排这些语句”。l算法分类:算法分类:数值计算算法数值计算算法非数值计算算法非数值计算算法l算法算法优劣优劣: 正确性,效率,占用系统资源,便于理解,易于调试等。正确性,效率,占用系统资源,便于理解,易于调试等。江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计61810m n r8108 2 8 2 0 2 0r=8r=2r=0m=2即即最大公约数最大公约数求最大公约数求最大公约数

4、题目题目 :求两个自然数的最大公约数:求两个自然数的最大公约数 分析分析 :求最大公约数的常用方法是辗转相除法:求最大公约数的常用方法是辗转相除法( (欧几里德算法欧几里德算法) )。2 2、算法示例、算法示例江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计7 算法描述算法描述 :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,则重复执行,则重复执

5、行s2,s3,s4,s2,s3,s4,否则转至否则转至s6s6s6 s6 输出输出m m,m m即为即为m m,n n的最大公约数。的最大公约数。江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计83 3、算法的特征、算法的特征2 确定性确定性2 可行性可行性2 有穷性有穷性2 输入性输入性2 输出性输出性江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计94 4、算法的描述、算法的描述 l程序流程图程序流程图求最大公约数求最大公约数江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计10程序编码程序编码实

6、现算法实现算法l算法仅提供解题思路,计算机不可直接执行。算法仅提供解题思路,计算机不可直接执行。l用用某一程序设计语言所提供的语言成分,根据该语言的特某一程序设计语言所提供的语言成分,根据该语言的特点,并利用该语言的各种工具和手段,遵照规定的语法规点,并利用该语言的各种工具和手段,遵照规定的语法规则去实现算法,得到原程序代码,计算机可识别并执行。则去实现算法,得到原程序代码,计算机可识别并执行。江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计115.5.基本算法结构基本算法结构1 1). . 顺序结构顺序结构语句语句1语句语句2语句块语句块结构化程序设计结构化程

7、序设计江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计12l2)选择结构)选择结构条件满足?块1块2truefalse结构化程序设计结构化程序设计江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计13l3)循环结构)循环结构块块truefalse条件条件结构化程序设计结构化程序设计江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计14三种基本结构的共同特点三种基本结构的共同特点l只有单一入口和单一出口;只有单一入口和单一出口;l结构中的每一部分都有被执行的可能;结构中的每一部分都有被执行的可能;l结构内

8、不应出现永不终止的死循环。结构内不应出现永不终止的死循环。江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计154.2 4.2 赋值语句及赋值语句及inputboxinputbox、msgboxmsgbox函数函数4.2.1 赋值语句赋值语句4.2.2 inputboxinputbox函数函数4.2.3 msgboxmsgbox函数函数江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计164.2.1 赋值语句赋值语句 格式格式 : = 功能功能 :先计算表达式的值,再将该值赋予左端的变量。:先计算表达式的值,再将该值赋予左端的变量。

9、说明说明 : - -赋值号左端不仅可以是变量名,还可以是对象的属性;赋值号左端不仅可以是变量名,还可以是对象的属性; - -表达式的类型和变量的类型要一致表达式的类型和变量的类型要一致 - -赋值语句是按语句出现的先后顺序执行的(顺序结构)赋值语句是按语句出现的先后顺序执行的(顺序结构) 举例举例 : str1 = nice to meet you number% = 72 lable1.caption = filename is: text.fontsize = 12 改变字号改变字号江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计17使用下面的方法可以获取一

10、个对象的属性值:使用下面的方法可以获取一个对象的属性值:var = object . property 例如:例如:label1.caption=text1.text 式中,式中,varvar是变量名、是变量名、objectobject是对象名、是对象名、propertyproperty是该对是该对象的某个属性名。象的某个属性名。特别注意:特别注意:属性也存在数据类型,所以在获取对象的属性值时,属性也存在数据类型,所以在获取对象的属性值时,最好使用具有相同数据类型的变量。最好使用具有相同数据类型的变量。 说明说明 江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计

11、18注意:赋值号(注意:赋值号(= =)与比较运算符()与比较运算符(= =)不同)不同v 赋值是独立的一条语句;赋值是独立的一条语句; 由运算符(由运算符(= =)连结两个操作数的关系表达式是)连结两个操作数的关系表达式是语句的一部语句的一部分分, , 不可单独存在不可单独存在v 比较运算符不会改变操作数的值;比较运算符不会改变操作数的值; 赋值语句会,改变赋值号左边的量,所以必须是可以被赋赋值语句会,改变赋值号左边的量,所以必须是可以被赋值的变量或属性值的变量或属性dim x as integer, y as integer, z as booleanx=3 : y=4 : y=xz =

12、x=yprint x, y, z江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计19private 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 程序设计程序设计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题目说明题目说明单击窗体程序执行结果为:单击窗体程序

14、执行结果为: 10 210 2 2 10 2 10 注意注意 变量变量a a和和b b为两个不定值的变为两个不定值的变量,因此不能直接用量,因此不能直接用 a=2 : b=10a=2 : b=10语句来解决这个问题。语句来解决这个问题。一旦利用赋值语句给变量赋一旦利用赋值语句给变量赋新值,会覆盖原值,所以不能新值,会覆盖原值,所以不能直接用直接用 a=b : b=aa=b : b=a语句来解决这个问题。语句来解决这个问题。江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计21例:求一元一次方程例:求一元一次方程x+5=0 x+5=0的解。的解。private su

15、b 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 程序设计程序设计224.2.2 inputbox4.2.2 inputbox函数函数 格式格式 :inputbox$(,) 功能功能 : 弹出对话框,用户输入数据后回车或单击弹出对话框,用户输入数据后回车或单击“确定确定”按钮后,按钮后,将输入内容赋值给相应的变量;按将输入内容赋值给相应的变量;按escesc键或单击键或单击“取消取消”按钮,按钮,返回返回空串空串。江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计23 说明说明 (1 1)promptprompt:必选项。对话框中的提示信息。:必选项。对话框中的提示信息。(2 2)t

17、itletitle:可选。对话框的标题。省略则为应用程序名。:可选。对话框的标题。省略则为应用程序名。(3 3)defaultdefault:可选。显示在用户编辑框中的缺省值,省略为空。:可选。显示在用户编辑框中的缺省值,省略为空。(4 4)x,y:x,y:可选。指定对话框的显示位置,省略则居中。可选。指定对话框的显示位置,省略则居中。例:例:i = inputbox(“i = inputbox(“输入数组元素输入数组元素”+chr(10)+“+chr(10)+“第一个元素为第一个元素为:”:”, 程序示例程序示例, , 100100) )缺省值缺省值标题标题提示字符串提示字符串江苏计算机等江

18、苏计算机等级考试级考试 visual basic 程序设计程序设计24例:用例:用inputbox函数输入出生日期,计算年龄。函数输入出生日期,计算年龄。option explicitoption explicitprivate sub form_click()private sub form_click() dim birthday dim birthday as date, age as integer as date, age as integer birthday birthday = inputbox( = inputbox(输入出生日期输入出生日期, , 计算年龄计算年龄) age

19、 = year(date) - year(birthday age = year(date) - year(birthday) ) print print 你今年:你今年:; age; ; age; 岁岁 end subend sub江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计25如果赋值号左端的变量为数值型或日期型等非字符型变量,如果赋值号左端的变量为数值型或日期型等非字符型变量,输入字符数据输入字符数据 单击单击“取消取消”按钮按钮 不输入直接按回车不输入直接按回车键,则系统都会提示出错:键,则系统都会提示出错:dim x as integerx = i

20、nputbox(输入数组元素输入数组元素 + chr(10) + 第一个元素为:第一个元素为:, 示例示例, 10, 100, 100) 注意注意 江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计264.2.3 msgbox4.2.3 msgbox函数函数格式格式:msgbox(prompt,button,title,helpfile,context) 功能功能 :向用户发布提示信息,并要求用户作出必要的响应。:向用户发布提示信息,并要求用户作出必要的响应。 说明说明 : (1 1)prompt:prompt:必选项。字符串表达式,对话框中的提示信息。必选项。字

21、符串表达式,对话框中的提示信息。 (2 2)button:button:指定显示按钮的数目及形式,使用的图标样式,指定显示按钮的数目及形式,使用的图标样式,这是一个由这是一个由4 4个数值常量组成的式子,形式为个数值常量组成的式子,形式为c1+c2+c3+c4c1+c2+c3+c4,用,用于决定信息框中按钮的个数和类型以及出现在信息框中的图标于决定信息框中按钮的个数和类型以及出现在信息框中的图标类型,各个参量的可选值及其功能类型,各个参量的可选值及其功能; ; 详见详见p.62p.62表表4.24.2 (3 3)title:title:对话框标题栏的显示信息。对话框标题栏的显示信息。江苏计算机

22、等江苏计算机等级考试级考试 visual basic 程序设计程序设计27msgbox msgbox 需要重新来一次需要重新来一次?, 2 + 32 + 256 + 4096, ?, 2 + 32 + 256 + 4096, 询问询问 msgbox msgbox 数据非法,请重输!数据非法,请重输!,1 + 16 + 0 + 4096, ,1 + 16 + 0 + 4096, 警告警告 举举 例例江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计28方法一方法一: 发布提示信息,无须用户响应,在程序中作为独立语发布提示信息,无须用户响应,在程序中作为独立语句存在句

23、存在,不加括号;不加括号;例:例: msgbox 非法数据!非法数据!, , 警告警告如果省略其中参数,如果省略其中参数,逗号不能省略逗号不能省略msgbox函数的用法函数的用法方法二方法二: 需要用户响应,和普通函数调用方法相同。需要用户响应,和普通函数调用方法相同。例:例: response=msgbox(真的删除该项吗?真的删除该项吗?,4+48,提示信息提示信息) if response=vbyes then else end if江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计29江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计

24、程序设计301、 if-then-else语句语句格式格式1:if then else end if4.3.1 if-then-else- end if4.3.1 if-then-else- end if语句语句逻辑变量、关系表达逻辑变量、关系表达式、逻辑表达式式、逻辑表达式b组语句组语句条件?条件?不成立不成立成立成立a组语句组语句 逻辑框图逻辑框图 : 功能功能 : 如果条件成立,则执行如果条件成立,则执行a a组语句,组语句,否则执行否则执行b b组语句。组语句。 说明说明 :ifif和和end ifend if语句成对出现,缺一不可;语句成对出现,缺一不可;elseelse和和b组语句

25、组语句部分可以省略部分可以省略, ,当条件不成立时当条件不成立时, ,直接执行直接执行end ifend if的的后继语句;后继语句;江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计31private 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 subprivate sub cmdexit_click() endend sub

26、private sub cmdclear_click() text1.text = text2.text = text1.setfocusend sub例:从键盘输入一个数,求它的平方根。例:从键盘输入一个数,求它的平方根。缩格输入缩格输入江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计32例:计算分段函数例:计算分段函数y y的值。的值。0672025xxxexyxprivate sub cmdcalculate_click() dim x as single,y as single x=val(text1.text) if x = 0 then y = 2*

27、sqr(x+7)-6 else y = 5*x+exp(x)-2 end if text2.text=str(y)end subcmdcalculate江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计33 格式格式22:单行:单行if-then-elseif-then-else语句语句 if if then then 1 else else 2 说明说明 :(1 1)在)在a组语句组语句和和b组语句组语句都只有一个语句时,可使用该格式;都只有一个语句时,可使用该格式;(2 2)end ifend if语句省略。语句省略。例:上例可改写为以下程序段。例:上例可改写

28、为以下程序段。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江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计34条件满足条件满足?块块1truefalse 格式格式33: if then end if格式格式4:4: if then 逻辑框图逻辑框图江苏计算机等江苏计算机等级考试级考试 visual

29、basic 程序设计程序设计35江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计36开始开始边长边长0?是否能组成三角形是否能组成三角形计算计算输出输出出错信息出错信息结束结束是是否否是是否否例:输入三角形的三边例:输入三角形的三边a a、b b、c c,求三角形的面积,求三角形的面积p 64 例例4-1a0 and b0 and c0a+bc and b+ca and a+cb江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计37private sub cmdcalculate_click() dim a as single,b

30、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 0” end ifend sub计算公式:计算公式:其中:其

31、中:)()(cpbpapps2cbapa0 and b0 and c0江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计38例:计算分段函数例:计算分段函数y y的值。的值。55xlnxx054x3x0 x5x1y2private 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

32、 sub05江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计39例:输入分数并判断等级分。计算规则如下:例:输入分数并判断等级分。计算规则如下: 分数分数 100-90 89-80 79-70 69-60 60100-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 text

33、2.text = degree end ifend sub缺点:缺点: 嵌套层次过多,结构嵌套层次过多,结构不清晰,容易出错不清晰,容易出错。从文本框取数据从文本框取数据向文本框放数据向文本框放数据江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计403 3、多分支、多分支if-then-elseifif-then-elseif语句语句 格式格式 : ifif 1 thenthen elseif elseif 2 thenthen elseif elseif thenn then else else end if end if 功能功能 :- -对条件自上而下依次

34、判断对条件自上而下依次判断, ,若条件若条件i i成立成立, ,则执行相应的则执行相应的ai组语句组语句;- -若所有条件都不成立,则执行若所有条件都不成立,则执行an+1组语句组语句。- -无论执行了哪个语句块,都将执行无论执行了哪个语句块,都将执行end ifend if的后继语句。的后继语句。条件条件1条件条件2假假假假真真真真语句块语句块1语句块语句块2条件条件 n真真假假语句块语句块n语句块语句块n+1江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计41(1 1)该语句结构可以解决多分支问题,只有一个)该语句结构可以解决多分支问题,只有一个end en

35、d ifif语句,语句,避免避免ifif语句嵌套层数过多的情况;语句嵌套层数过多的情况;(2 2)elseelse语句可以省略;语句可以省略;(3 3)该结构是一个单出口的结构,即该结构是一个单出口的结构,即只会执行只会执行一组语句一组语句,若,若条件中有两个成立,则按语句的顺序执行前面的条件中有两个成立,则按语句的顺序执行前面的一组语句。一组语句。说说 明明江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计42private sub text1_keypress(keyascii as integer) dim score as integer, degree

36、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 程序设计程序设计43格式格式:select case case case case case else end select 功能功能 : 计算测试表达式的值,自计算测试表达式的值,自上而下检查测试条件上而下检查测试条件; ; 若表达式的值符合测试若表达式的值符合测试 i i,则执行相应的语句块则执行相应的语句块 i i; 若所有条件都不成立,则若所有条件都不成立,则执行语句块执行语句块n+1n+1。无论执行了。无论执行了哪个语句块,都将执行哪个语句块,都将执行end end selectselect的后继语句。的后继语句。4.3.

38、2 4.3.2 多分支多分支select-case-end selectselect-case-end select语句语句江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计44(1 1)测试表达式可以是算术表达式或字符表达式;)测试表达式可以是算术表达式或字符表达式;(2 2)测试条件有四种形式:)测试条件有四种形式:v 常量,如常量,如2 2、3 3、“a”a”等等v 闭区间闭区间,如,如3 3 toto 78 78、“b” b” toto“h”“h”等等v 开区间,如开区间,如isis2020、 isis“p”“p”等等v 以上三种形式的组合,以以上三种形式

39、的组合,以逗号间隔逗号间隔,条件组合是,条件组合是或或的关系,的关系,不能表示与的关系不能表示与的关系 (3 3)case elsecase else语句部分可以省略;语句部分可以省略;(4 4)以)以end selectend select语句结束;语句结束;(5 5)该结构是一个单出口的结构,即该结构是一个单出口的结构,即只会执行一个语句块只会执行一个语句块,若条,若条件中有两个成立,则按语句的顺序执行前面的语句块。件中有两个成立,则按语句的顺序执行前面的语句块。说说 明明江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计45例:将上例用例:将上例用selec

40、t caseselect 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 degree = e

41、end select text2.text = degree end ifend sub江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计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

42、, 顺序输出顺序输出) if a b then temp = a a = b b = temp end if if a c then print a, b, c else print a, c, b end ifend sub保证保证a为为a,b两数中的大值两数中的大值江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计47江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计484.4 4.4 循环结构与循环结构语句循环结构与循环结构语句4.4.1 do-loop循环结构语句循环结构语句(条件循环)(条件循环)4.4.2 for-next

43、 循环结构语句循环结构语句(计数循环)(计数循环)4.4.3 循环嵌套循环嵌套江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计49 由一定的条件控制,反复执行某个程序段的程序结构称由一定的条件控制,反复执行某个程序段的程序结构称为为循环结构循环结构。 用于解决一些需要重复进行某些操作的问题。用于解决一些需要重复进行某些操作的问题。 循环要素:循环要素: & & 循环控制条件循环控制条件 条件或逻辑表达式条件或逻辑表达式 & & 循环体循环体 重复执行的语句块重复执行的语句块 & & 为防止死循环,在循环体内必须要有

44、对应语句,为防止死循环,在循环体内必须要有对应语句,使得循环控制条件会不满足,结束循环运行。使得循环控制条件会不满足,结束循环运行。基本概念基本概念江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计50例:在窗体上打印例:在窗体上打印10行行“hello”。 循环控制条件循环控制条件 是否已打印了是否已打印了1010行行 循环体循环体在窗体上打印一行在窗体上打印一行“hello”hello” 提示:要设立一个变量,用于记录已打印的行数,每打提示:要设立一个变量,用于记录已打印的行数,每打印一行,计数变量要加印一行,计数变量要加1 1,循环控制条件即计数变量小于等于

45、,循环控制条件即计数变量小于等于1010江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计51一、一、“当型当型”循环循环条件成立时,执行循环体条件成立时,执行循环体条件?条件?循环体循环体成立成立循环循环的后继语句的后继语句不成立不成立条件?条件?循环体循环体不成立不成立循环循环的后继语句的后继语句成立成立图图2 2:先执行一次循环体,然后再判断条件,决定是否继续执行循:先执行一次循环体,然后再判断条件,决定是否继续执行循环,此结构环,此结构至少执行一次循环体至少执行一次循环体。图图 1图图 2图图1 1:先判断条件,当条件成立则执行循环体,否则执行循环结构:先

46、判断条件,当条件成立则执行循环体,否则执行循环结构的后续语句。的后续语句。江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计52二、二、“直到型直到型”循环循环条件不成立时,执行循环体条件不成立时,执行循环体条件?条件?循环体循环体不成立不成立循环循环的后继语句的后继语句成立成立条件?条件?循环体循环体成立成立循环循环的后继语句的后继语句不成立不成立图图3 3:先判断条件,条件不成立则执行循环体,直到条件不成立,:先判断条件,条件不成立则执行循环体,直到条件不成立,执行循环结构的后续语句。执行循环结构的后续语句。图图 3图图 4图图4 4:先执行一次循环体,再判断

47、条件,决定是否继续执行循环。:先执行一次循环体,再判断条件,决定是否继续执行循环。江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计53 4.4.1 do-loop 4.4.1 do-loop 循环结构语句循环结构语句格式一格式一 do while loop条件?条件?循环体循环体成立成立loop的后继语句的后继语句不成立不成立执行步骤:执行步骤:1 判断条件是否成立。如果条件判断条件是否成立。如果条件不成立,转向第不成立,转向第4步步2 执行循环体;执行循环体;3 转向执行第转向执行第1步;步;4 执行执行loop语句的后继语句。语句的后继语句。当型循环当型循环

48、江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计54private sub 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 程序设计程序设计55例例 求求s=1+2+3+4+100pr

49、ivate sub form_click() dim n as integer,s as long n=1 s=0 do while n=100 s=s+n n=n+1 loop print “1+2+3+100=”;send sub实现累加实现累加江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计56格式二格式二: do loop while 条件?条件?循环体循环体不成立不成立loop的后继语句的后继语句成立成立执行步骤:执行步骤:1 执行循环体;执行循环体; 2 判断条件是否成立。如果条判断条件是否成立。如果条件成立,转向第件成立,转向第 1 步步3 条件不

50、成立,则结束循环,条件不成立,则结束循环,执行执行loop语句的后继语句。语句的后继语句。当型循环当型循环江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计57格式三格式三 do until loop条件?条件?循环体循环体不成立不成立loop的后继语句的后继语句成立成立执行步骤:执行步骤:1 判断条件是否成立。如果条判断条件是否成立。如果条件成立,转向第件成立,转向第4步步2 执行循环体;执行循环体;3 转向执行第转向执行第 1 步;步;4 执行执行loop语句的后继语句。语句的后继语句。直到型循环直到型循环江苏计算机等江苏计算机等级考试级考试 visual b

51、asic 程序设计程序设计58格式四格式四 do loop until 条件?条件?循环体循环体不成立不成立loop的后继语句的后继语句成立成立执行步骤:执行步骤:1 执行循环体;执行循环体; 2 判断条件是否成立。如果条判断条件是否成立。如果条件不成立,转向第件不成立,转向第 1 步,若条步,若条件成立,则执行件成立,则执行 第第3步步 3 执行执行loop语句的后继语句。语句的后继语句。直到型循环直到型循环江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计59(1 1)while while 短语总是在条件成立时,继续进行循环;条件短语总是在条件成立时,继续进

52、行循环;条件不成立时,结束循环。因此用于不成立时,结束循环。因此用于“当型当型”循环;循环;(2 2)until until 短语总是在条件不成立时,执行循环体;条件短语总是在条件不成立时,执行循环体;条件成立时,则结束循环。因此称为成立时,则结束循环。因此称为“直到型直到型”循环;循环;(3 3)上述两条短语是可以相互转换的。)上述两条短语是可以相互转换的。总总 结结 do while i=10 print “hello” i=i+1 loop江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计60格式五(特殊形式)格式五(特殊形式): do loop执行过程:反

53、复执行循环体。执行过程:反复执行循环体。该结构称为该结构称为“死循环死循环“,在循环体,在循环体内必须通过内必须通过 exit do 语句强制退出语句强制退出循环体。循环体。exit do语句一般与语句一般与if-then语句结合语句结合使用,即当满足某一条件时,才强使用,即当满足某一条件时,才强制退出循环。制退出循环。 if then exit do循环体循环体loop后续语句后续语句 do print “hello” i=i+1 if i=10 then exit do loop江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计61(1 1)dodo和和loo

54、ploop为循环结构关键字,必须成对出现,缺一不可;为循环结构关键字,必须成对出现,缺一不可;(2 2)循环体为可执行语句组成)循环体为可执行语句组成, ,可以嵌套分支结构和循环结构;可以嵌套分支结构和循环结构;(3 3)语句)语句 exit do exit do 用于无条件退出循环,可在任意用于无条件退出循环,可在任意do-loopdo-loop语语句结构的循环体中出现。句结构的循环体中出现。(4 4)使用循环结构,一定要避免死循环的出现。)使用循环结构,一定要避免死循环的出现。 do-loop do-loop语句使用说明语句使用说明江苏计算机等江苏计算机等级考试级考试 visual bas

55、ic 程序设计程序设计62 算法算法分析分析 :求最大公约数的常用方法是:求最大公约数的常用方法是 辗转相除法。辗转相除法。例:求两个数的最大公约数。例:求两个数的最大公约数。p 68 例例4-31810m n r8108 2 8 2 0 2 0r=8r=2r=0m=2即即最大公约数最大公约数江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计63 在该例中,我们使用了三个变量,分别表示被除数(在该例中,我们使用了三个变量,分别表示被除数(m m)、)、除数(除数(n n)及余数()及余数(r r)。)。 do r=m mod n m=n n=rloop until

56、 r=0最大公约数是(最大公约数是( )?)?江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计64 由于输入的数据由于输入的数据m m和和n n要求是自然数,在程序中应加入对要求是自然数,在程序中应加入对数据的合法性进行检验的部分;数据的合法性进行检验的部分; 考虑到程序的应用范围,数据类型可选用长整型。考虑到程序的应用范围,数据类型可选用长整型。 问题分析及界面设计问题分析及界面设计江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计65private sub command1_click() dim m as long, n as

57、 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 loop until r = 0 text3.text = cstr(m) 输出最大公约数输出最大公约数 end if end sub private sub command2_click() text1.text = text2

58、.text = text3.text = end sub private sub command3_click() end end sub检验数据检验数据合法性合法性mod 前后加空格前后加空格江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计66例:将十进制数转换成二进制。例:将十进制数转换成二进制。 算法分析算法分析 :十进制向二进制转换,十进制向二进制转换, 采取的是除采取的是除2 2取余法。取余法。4522221112122252101001高位高位低位低位(45)10=(101101)2解决这类问题必须考虑的是如下几点:解决这类问题必须考虑的是如下几点:

59、(1 1)需要重复运行的操作)需要重复运行的操作除除2 2取余取余(2 2)终止循环的条件)终止循环的条件商为商为0 0a=0?a mod 2a=a2f结束循环结束循环t江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计67注意:注意:在循环控制条件中必须出现变量,且该变量在循环体中一定在循环控制条件中必须出现变量,且该变量在循环体中一定要改变值,否则会造成要改变值,否则会造成“死循环死循环”,即无休止的循环。,即无休止的循环。若在运行程序过程若出现若在运行程序过程若出现“死循环死循环”,用,用ctrl+breakctrl+break可可以强制终止程序的执行。以强

60、制终止程序的执行。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将余数逆序输出,即将最新获得的余数,将余数逆序输出,即将最新获得的余数,连接在已获得的余数串的前面连接在已获得的余数串的前面江苏计算机等江苏计算机等级考试级考试 visual basic 程序设计程序设计68练习练习1 1:计算圆周率的近似值。计算公式如下:计算圆周率的近似值。计算公式如下:22

温馨提示

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

评论

0/150

提交评论