循环结构设计 第 5 章 计算机具有速度快、精度高的特点,特别适于进行重复性的工作,重复次数越多越能显示它的威力。所以,使用计算机时,应尽量把问题归纳为简单而有规则的重复运算和操作,以充分发挥计算机的特长。

Slides:



Advertisements
Similar presentations
编程加工 信息的. 趣味导入拓展提升大显身手总结反思学以致用 传说古代印度有个国王叫舍罕,他很迷恋棋类,而 宰相达依尔是个聪明的大臣,发明了国际象棋。国王玩 得爱不释手,决定奖赏宰相。达依尔说:陛下,我别无 他求,请你在这张棋盘的第一个格子里赏我 1 粒麦子; 在第二个格子里赏我 2 粒麦子;在第三个格子里赏我.
Advertisements

第七章 常用控件 7.1 控件概述 7.2 常用内部控件 本章要求 返回目录 第七章 常用控件 (Common Control)
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
第四章 控制结构.
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
Access数据库程序设计 总复习.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
第五章 数组.
Visual Basic程序设计.
Visual Basic 第六章 循环程序结构
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
第6章 数 组 6.1 一维数组 6.2 控件数组 6.3 二维数组.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
VB程序设计语言 主讲教师:王 杨.
数组 第 6 章.
第5章 数组 Visual Basic程序设计.
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
过程 第 7 章.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
第十一讲 VB常用标准控件(2).
初识Visual Basic.
算法与程序设计.
Visual Basic程序设计基础 计算机科学学院.
第9章 访问数据库 9.1 数据库的概念与建立 9.2 用Data控件访问数据库.
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
计算机程序设计强化复习 Visual Basic 6.0.
走进编程 程序的顺序结构(二).
6-1 For…Next迴圈敘述 6-2 While…End While迴圈敘述 6-3 Do…Loop迴圈敘述 6-4 巢狀迴圈敘述
第12章 VBA模块设计.
RWM600 (13.56MHz) Reader Antenna.
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
新觀念的 VB6 教本 第 6 章 資料型別.
PCR300 (13.56MHz) Reader RS232/USB.
第 8 章 过程.
广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》
第四章 命令按钮、标签和文本框 大多数应用程序中都有命令按钮CommandButton控件,用户可以单击按钮执行某项操作。
Visual Basic程序设计.
高等学校计算机基础教育教材 Visual Basic 6.0 程序设计 上海中医药大学现代教育技术中心 计算机教学部 1.
第二章 创建用户界面 本章重点和难点 2.1 基本属性 2.2 创建窗体 2.3 Visual Basic的常用控件 2.4 制作菜单.
算法与程序设计 周少品.
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 程序设计教程.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
第二章、第三章错题分析.
选择结构设计 第 4 章 程序流程有三种最基本的控制结构,即顺序结构、选择结构和循环结构。
用穷举法设计程序 南京师范大学 教育技术系 倪佳慧
3.16 枚举算法及其程序实现 ——数组的作用.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
1位选手参加了歌唱比赛,评委们的评分如下:
第5章 数组 5.1 数组概述 5.2 静态数组和动态数组 5.3 数组的基本操作 5.4 控件数组 5.5 数组在自定义数据类型中的应用.
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
3.13 选择结构程序设计初步.
解析算法与枚举算法.
1、复选框和单选按钮 2、框架 3、列表框和组合框 4、滚动条 5、鼠标器事件 6、键盘
算法与Visual Basic程序基础(二)
鸡兔同笼(续) ——选择结构.
信息的加工 Word中查找和替换、自动更正、批注、修订 Excel中公式和函数、排序和筛选、图表的建立和编辑 字符识别OCR.
程序调试与错误处理.
顺序结构程序设计 ——关于“字符串”和数值.
Presentation transcript:

循环结构设计 第 5 章 计算机具有速度快、精度高的特点,特别适于进行重复性的工作,重复次数越多越能显示它的威力。所以,使用计算机时,应尽量把问题归纳为简单而有规则的重复运算和操作,以充分发挥计算机的特长。

 循环是指在指定的条件下多次重复执行一组语句。被重复执行的一组语句称为循环体 VB提供的循环语句有 Do...Loop For...Next While...Wend For Each...Next 最常用的是For...Next和Do...Loop语句

格式: For 循环变量=初值 To 终值 [Step 步长值] 循环体 Next 循环变量 说明:上述程序,循环变量k的初值、终值和步长值分别为2,10和2,即从2开始,每次加2,到10为止,控制循环5次。每次循环都将循环体(Print k*k)执行一次 格式: For 循环变量=初值 To 终值 [Step 步长值] 循环体 Next 循环变量 功能:本语句指定循环变量取一系列数值,并且对循环变量的每一个值把循环体执行一次 初值、终值和步长值都是数值表达式,步长值可以是正数(称为递增循环),也可以是负数(称为递减循环) 若步长值为1,则Step 1可以省略

例5.4 用π/4=1 - 1/3 + 1/5 - 1/7 + ……级数求π的近似值 (取前5000项来进行计算) 例5.4 用π/4=1 - 1/3 + 1/5 - 1/7 + ……级数求π的近似值 (取前5000项来进行计算) 采用Print直接在窗体上输出结果,程序代码如下: Private Sub Form_Load() Show Dim pi As Single, c As Integer, s As Integer pi = 0 s = 1 's表示加或减运算 For c = 1 To 10000 Step 2 pi = pi + s / c s = -s '交替改变加、减号 Next c Print "π="; pi * 4 End Sub 程序运行结果是: π=3.141397

Private Sub Form_Load() Dim x As Integer, y As Integer Show 采用Print直接在窗体上输出结果,程序代码: Private Sub Form_Load() Dim x As Integer, y As Integer Show For x = 1 To 30 y = 100 - x If 3 * x + y / 3 = 100 Then Print "母鸡只数为:"; x, Print "小鸡只数为:"; y End If Next x End Sub 运行结果: 母鸡只数为:25 小鸡只数为:75

例5.7 用π/4=1 - 1/3 + 1/5 - 1/7 + …… 级数,求π的近似值。当最后一项的绝对值小于10-5时,停止计算 例5.7 用π/4=1 - 1/3 + 1/5 - 1/7 + …… 级数,求π的近似值。当最后一项的绝对值小于10-5时,停止计算 采用Print直接在窗体上输出结果,程序代码: Private Sub Form_Load() Show Dim pi As Single, n As Long, s As Integer pi = 0 : n = 1 : s = 1 Do While n <= 100000 '或1/n>=0.00001 pi = pi + s / n s = -s n = n + 2 Loop Print "π="; pi * 4 End Sub 程序运行结果: π=3.141575

三种循环语句比较 示例:求和s = 1 + 2 + 3 + … + 8 For…Next 前测型 S=0 s=0:k=1 For k=1 to 8 Do While k<=8 s=s+k s=s+k Next k k=k+1 Print s Loop Print s s=0 : k=1 do s=s+k k=k+1 Loop While k<=8 后测型

Private Sub Command1_Click() Dim m As Integer, n As Integer, p As Integer m = Val(Text1.Text) : n = Val(Text2.Text) If m <= 0 Or n <= 0 Then MsgBox ("数据错误!") End End If Do p = m Mod n m = n n = p Loop While p <> 0 Text3.Text = m End Sub 若输入的m和n的值为85和68,则运行结果如上图

例5.8的循环语句可改为 Do p = m Mod n If p=0 Then Exit Do End If m = n n = p Loop While p <> 0 Text3.Text = n

采用Print直接在窗体上输出结果,程序代码如下: Private Sub Form_Load() Show For i = 1 To 7 Print Tab(10 - i); For j = 1 To 2 * i - 1 Print Chr(i + 48); Next j Print Next i End Sub Print Chr(i+48)与Print i有所不同

例5.12 取一元、二元、五元的硬币共十枚,付给25元钱,有多少种不同的取法? (1)分析:设一元硬币为a枚,二元硬币为b枚,五元硬币为c枚,可列出方程 a+b+c=10 a+2b+5c=25 采用两重循环,外循环变量a从0~10,内循环变量b从0~10 (2)创建应用程序的用户界面

(3)编写程序代码 Private Sub Form_Load() Show 程序通过Print方法把处理结果输出在标签的下方 Private Sub Form_Load() Show CurrentX = 0 : CurrentY = 1500 '确定开始显示的坐标 Print , "五元", "二元", "一元" n = 0 '记录解的组数 For a = 0 To 10 For b = 0 To 10 c = 10 - b - a If a + 2 * b + 5 * c = 25 And c >= 0 Then n = n + 1 Print "("; n; ")", c, b, a End If Next b, a End Sub

(3)ItemData属性:为每个表项设置一个对应的数值 (4)ListCount属性:返回列表框中表项的数目 (5)ListIndex属性:返回已选定表项的顺序号(索引)。若未选定任何项,则ListIndex的值为-1  (6)Text属性:存放当前选定表项的文本内容 (7)Selected属性:逻辑值,表示列表框中某一表项是否被选中 (8)Sorted属性:设置列表框中各表项在运行时是否按字母顺序排列 (9)MultiSelect属性:设置是否允许同时选择多个表项

假设列表框List1中有四个表项,并已选定第2项,则 有: List1.List(0)的值为”教授” 个数List1.ListCount 为4 List1.ListIndex 为1 List1.Text的值为”副教授” List1.Selected(1)为True List1.Selected(0)为False 采用以下方法,可为列表框List1赋值: (1)在属性窗口中设置 (2)利用AddItem赋值 (3) 利用List属性赋值 List1.AddItem “教授” List1.List(0)= “教授” List1.AddItem “副教授” List1.List(1)= “副教授” List1.AddItem “讲师” List1.List(2)= “讲师” List1.AddItem “助教” List1.List(3)= “助教”

3. 事件 可接收Click、DblClick等事件 4. 方法 (1) AddItem方法:用于把一个列表项加入列表框 格式: [对象.]AddItem 列表项[,索引] 举例:List1.AddItem "海南省" ,28 其中,“索引”值不能大于表项数(ListCount) (2) Clear方法:用于清除列表框中的所有项目 (3) RemoveItem方法:用于删除指定的列表项 格式: [对象.]AddItem 列表项[,索引]

5. 列表框表项的输出 (1)用鼠标单击列表框内某一表项,则该表项值存放在Text属性中。例如: x = List1 5. 列表框表项的输出 (1)用鼠标单击列表框内某一表项,则该表项值存放在Text属性中。例如: x = List1.Text ′把表项值存放在x变量中 (2)指定索引号来取表项的内容,例如: List1.ListIndex = 3 x = List1.Text (3)直接从数组List()中读取,例如: x = List1.List(5)

例5.13 设计一个程序,找出100~800范围内所有能同时被3和8整除的自然数  例5.13 设计一个程序,找出100~800范围内所有能同时被3和8整除的自然数  (1)分析:判别条件为 (n Mod 3=0) And (n Mod 8=0) (2)创建应用程序的用户界面和设置对象属性

(3)编写程序代码 编写的“显示”按钮Click事件过程代码: Private Sub Command1_Click() List1.Clear For n = 100 To 800 If (n Mod 3 = 0) And (n Mod 8 = 0) Then List1.AddItem n End If Next n End Sub

Private Sub Form_Load() List1.AddItem "电子商务" List1.AddItem "网页制作" List1.AddItem "Internet简明教程" List1.AddItem "计算机网络基础" List1.AddItem "多媒体技术“ End Sub Private Sub Command1_Click() '"显示"按钮单击事件 List2.Clear '清除列表框的内容 For i = 0 To List1.ListCount - 1 '逐项判断 If List1.Selected(i) Then '真时为选定 List2.AddItem List1.List(i) End If Next i Private Sub Command2_Click() '"清除"按钮单击事件 List2.Clear

(2)Text属性:该属性是用户所选定项目的文本或直接从文本框输入的文本

例5.15 编制程序,把一批课程名放入组合框中,再对组合框进行项目显示、添加、删除、全部删除等操作 (1)创建应用程序的用户界面 (2)设置对象属性 组合框的Style属性为0,TabIndex(键序)为0 两个标签;四个命令按钮; 一个文本框Text1,用来显示当前的选修课总课程数

(3)编写程序代码 Private Sub Form_Load() Combo1.AddItem "电子商务" Combo1.AddItem "网页制作" Combo1.AddItem "Internet简明教程" Combo1.AddItem "计算机网络基础" Combo1.AddItem "多媒体技术" Combo1.Text = "" '置空值 Text1.Text = Combo1.ListCount '表项个数 End Sub Private Sub Command1_Click() '”添加” If Len(Combo1.Text) > 0 Then Combo1.AddItem Combo1.Text Text1.Text = Combo1.ListCount End If Combo1.Text = "" Combo1.SetFocus

Private Sub Command2_Click() ‘“删除” Dim ind As Integer ind = Combo1.ListIndex If ind <> -1 Then '-1表示无表项 Combo1.RemoveItem ind '删除已选定的表项 Text1.Text = Combo1.ListCount End If End Sub Private Sub Command3_Click() ‘“全清” Combo1.Clear Private Sub Command4_Click() End

5.4 程序举例 例5.16 打印“九九乘法表”  两重循环; 采用Print直接在窗体上输出结果 5.4 程序举例 例5.16 打印“九九乘法表”  两重循环; 采用Print直接在窗体上输出结果 Private Sub Form_Load() Show FontSize = 15 '设置字号 Print Tab(12); “九九乘法表“ '输出标题 FontSize = 12 Print '输出空行 For k = 0 To 9 Print Tab(k * 4); k; '输出第一行数字 Next k Print '换行 For j = 1 To 9 '外循环 Print j; For k = 1 To j '内循环 Print Tab(k * 4); j * k; '输出乘积 Print '换行 Next j End Sub

打印“九九乘法表” 

例5.17 输入一个十进制整数,将其转换成二进制数、八进制数或十六进制数 例5.17 输入一个十进制整数,将其转换成二进制数、八进制数或十六进制数 (1)分析:模仿十进制整数转换成二进制数的方法(即“除2取余”),采用逐次“除n取余”法(n为2,8或16),即用n不断去除要转换的十进制数,直至商为0为止,将每次所得的余数逆序排列(以最后余数为最前位),即得到所转换的n进制数。 (2)创建应用程序的用户界面和设置对象属性

 列表框的名称为List1,其List属性设置了三个表项:二进制、八进制和十六进制,ItemData属性设置了相应的值:2,8和16 (3)编写程序代码 功能要求:用户在文本框Text1中输入要转换的十进制数,选择转换进制,单击“转换”按钮(Command1)后,则在文本框Text2中输出转换结果。 “换码表”(Ch变量)的作用 

Private Sub Command1_Click() '“转换”按钮单击事件过程 Dim y As String, x As Long, s As Integer Dim Ch As String, n As Integer Ch = "0123456789ABCDEF" '换码表 If List1.ListIndex = -1 Then n = 2 '未选,则以二进制转换 Else n = List1.ItemData(List1.ListIndex) End If y = " " :x = Val(Text1.Text) If x = 0 Then Text2.Text = "" Exit Sub Do While x > 0 s = x Mod n '取余数 x = Int(x / n) '求商 y = Mid(Ch, s + 1, 1) + y '换码,反序加入 Loop Text2.Text = y End Sub Private Sub Command2_Click() '结束 Unload Me End Sub 示例:(142)10 = (8E)16

例5.18 把一个正整数写成若干个素数相乘的形式 解题的步骤;程序代码: 例如: 10=2*5 24=2*2*2*3 76=2*2*19 例5.18 把一个正整数写成若干个素数相乘的形式 例如: 10=2*5 24=2*2*2*3 76=2*2*19 解题的步骤;程序代码: Private Sub Form_Load() Show s = InputBox("请输入一个正整数") x = Val(s) :Print Print x; "="; For i = 2 To x Do While (x Mod i = 0) '求相同因子 x = x / i Print i; If x <> 1 Then Print "*"; Loop Next i End Sub 示例:20 = 2*2*5

Private Sub Command1_Click() If Option1.Value Then Text1.FontName = "宋体" Else Text1.FontName = "幼圆" End If If Option3.Value Then Text1.FontSize = 16 Text1.FontSize = 20 If Option5.Value Then Text1.ForeColor = RGB(0, 0, 255) Text1.ForeColor = RGB(255, 0, 0) End Sub

滚动条控件可以识别10个事件,其中最常用的是Scroll和Change事件 3. 事件 滚动条控件可以识别10个事件,其中最常用的是Scroll和Change事件 (1)Scroll事件:当用鼠标拖动滚动块时,即触发Scroll事件 (2)Change事件:当改变Value属性值时,即触发Change事件 当释放滚动块、单击滚动条内空白处或滚动箭头时,Change事件就会发生。

说明:根据调色原理,基本颜色有红、绿、蓝三种,选择这三种颜色的不同比例,可以合成所需要的任意颜色 (1)创建应用程序的用户界面和设置对象属性 三个水平滚动条名称从上至下分别为HScroll1、HScroll2、HScroll3 其Max属性均设置为255,Min属性均设置为0, SmallChange属性设置为1,LargeChange属性设置为10,Value设置为0。 显示合成颜色的标签名为Label1

(2)编写程序代码 功能要求:通过操作(单击或拖动)滚动条,直接修改RGB设置,从而得到标签背景所需的颜色 Private Sub HScroll1_Change() Label1.BackColor = RGB(HScroll1.Value, _ HScroll2.Value, HScroll3.Value) End Sub Private Sub HScroll2_Change() Private Sub HScroll3_Change()