Microsoft Word - 正文.doc

Similar documents
<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7>

2010年3月计算机等级考试四级网络工程师笔试

试卷代号 : 座位号 OJ 中央广播电视大学 学年度第一学期 " 开放专科 " 期末考试 Visual Basic 程序设计试题 题号 一 二 三 四 五 总分 分数 I I I I I I I 2011 年 1 月 得分 评卷人 I I I 题 { 每小题

Microsoft Word - VB全文.doc

四川省普通高等学校

untitled

Microsoft Word Visual_Basic程序设计上机实践教程正文.doc

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

Microsoft Word - 小心翼翼的二十一點N.doc

Microsoft PowerPoint - VB14.ppt

VB程序设计教程

TC35短信发送程序设计

Microsoft Word - ch05.doc

PowerPoint Presentation

Microsoft Word - 第3章.doc

2

Visual Basic D 3D

《C语言程序设计》教材习题参考答案

1. 要退出 Do---Loop 循环, 可使用的语句是 ( ) 语句 A. Exit B. Exit For C. Exit Do D. End Do 5. 有程序代码如下 : Text1. Text=" 欢迎学习 VB!" 则 T e x t 1, Text, 和 " 欢迎学习 VB!" 分别代

Microsoft PowerPoint - OPVB1基本VB.ppt

2009年3月二级VB语言笔试真题

提示 : (1) 程序运行时单击两次鼠标, 观察输出结果 ; (2) 将输出内容修改为 我的第一个 VB 程序 ; (3) 尝试改变输出文本的颜色 上机要求 : (1) 每题创建一个 VB 工程, 并在窗体 (Form1) 上设计界面, 在相关事件过程中编写程序 ; (2) 保存并运行应用程序 ;

Microsoft Word - 專題製作研究報告書.doc

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ

4. 有程序代码如下 : Text!' Text= "Visual Basic" 则 Te xtl ~ Te xt, 和 " V i s ua l Basi c " 分别代表 ( ) A. 对象, 值, 属性 B. 对象, 方法, 属性 C. 对象, 属性, 值专 D. 属性, 对象, 值 5. 要

Excel VBA Excel Visual Basic for Application

穨文件1

untitled

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

《计算概论》课程 第十九讲 C 程序设计语言应用

ThreeDtunnel.doc

投稿類別:電子工程類

林子雨《C语言程序设计》讲义PPT

Visual Basic AD/DA Visual Basic 2

VB控件教程大全

Microsoft Word - 第3章.doc

2

untitled

Microsoft Word - Vcj05.doc

林子雨《C语言程序设计》讲义PPT

渝府发〔2007〕129号

求出所有的正整数 n 使得 20n + 2 能整除 2003n n 20n n n 20n n 求所有的正整数对 (x, y), 满足 x y = y x y (x, y) x y = y x y. (x, y) x y =

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

第5章修改稿



<4D F736F F D20B8BDBCFE3220C9EEDBDACAD0C9FAC3FCBDA1BFB5B2FAD2B5B7A2D5B9B9E6BBAEA3A A1AA C4EAA3A92E646F63>

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

内容简介 本书是根据教育部高等学校计算机科学与技术教学指导委员会关于 计算机程序设计基础课程教学基本要求 编写而成的, 是与 VisualBasic 程序设计 ( 段昌敏主编, 科学出版社 ) 配套的实训教材 为配合主教材的章节顺序和知识点, 本书的第一部分包含 13 个配套实验, 实验内容具有很强

Microsoft PowerPoint - Chapter5

内容简介 本书是 Visual Basic 程序设计 ( 科学出版社出版, 范通让 王学军主编 ) 的配套实训教材, 由两部分组成 第一部分是实训指导, 共 15 个实训项目, 每个实训项目均指出了本部分需掌握的重点内容, 并给出了理论知识要点 实训步骤及程序代码, 使学生能逐步了解 Visual

5. 用于管理 Visual Basic 模块或文件类的窗口是, 用于临时输出程序或调试程序的 窗口是, 描述对象属性的窗口是 6.Visual Basic 6.0 的 3 种工作模式分别是 和 7. 工程文件的扩展名是, 窗体文件的扩展名是 8.Visual Basic 窗体设计器的主要功能是 9

期中考试试题讲解


國家圖書館典藏電子全文


5. 要在窗体上显示 " 欢迎您! ", 使用的语句是 ( ) A.Form.caption=" 欢迎您! " C. Form1. print" 欢迎合! " B. Forml. caption= " 欢迎您!" D.Form.print " 欢迎您!" 6. 关于语句行, 下列说法正确的是 ( A

﹙表11﹚學習領域課程計畫

3 Driver do Microsoft Access (*.mdb) hisdata IFIX 1.4

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

<4D F736F F D D382043D3EFD1D4B3CCD0F2C9E8BCC6D5FDCEC42E646F63>

untitled

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

通用可视化开发语言实习指导书.doc

Microsoft Word - 扉页.doc


内容简介本书是 Visual Basic 程序设计 ( 曲宏山 饶拱维主编, 科学出版社 ) 或其他同类 Visual Basic 程序设计教材配套使用的上机实验指导用书, 是编者多年教学和软件开发实践经验的总结 全书共 14 个实验, 在每个实验前都列出了相关章节的知识点, 以方便读者对所学内容加

Microsoft Word - 实验3.doc

untitled

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

2009年3月二级VB语言笔试真题

科学计算的语言-FORTRAN95

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

《C语言程序设计》教材习题参考答案

Microsoft PowerPoint - VB3

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

Python 开发向导.1 Python 条件判断 条件语句是指根据条件表达式的不同计算结果, 使程序流转到不同的代码块 Python 中的条件语句是 if 语句和 if-else 语句.1.1 if 条件语句 if 语句用于判断某个条件是否成立, 如果成立, 则执行语句内的程序, 否则跳过 if

1








2001 4, , % GDP % % 15.6% 13.9% 80,000 70,000 60,000 50,000 40,000 30

2001 4, , % GDP % % 15.6% 75,000 60, % 50,920 58,190 67,290 35% 28%

数学分析(I)短课程 [Part 2] 4mm 自然数、整数和有理数

第一章三角函数 1.3 三角函数的诱导公式 A 组 ( ) 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角, 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C 2 ( 中诱导公式 ) ( ) B. cos(

Microsoft Word - 扉页

新时期共青团工作实务全书(八十六)

C#程序设计实验

Microsoft PowerPoint - VB5

扉页

启动 Visual Basic 系统, 创建一个 Form1 窗体 在该窗体上画一个图象框控件, 通过其属性窗口将名称设为 Image1, 通过其 Picture 属性将 pic1.jpg 装入图片框,Stretch 属性设为 True 画二个命令按钮控件, 通过其属性窗口将名称分别设为 Comma

多層次傳銷與獎金系統

IsPostBack 2

Microsoft PowerPoint - 07 派生数据类型

Transcription:

第 5 章循环结构程序设计 一 实验目的 (1) 掌握 For 语句的使用 (2) 掌握 Do While/Until Loop 与 Do Loop While/Until 两种循环语句的使用 (3) 加深理解循环的概念, 掌握循环的规则及其执行过程 (4) 掌握多重循环的规则和程序设计方法 (5) 学会如何控制循环条件, 防止死循环或不循环 二 相关知识在指定条件下多次重复执行一组相同的语句可以通过循环来实现 Visual Basic 提供了下面几种形式的循环语句 : 1.Do Loop 循环语句 Do While/Until< 条件 > Do 语句块语句块 [Exit Do] 或 [Exit Do] 语句块语句块 Loop Loop While/Until< 条件 > 2.FOR 循环语句 For 循环变量 = 初值 To 终值 [Step 步长 ] 语句块 [Exit For] 语句块 Next 循环变量 3. 循环嵌套的注意事项内循环和外循环的变量不能同名 ; 外循环必须完全包含内循环, 不能交叉 ; 循环的转移遵循 允许循环内转移, 允许转出, 禁止转入 的原则 4. 列表框控件列表框控件显示一个项目列表, 让用户从其中选择一项或多项 列表框最主要的特点只能从其中选择, 而不能直接写入或修改其中的内容, 因此, 它从现有选项快速选择的好工具 列表框的 AddItem 方法用于添加列表框中的项目 ;RemoveItem 方法用于删除列表框中的项目 通过查看 ListIndex 属性可以取得用户选中的列表框项目的索引 ; 对 List ListCount

第 5 章循环结构程序设计 35 和 ListIndex 属性进行设置则可以对列表框中的项目进行操作 5. 组合框控件组合框文本框和列表框组合而成的控件, 它有三种不同的类型, 可以通过组合框的 Style 属性设置 组合框输入控件中使用相当广泛的一种, 它比文本框规范, 比列表框灵活而节省空间, 所以使用组合框规范内容的输入一个好的选择 三 实验内容实例 1 求从键盘输入的自然数 n 的阶乘 程序运行时分别输入 5 15, 观察结果 流程如图 5-1 所示 开始 输入 n s=1 i=1 i<=n s = s * i i = i + 1 输出阶乘结果 s 结束图 5-1 实例 1 流程图程序代码如下 : Private Sub Form_Click() Dim s As Single,n As Integer,i As Integer n = Val(InputBox(" 输入自然数 n"," 求 n 的阶乘 ",0)) s = l i = 1 Do While i<=n s = s * i i = i + 1

36 Visual Basic 语言程序设计实验教程 Loop Print "n = ";n,n;"!=";s 程序解读 : 在该程序中,s 用来存放累乘积的结果, 因此在初始化时 s=1;i 控制循环的循环变量 ;i<=n 循环条件 ;s =s*i,i= i+1 循环体 ; 因为循环结构的关键字 While, 所以当 i<=n 条件满足时, 执行循环体, 当 i>n 时, 退出循环, 执行后继语句输出结果 如果将程序中的 Do While 改成 Do Until, 程序的其他地方应该做怎样的修改呢? 请自己完成 实例 2 计算 e, 要求其误差小于 0.00001, 公式如下 : 分析 : 该实例涉及两个问题 1 1 1 1 e= 1+ + + + + + n! 2! 3! n! (1) 用循环结构求级数和的问题 求级数和的项数和精度都有限的, 则有可能 1 会造成溢出或死循环 这道题使用精度控制循环 因为事先我们不知道要循环多少次 n! 才会小于 0.00001, 所以循环语句只能选择用于人为约束条件控制循环的 Do Loop 语句 (2) 累加与连乘 累加在原有和的基础上再增加一个数, 如 s=s+i 连乘则在原有积的基础上再乘以一个数, 如 p=p*i 为了保证程序运行能得到正确的结果, 一般在循环体外对存放累加和的变量清零, 对存放连乘的变量置 1 流程图如图 5-2 所示, 程序运行结果如图 5-3 所示 开始 e=0:i=0:n=1:t=1 t > 10^-5 e = e+t i =i+1 n = n * i t = 1 / n 输出结果 结束 图 5-2 实例 2 流程图

第 5 章循环结构程序设计 37 图 5-3 程序运行界面操作步骤 : (1) 新建一个标准 EXE 工程 (2) 在窗体上放置一个标签和一个命令按钮 (3) 双击命令按钮, 进入代码编辑窗口, 编写程序代码 Private Sub Command1_Click() Dim i%, n&, t!, e! e = 0: i = 0: n = 1: t = 1 Do While t > 0.00001 e = e + t i = i + 1 n = n * i t = 1 / n Loop Label1.Caption = Label1.Caption & e & "( 计算了 " & i & " 项的和 )" Private Sub Form_Load() Command1.Caption = " 计算 e 的近似值 " Label1.Caption = "e 的近似值 =" (4) 运行调试程序, 直到满意为止 实例 3 在文本框中输入字符串, 统计其中数字字符出现的个数 分析 : 本题需要对输入的字符串的每个字符逐个进行判断, 因此判断语句需要重复执行, 这就需要用循环结构来控制 循环体的内容从字符串中取一个字符, 再判断该字符的类型 ; 循环次数已知的, 就字符串中的字符个数, 因此使用 For Next 循环语句 流程如图 5-4 所示, 程序运行结果如图 5-5 所示 代码如下 : private Sub Command1_Click() Dim c As String, c1 As String, p As Integer, n As Integer c = Text1.Text For p = 1 To Len(c) c1 = Mid(c, p, 1)

38 Visual Basic 语言程序设计实验教程 If c1 >= "0" And c1 <= "9" Then n = n + 1 Next p Label1.Caption = " 数字字符的个数为 :" & Str(n) 开始 c=text1.text p=1 p<=len(c) c1=mid(c,p,1) c1 数字字符 n=n+1 p=p+1 显示结果 结束 图 5-4 实例 3 流程图 图 5-5 实例 3 程序运行界面 实例 4 单击窗体, 在窗体上画出如图 5-6 所示由星号组成的三角形 ( 三角形必须由循环语句计算生成 )

第 5 章循环结构程序设计 39 图 5-6 实例 4 程序运行界面分析 : 本题需要输出 6 行内容, 重复 6 次在每行输出空格和星号, 所以控制结构用 For Next 循环语句控制 循环次数与总行数相等, 为 6 次 ; 循环体部分就每行输出空格和星号, 空格个数与该行的行号之间的关系为 6- 行号, 星号个数与该行的行号之间的关系为 2* 行号 -1 程序流程如图 5-7 所示 开始 i = 1 i<=6 打印每行所需个数的星 结束 图 5-7 实例 4 流程图代码如下 : Private Sub Form_Click() Dim i As Integer For i = 1 To 6 Print Tab(16 - i); String(2*i-1, "*") Next i 实例 5 将可打印的 ASCII 码制成表格输出, 使每个字符与它的编码值对应起来, 每行打印 7 个字符 分析 : 在 ASCII 码中, 只有 ( 空格 ) 到 ~ 可打印的字符, 其余为不可打印的控制字符 可打印的字符的编码值为 32~126, 可通过 Chr() 函数将编码值转换成对应的字符输出

40 Visual Basic 语言程序设计实验教程 程序流程如图 5-8 所示 开始 asc=32 asc<=126 在图片框中打印字符及其 ASCII 值 i=i+1 结束 i=7 换行 asc=asc+1 图 5-8 实例 5 流程图操作步骤 : (1) 新建一个标准 EXE 工程 (2) 在窗体上画一个图片框, 并使图片框与窗体几乎一样大 (3) 双击图片框, 进入代码编辑窗口, 编写图片框的单击事件驱动程序, 其代码如下 : Private Sub Picture1_Click() Dim Asc As Integer, i As Integer Picture1.Print " ASCII 码对照表 " For Asc = 32 To 126 Picture1.Print Tab(7 * i + 2); Chr(Asc); "="; Asc; i = i + 1 If i = 7 Then i = 0: Picture1.Print Next Private Sub Form_Load() Picture1.BackColor = &HFFFFFF (4) 运行调试程序, 直到满意为止

第 5 章循环结构程序设计 41 程序解读 : 在该程序中, 循环次数确定的, 就将 ASCII 代码为 32~126 的字符逐个输出, 因此使用 For Next 循环来控制 ; 循环体中三条语句的作用分别 :Picture1.Print 用于输出字符, 其中的 Tab 用于指定输出位置, 变量 i 的作用记录在一行中已经输出的字符个数,If 语句用于判断在一行中已经输出了 7 个字符, 如果输出了 7 个字符, 就换行输出 程序运行界面如图 5-9 所示 图 5-9 实例 5 程序运行界面 实例 6 在窗体上画一个标签和一个列表框 程序运行后, 在列表框中添加若干列表项 当双击列表框中的某个项目时, 在标签 Label1 中显示选中的项目, 如图 5-10 所示 图 5-10 实例 6 程序运行图分析 : 本题涉及到对列表框的使用 列表框的重要属性有存放列表框中各项内容的 List(), 存放选中项序号的 ListIndex, 存放选中内容的 Text, 存放列表框中总项数的 ListCount 列表框的重要方法有添加项的 AddItem, 删除项的 RemoveItem, 删除所有内容的 Clear 操作步骤 : (1) 新建一个标准 EXE 工程 (2) 在窗体上画一个标签和一个列表框 (3) 进入代码编辑窗口, 编写程序代码 Private Sub Form_Load() List1.AddItem " 北京 " List1.AddItem " 上海 " List1.AddItem " 河北 "

42 Visual Basic 语言程序设计实验教程 Private Sub List1_Click() Label1.Caption = List1.Text (4) 运行调试程序, 直到满意为止 四 实验程序设计与调试 ( 一 ) 看图写程序 1. 统计资料显示,2005 年日本 GDP 为 4,7528 亿美元, 年增长率为 2.8% ; 中国 GDP 为 2,2257 亿美元, 年增长率为 9.8% 编程计算, 若年增长率保持不变, 多少年后中国 GDP 将超过日本? 流程如图 5-11 所示, 请写出相应代码, 并上机调试运行 程序运行界面如图 5-12 所示 开始 Jp=47528:Cn=22257:Y=0 Jp=Jp*1.028 Cn=Cn*1.098 Y=Y+1 Cn<=Jp 在标签中显示结果 结束 图 5-11 看图写程序第 1 题流程图 图 5-12 看图写程序第 1 题程序运行界面

第 5 章循环结构程序设计 43 2. 有一堆苹果, 个数在 50 至 500 之间, 按 5 人均分余 4 个, 按 6 人均分余 3 个, 按 7 人均分余 2 个, 用穷举法设计程序, 输出苹果有多少个? 共有几种分法? 流程如图 5-13 所示, 请写出相应程序, 并上机调试 程序运行界面如图 5-14 所示 开始 n=0 k=50 k<=500 k mod 5=4 and k mod 6=3 and k mod 7=2 n=n+1 print k k=k+1 输出 n 结束 图 5-13 看图写程序第 2 题流程图 图 5-14 看图写程序第 2 题程序运行界面 3. 在窗体上已经建立了两个文本框 (Text1 及 Text2) 和一个命令按钮 (Command1), 用户在文本框 Text1 中输入文本, 单击命令按钮后, 将文本框 Text1 中的非英文字母替换成 *, 并按输入顺序显示在文本框 Text2 中 例如, 输入 12aA3b4B5, 在文本框 Text2

44 Visual Basic 语言程序设计实验教程 中显示为 **aa*b*b* 流程如图 5-15 所示, 请写出相应程序, 并上机调试 程序运行界面如图 5-16 所示 开始 s=text1.text t=" " k=1 k<=len(s) c=mid(s, k, 1) c 非英文字符 c="*" t=t & c k=k+1 Text2.Text=t 结束 图 5-15 看图写程序第 3 题程流程图 图 5-16 看图写程序第 3 题程序运行界面 ( 二 ) 根据程序画流程图 1. 在文本框 Text1 中输入一个正整数 N, 单击 计算 命令按钮 Command1, 计算 1

第 5 章循环结构程序设计 45 到 N 所有自然数中的偶数 ( 不包括 0) 的乘积 :2 * 4 * 6 * * m (m<=n), 结果显示在标签 Label1 中 程序运行界面如图 5-17 所示, 请画出相应流程图 图 5-17 根据程序画流程图第 1 题程序运行界面 Private Sub Command1_Click() Dim fact As Double, k As Integer, n As Integer n = Val(Text1) fact = 1 For k = 2 To n Step 2 fact = fact * k Next k Label1.Caption = " 累乘结果 =" & fact 2. 单击窗体, 输出 100 到 500 之间的所有完全平方数, 并显示在窗体上, 要求每行打印 3 个数 ( 一个整数若另一个整数的平方, 则这个数就完全平方数, 例如 :400=20 2, 400 完全平方数 ) 程序运行界面如图 5-18 所示, 请画出相应流程图 图 5-18 根据程序画流程图第 2 题程序运行界面 Private Sub Form_Click() Dim i As Integer, k As Integer k = 0 Print " 100-500 的完全平方数有 :" For i = 100 To 500 If Sqr(i) = Int(Sqr(i)) Then Print i;

46 Visual Basic 语言程序设计实验教程 k = k + 1 If k Mod 3 = 0 Then Print End If Next i 3. 指定一个初始值, 从该数值开始 ( 包括该数值 ) 找出 100 个不能被 7 整除的自然数 要求通过文本框接收初始值, 找出的自然数显示在列表框中 程序运行界面如图 5-19 所示, 请画出相应流程图 图 5-19 根据程序画流程图第 3 题程序运行界面 Private Sub Command1_Click() Dim n As Integer, count As Integer n = Val(Text1) count = 0 Do While count < 100 If n Mod 7 = 0 Then List1.AddItem n count = count + 1 End If n = n + 1 Loop ( 三 ) 阅读分析程序 1. 执行下面的程序, 单击窗体后, 窗体上显示的内容 ( ) Private Sub Form_Click() For I = 0 To 10 Step -2

第 5 章循环结构程序设计 47 I = I + 2 Next Print I 2. 运行下面的程序后, 单击命令按钮 Command1, 则在标签框 Label1 中显示的结果 ( ) Private Sub Command1_Click ( ) X = "BASIC" L = Len (X ) For k= 1 To L V = Mid ( X, k, 1 ) W = V + W + "-" Next k Label1.Caption = W 3. 运行程序后, 单击窗体, 则在窗体上显示的结果为 ( ) Private Sub Form_Click() For x = 1 To 4 num = Int(Rnd + x) Select Case num Case 4 y = "W" Case 3 y = "X" Case 2 y = "Y" Case 1 y = "Z" End Select Next x Print y ( 四 ) 程序填空 1. 重庆市 2004 年 GDP 为 2650 亿元, 比上年增长 12% 在增长率保持不变的情况下, 计算重庆市 GDP 达到或超过 5000 亿元的年份 程序流程如图 5-20 所示, 程序运行界面如图 5-21 所示, 请将程序填充完整

48 Visual Basic 语言程序设计实验教程 开始 GDP=2650?? Y=Y+1? 在标签中显示结果 结束 图 5-20 程序填空第 1 题流程图 图 5-21 程序填空第 1 题程序运行界面 Private Sub Command1_Click() Dim GDP As Single, Y As Integer GDP = 2650 Do Y = Y + 1 Loop While Label1.Caption = Str(Y) + " 年 GDP 达到 " + Str(GDP) + " 亿元 " Label1.Caption = Str(Y) + " 年 GDP 达到 " + Str(GDP) + " 亿元 "

第 5 章循环结构程序设计 49 2. 在窗体上已经建立两个文本框 (Text1 及 Text2) 和一个命令按钮 (Command1), 用户在文本框 Text1 中输入文本, 单击命令按钮后, 从文本框 Text1 中取出英文字母, 并按输入顺序显示在文本框 Text2 中 例如, 输入 12aA3b4B5, 在文本框 Text2 中显示为 aabb 程序运行界面如图 5-22 所示, 流程图如图 5-23 所示, 请通过上机调试来完善下列程序代码 图 5-22 程序填空第 2 题运行结果 开始 s = Trim(? ) k=1 k<=? Mid(s, k, 1)?? k=k+1 显示结果 结束 Private Sub Command1_Click() 图 5-23 程序填空第 2 题流程图

50 Visual Basic 语言程序设计实验教程 Dim s As String, y As String s = Trim( ) y = "" For k = 1 To x = Mid(s, k, 1) If Then y = End If Next Text2.Text = y 3. 下述程序能够验证一个输入的数为素数 ( 素数只能被 1 和自身整除的自然数 ), 程序流程图如图 5-24 所示, 程序运行界面如图 5-25 所示, 请通过上机调试完善下列程序代码 开始 f = True 输入 n i=2 i<=? n Mod i =? i=i+1 f=false 素数 f=? 不素数 结束 图 5-24 程序填空第 3 题流程图

第 5 章循环结构程序设计 51 图 5-25 程序填空第 3 题程序运行界面 Private Sub Command1_Click() Dim n As Integer, i As Integer, f As Boolean f = True n = Val(InputBox(" 请输入一个正整数 " + vbcrlf + "( 大于 1)", " 素数 ", 2)) For i = 2 To If n Mod i = Then f = False Exit For End If Next i If f = Then Print n; " 素数 " Else Print n; " 不素数 " ( 五 ) 程序改错 1. 以下程序的功能将用户键盘输入的十进制整数转换成二进制数, 并在窗体上输出, 请将给定程序中不正确的地方进行修改, 使之能完成预定功能 Private Sub Form_Click() Dim B As Long, D As Boolean 'Error1 D = Val(InputBox(" 请输入一个十进制数 ", " 输入 ")) Do While D >= 0 'Error2 B = B & D / 2 'Error3 D = D / 2 'Error4 Loop Print B 要求 : 根据上述程序代码改错, 改错时不得增加和删除语句 2. 验证级数 : 1 1 1 1 1 1+ + + + + + = 2 1 2 3 4 n 2 2 2 2 2

52 Visual Basic 语言程序设计实验教程 在文本框 Text1 中输入 n, 单击 计算 命令按钮 Command1 计算级数的值, 计算所得级数值与 2 之差的绝对值显示在标签框 Label1 中 Private Sub Command1_Click ( ) n = Asc ( Text1.Text ) 'Error1 S = 1 For k = 0 To n 'Error2 V = k ^ 2 'Error3 S = 1 / S + 1 / V 'Error4 Next k D = 2-Abs (S) 'Error5 Label1.Caption = D 要求 : 根据上述程序代码改错, 改错时, 不得增加和删除语句 ( 六 ) 程序设计 1. 在文本框 Text1 和 Text2 中分别输入任意正整数 N1 和 N2(N1<N2), 然后单击命令按钮 Command1, 计算出 N1 到 N2 之间所有数 ( 不包括 N1 和 N2) 的累加和, 结果在标签 Label1 中显示, 如图 5-26 所示 要求 : 画出流程图, 并设计程序上机调试 图 5-26 程序设计第 1 题程序运行界面 2. 单击窗体, 在窗体上打印出如图 5-27 所示的内容 要求 : 画出流程图, 并用循环结构设计出程序再上机调试 图 5-27 程序设计第 2 题程序运行界面

第 5 章循环结构程序设计 53 3. 在窗体的单击事件中求级数 S=1/(1+4)+1/(1+2 4)+1/(1+3 4)+ +1/(1+n 4)+ 的前 100 项之和, 将结果显示在窗体上, 如图 5-28 所示 要求 : 画出流程图, 并设计出程序再上机调试 图 5-28 程序设计第 3 题程序运行界面 ( 七 ) 高级应用 1. 如果一个三位整数等于它的各位数的立方和, 则此数称为 水仙花数, 如 153=1 3 +5 3 +3 3 编写程序求所有的水仙花数, 将水仙花数显示在列表框中, 如图 5-29 所示 要求 : 分别用单层循环结构和多层循环结构完成此题的程序设计 图 5-29 高级应用第 1 题程序运行界面 2. 凡满足 x 2 +y 2 =z 2 的正整数数组 (x,y,z) 称为勾股数组 ( 如 3,4,5) 请找出任意一个正整数 n( 通过 InputBox 函数输入 ) 以内的所有勾股数组, 把这些数组显示在列表框中, 如图 5-30 所示 图 5-30 高级应用第 2 题程序运行界面 3. 设计程序, 在窗体上建立一个列表框 List1 和一个 显示 命令按钮 Command1 列表框高 (Height) 为 1770, 宽 (Width) 为 1300, 字体为 黑体, 字号为 14, 列表框中

54 Visual Basic 语言程序设计实验教程 已有 5 个列表项, 依次为 表项 1 至 表项 5 要求程序运行后, 可以通过多次单击选中多个列表项 单击 显示 按钮, 在窗体上输出所有选中的列表项, 如图 5-31 所示 图 5-31 高级应用第 3 题程序运行界面 4. 用迭代法求 x = a 求平方根的迭代公式为: 1 a x n+ 1= x n + 2 x n 要求 : 通过 InputBox 函数输入 a 值, 并以 a 作为 x 的初值 要求前后两次求出的 x 的差的绝对值小于 10-5, 如图 5-32 所示 图 5-32 高级应用第 4 题程序运行界面 五 实验思考题 1. 设计循环结构的三要素什么? 2. 循环结构对条件的控制分为哪两种情况? 什么时候使用 Do Loop 循环语句, 什么时候使用 For Next 循环语句? 3. 在使用 Do Loop 循环语句时, 关键字 While 和 Until 的区别什么? 4. 在 For Next 循环中, 试分析循环初值 终值和步长的关系 5. 在编写循环体时, 哪些语句需要放在循环体内? 哪些变量的初值需要在循环体外赋值? 6.Exit Do 语句的作用什么? 它可以在哪些循环中使用?