第5章 循环结构 本章要点: For循环 While循环 Do循环.

Slides:



Advertisements
Similar presentations
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
Advertisements

第10章 处理图形 Visual Basic 程序设计教程.
第四章 控制结构.
第六章 循环控制.
Access数据库程序设计 总复习.
上課囉 職場甘苦談 小資男孩向錢衝 育碁數位科技 呂宗益/副理.
VB教学中游戏化教学案例设计.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
第五章 数组.
Visual Basic程序设计.
Chapter 1 複習.
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
第6章 数 组 6.1 一维数组 6.2 控件数组 6.3 二维数组.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
VB程序设计语言 主讲教师:王 杨.
数组 第 6 章.
第5章 数组 Visual Basic程序设计.
过程 第 7 章.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
第十一讲 VB常用标准控件(2).
初识Visual Basic.
Visual Basic程序设计基础 计算机科学学院.
Access VBA程序设计 本章重点 Access Basic编程语言 运算符、函数与表达式 Access Basic语句 模块的使用
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
程式語言Visual Basic 重複結構 黃瀧輝 老師 Long Hwai,Huang.
走进编程 程序的顺序结构(二).
6-1 For…Next迴圈敘述 6-2 While…End While迴圈敘述 6-3 Do…Loop迴圈敘述 6-4 巢狀迴圈敘述
3.5 用递归法解决问题 黄学鸿.
第12章 VBA模块设计.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第3 章 VBScript的控制结构.
第5章 Visual Basic控制结构 之 常用算法举例
第 8 章 过程.
第四章 命令按钮、标签和文本框 大多数应用程序中都有命令按钮CommandButton控件,用户可以单击按钮执行某项操作。
Visual Basic程序设计.
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
江西财经大学信息管理学院 《数据库应用》课程组2007
第4章 PHP流程控制语句.
小结 郭清溥.
Visual Basic 程序设计教程.
Ch04 VB.NET的流程控制 網頁程式設計.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
程序基础 2019/4/25.
第二章、第三章错题分析.
姚金宇 MIT SCHEME 使用说明 姚金宇
第4章 Excel电子表格制作软件 4.4 函数(一).
选择结构设计 第 4 章 程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。
用穷举法设计程序 南京师范大学 教育技术系 倪佳慧
3.16 枚举算法及其程序实现 ——数组的作用.
计算机应用基础 潍坊学院 计算机工程学院 主讲人:丁素英.
1.2基本算法语句 1.2.3循环语句.
输入语句 输出语句 赋值语句 条件语句 循环语句
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
第5章 数组 5.1 数组概述 5.2 静态数组和动态数组 5.3 数组的基本操作 5.4 控件数组 5.5 数组在自定义数据类型中的应用.
1、过程概述 2、函数过程 3、子过程 4、过程的使用 5、传递参数 6、过程的嵌套
解析算法与枚举算法.
五 循环结构程序设计 厦大附中信息技术.
顺序查找与二分查找复习.
算法与Visual Basic程序基础(二)
顺序结构程序设计 ——关于“字符串”和数值.
1.2.3 循环语句.
Presentation transcript:

第5章 循环结构 本章要点: For循环 While循环 Do循环

所谓循环结构,表示在执行语句时,需要对其中的某个或某部分语句重复执行多次。对于此类情况可以利用各种循环结构来实现。 循环结构可以分为For循环、While循环和Do循环语句结构。

6.1 For循环 1. 格式 For <循环变量>=<初值> To <终值> [Step <步长>] <语句组1> [Exit For] <语句组2> Next [<循环变量>] 初值 循环变量 T 循环变量值超过终值? F 2. 功能: 执行过程如流程图所示 执行循环体 循环变量+步长 循环变量 后续语句

3. 说明 1) 循环变量——数值型变量 2) 初始值——数值型变量 3) 终值——数值型变量 4)步长——数值型变量 5) 循环体——需要重复执行的部分 4) Exit For——退出循环,常放在条件语句中 5) Next循环变量——之后的循环变量应与For语句中的循环变量一致,也可以省略

例5.1,编写程序,在窗体上输出一行由6个“*”组成的图形 Private Sub Form_Click() For I = 2 To7 Print "*"; Next I End Sub

例5.2 以“顺序输出10以内所有奇数”为例,来进一步理解For循环的执行过程。 程序语句及执行过程如下: 程序语句: For i = 1 To 10 Step 2 Print i; Next i

执行过程: (1)系统把初值1赋给循环变量i,记下终值10和步长2。 (2)判断i是否大于终值10。 i > 10则时转到(5)。 i ≤ 10时执行循环体“Print i;”。 (3)执行Next语句,相当于执行语句“i = i + 2”。 (4)转到(2),继续执行。 (5)结束循环,执行Next后面的语句。 上述程序语句在执行时,共进行6次判断,执行5次循环体,分别输出1、3、5、7、9这5个奇数,循环变量的值最终为11。

例5.3 计算S=1+2+3+…+n。(n由用户输入) 这是一个“累加求和”的问题。解决这类程序时,通常是引入一个用来存放“和”值的单元S,然后循环地向S中加入一个加数,最后,在变量S中存放的就是累加的结果。 程序代码如下: n = InputBox("input n") S =0 For I = 1 To Val(n) S = S + I Next I Print S

例: 判断以下程序段的执行结果: For i = 5 To 1 Step -1 Print i * i; Next i Print Print i 例: 判断以下程序段的执行结果: X = 6 For K = 1 To 10 Step -2 X = X + K Next K Print K,X K=1;超过终值 不进入循环

累加分析: 流程图: 输入N的值,求1+2+3+4+…+N 累加器(变量)初始化 Sum=0 重复执行(循环体) Sum=Sum+I (I=1,2,…,N) 流程图: F 0Sum ,1I I>N? I+1I Sum+ISum T 输入N 输出Sum

设计界面: Text1 Label3 Command1 运行界面:

代码: Private Sub Command1_Click() Dim N As Integer, I As Integer, Sum As Integer N = Val(Text1.Text) ' 输入累加总项数 Sum = 0 ' 设累加和初值为0 For I = 1 To N Sum = Sum + I ' 循环体:和值=和值+累加项 Next I Label3.Caption = Sum ' 输出累加结果 End Sub

5.2 While循环 问题: 求12+22+32+42+…大于某数N的最小值,N由用户指定。 特点: 已知循环条件、未知循环次数, 1. 格式 While <条件> [<语句组>] Wend 2. 功能 F 条件? 语句组 T

例如: Private Function Sum2(n As Integer ) As Integer Dim s, i As Integer i=1 While( i<=n) s=s + i ; i= i+ 1 Wend Sum2=s End Function

流程图: F I<=N S=S+I T 输入N I=I+1 0S,1I 输出S

例5.4 Private Sub Form _ Click() a = 1000 found = 0 While ( found<>10) a =a-1 If a Mod 13 = 0 And a Mod 7 = 0 Then found = found + 1 Print a ‘输出每次找到的数字 End If Wend End Sub

例5.5 Private Sub Form_Click() '单击窗体时执行 Dim n%, f% While f < 500 '不断执行循环体,直到f >= 500为止 n = n + 1 f = f * n Wend Print n; "! ="; f '显示阶乘第一次大于500的数及其阶乘 f = f / n '求此数前一个数的阶乘 n = n - 1 '求此数的前一个数 Print n; "! ="; f '显示阶乘最接近500但又不大于500的数及其阶乘 Print “ N =”; n ‘显示要找的正整数N End Sub

While...Wend循环可以使用Do...Loop循环来代替,但Do...Loop循环具有更多的形式。

5.3 Do循环 1. 格式 2. 功能 格式一: Do While <条件> F [<语句组1>] 条件? 循环体 T F 格式一: Do While <条件> [<语句组1>] [Exit Do] [<语句组2>] Loop 条件? 循环体 F T 格式二: Do Until <条件> [<语句组1>] [Exit Do] [<语句组2>] Loop

格式 功能 条件? 循环体 T F 格式三: Do [<语句组1>] [Exit Do] [<语句组2>] Loop While <条件> 条件? 循环体 T F 格式四: Do [<语句组1>] [Exit Do] [<语句组2>] Loop Until<条件>

3. 说明 1) Exit Do语句用于退出循环体 2) 也可以在Do语句和Loop语句之后都没有条件, 这时在循环体内必须有强行退出循环的语句即: Do [<语句组1>] Exit Do [<语句组2>] Loop 3) 当型循环可能一次都不执行;而直到型循环至少要执行一次循环体。多数情况下,当型循环和直到型循环可互相代替。

Private Function Sum4(n As Integer) As Integer Dim s,i As Integer i=1 例如: Private Function Sum3(n As Integer) As Integer Dim s,i As Integer If n=1 Then Sum3=1 Else i=1 Do s=s+i:i=i+1 Loop (i<=n) Sum3=s End If End Function Private Function Sum4(n As Integer) As Integer Dim s,i As Integer i=1 Do While (i<=n) s=s+i:i=i+1 Loop Sum4=s End Function

5.4 中途跳出语句 (1)exit for:用于中途跳出for循环,可以直接使用,也可以用条件判断语句加以限制。 (2)exit do:用于中途跳出do循环,同上类似。 (3)exit sub:用于中途跳出sub过程,既可以直接使用,也可以用条件判断语句限制使用。 (4)exit function:用于中途跳出function过程,可以直接使用,也可以用条件判断语句限制使用。 使用上述几种中途跳出语句,可以为某些循环体或过程设置明显的出口,能够增强程序的可读性。

例如: Private Function Sum5( n As Integer) As Integer Dim s , i As Integer i = 1 Do If ( i >= n) Then Exit Do s = s+ i; i = i +1 Loop Sum5 = s End Function

5.5图片框 图片框用于在窗体的特殊位置上放置图形信息,也可以在其上放置多个控件,因此它可以作为其他控件的容器。 1.常用属性 2.常用事件和方法 3.应用例子

常用属性 图片框的常用属性如下。 (1)Appearance属性 返回/设置一个对象在运行时是否以3D效果显示。 (2)AutoRedraw属性 返回/设置从图形方法到一个持久性位图的输出。 (3)AutoSize属性 决定控件是否能自动调整大小以显示所有的内容。 (4)Picture属性 返回/设置图片框控件中显示的图形。在设置时,设计阶段可直接利用属性窗口指定,运行阶段可使用LoadPicture函数加载

设计一个窗体,以命令按钮选择方式显示春、夏、秋、冬四个季节的图片。如图4.10所示是一幅春天的图片。 首先添加一个窗体,在其中放置一个图片框Picture1和4个命令按钮(使用Command1控件数组)。在该窗体上设计如下事件过程: Private Sub Command1_Click(Index As Integer) Select Case Index Case 0 Picture1.Picture = LoadPicture("e:\sf\spring.jpg") Case 1 Picture1.Picture = LoadPicture("e:\sf\summer.jpg") Case 2 Picture1.Picture = LoadPicture("e:\sf\fall.jpg") Case 3 Picture1.Picture = LoadPicture("e:\sf\winter.jpg") End Select End Sub

5.6图像框 图像框用来显形图形,可以显示位图、图标、图元文件、增强型图元文件、JPEG或GIF文件。 图像框与图片框的区别是:图像框控件使用的系统资源比图片框少而且重新绘图速度快,但它仅支持图片框的一部分属性、事件和方法。两种控件都支持相同的图片格式,但图像框控件中可以伸展图片的大小使之适合控件的大小,而图片框控件中不能这样做。 1.常用属性 2.常用的事件和方法 3.应用例子

常用属性 (1)Appearance属性 返回/设置一个图像框在运行时是否以3D效果显示。 (2)Picture属性 返回/设置图像框控件中显示的图形。在设置时,设计阶段可直接利用属性窗口指定,运行阶段可使用LoadPicture函数加载。 (3)Stretch属性 返回/设置一个值,决定是否调整图形的大小以适应图像框控件。该属性取值如下: · False:这是默认值,当图形载入时,图像框本身会自动调整大小,使得图形可以填满图像框。 · True:当图形载入时,图形自动调整大小,填满整个图像框。

设计一个窗体,说明图像框Stretch属性的作用。 首先添加一个窗体,在其中放置1个图像框Image1(其Picture属性设置为“e:\media\ happy.bmp”)和2个命令按钮(分别为Command1和Command2)。在该窗体上设计如下事件过程: Private Sub Command1_Click() '实现 "原大小"功能 Image1.Width = 1000 ' 设置图像框大小 Image1.Height = 1000 Image1.Stretch = False End Sub Private Sub Command2_Click() '实现"放大"功能 Image1.Stretch = True

5.7计时器 计时器控件在设计时可看见它,在运行时它就隐藏起来,但是在后台每隔一定时间间隔,系统就会自动执行一次计时器事件。所谓时间间隔,指的是各个计时器事件之间的时间,一般以毫秒(ms)为基本单位。因为计时器在1秒钟内最多产生18个事件,所以两个事件之间的时间间隔精确度不超过1/18s。 1.常用属性 2.常用事件和方法 3.应用例子

常用属性 (1) Enabled属性 决定计时器控件是否开始计时。其语法如下: Object.Enabled=True或False 若设置为True(默认值),表示启动计时器开始计时;否则,表示暂停计时器的使用,在需要启动计时器时再将Enabled属性设置为True即可。 (2)Interval属性 设置两个计时器事件之间的时间间隔。设置时以毫秒为单位,设置的范围是0~65 535ms。若将Interval属性值设置为1000ms,即将时间间隔设置为1s,则每隔1s就会执行一个计时器时间。由此可以看出,若想在1s内执行n个计时器事件,则必须将Interval属性的值设置为1000/n才可以实现。系统初始值设置为0。

设计一个窗体说明计时器的基本应用方法。 首先在本章工程中添加一个窗体,在其中放置两个标签(Label1和Label2)和一个计时器Timer1,该计时器的Interval属性设置为100。并在该窗体上设计如下事件过程: Private Sub Timer1_Timer() Label2.Caption = Time End Sub 执行本窗体,其界面如图4.18所示。

本章小结 1. For循环 For <循环变量>=<初值> To <终值> [Step <步长>] <语句组1> [Exit For] <语句组2> Next [<循环变量>] 2. While循环 While <条件> [<语句组>] Wend

Do [{While|Until}<条件>] Loop [{While|Until}<条件>] [<语句组1>] [Exit Do] [<语句组2>] Loop Do [<语句组1>] [Exit Do] [<语句组2>] Loop [{While|Until}<条件>]