




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章循环结构程序设计 1 本章内容 循环结构用For Next语句实现循环结构用DoWhile Loop语句实现循环结构嵌套的循环结构 2 循环结构 3 用For Next语句实现循环结构 语句形式 For循环变量 初值to终值 Step步长 循环体 ExitFor 循环体 Next循环变量 4 语句说明 循环变量必须为数值型 当步长为正时 初值小于终值 反之初值大于终值 步长缺省时为1 循环体由一条或多条语句组成 执行到ExitFor语句时退出循环体 执行For语句的下一语句 循环次数 int为取整 用For Next语句实现循环结构 5 用For Next语句实现循环结构 语句执行过程 6 用For Next语句实现循环结构 实例4 1 求1 2 3 n的和 窗体界面如图4 2 7 实例4 1代码编写分析 求1 2 3 100的和 描述如下 Sum Sum 1Sum Sum 2Sum Sum 3 Sum Sum 100 Sum Sum jj 1 2 100 Fori 1tonSum Sum jNexti Fori 1tonSum Sum iNexti 8 实例4 1代码编写 Fori 1To100step2sum sum iNexti Fori 1To50sum sum 2 i 1Nexti Fori 2To100step2sum sum iNexti 求 到 间的奇数之和 求 到 间的奇数之和 求 到 间的偶数之和 9 实例4 1 界面设计 fratopic fraresult labtopic labn txtn txtsum cmdcal cmdquit 10 实例4 1代码编写 计算 按钮完整代码 PrivateSubcmdcal Click DimiAsInteger sumAsLong nAsLongn Val txtn Text Fori 1Tonsum sum iNextitxtsum Text sumEndSub 11 实例4 1代码编写 计算结果 框架中的标签 labn 内容随txtn输入值变化PrivateSubtxtn Change labn Caption 1 2 3 txtn TextEndSub问题 修改程序 1 单击 计算 按钮时 检测n的值 如果为空或不合法 弹出提示对话框 12 实例4 1代码编写 PrivateSubcmdcal Click DimiAsInteger sumAsLong nAsLongIftxtn Text ThenMsgBox 请输入一个正整数 vbOKOnly 提示信息 txtn SetFocusElsen Val txtn Text Fori 1Tonsum sum iNextitxtsum Text sumEndifEndSub PrivateSubcmdcal Click DimiAsInteger sumAsLong nAsLongn Val txtn Text Fori 1Tonsum sum iNextitxtsum Text sumEndSub 13 实例4 1代码编写 问题 修改程序 2 计算完毕后 计算 按钮的标题改为 清空 同时两个文本框的内容清空如何检测按钮的状态是需要显示 计算 还是 清空 解决方法 设置一个布尔变量true对应 计算 false对应 清空 14 例 1 2 3 100 PrivateSubcmdCal Click DimFacAsIntegerDimiAsIntegerFac 1Fori 1To100Fac Fac iNextilblSum Caption FacEndSub 15 1 2 3 15 PrivateSubcmdCal Click DimFacAslong sumAslongDimiAsIntegerFac 1Fori 1To15Fac Fac isum sum FacNextilblSum Caption sumEndSub 分析程序运行结果 16 用While语句实现循环 语句形式 While条件 循环体 Wend语句说明 条件 一般为条件表达式 结果为布尔变量True或False 条件 用于控制 循环体 是否执行 多用于循环次数不定的情况 17 用While语句实现循环 语句执行过程 18 用While语句改写实例4 1 计算 按钮完整代码 PrivateSubcmdcal Click DimiAsIntegerDimsumAsLong nAsLongn Val txtn Text Fori 1Tonsum sum iNextitxtsum Text sumEndSub i 1Whilei sum sum ii i 1wend 19 用While语句实现循环 实例4 2 实现1 2 3 n的操作 当阶乘值 5000时结束操作 txtcyc txtfac 20 实例4 2代码编写 PrivateSubcmdcal Click DimiAsInteger facAsLongi 1 fac 1Whilefac 5000fac fac ii i 1txtcyc Text itxtfac Text facWendEndSub 初始化语句是否可以去掉 21 实例4 2代码编写 手动计算 按钮 单步演示累乘结果 需要窗体级变量保留成绩 及点击次数PrivateSubCmdcalh Click Ifj 0Thenfact 1Iffact 5000Thenj j 1fact fact jtxtcyc Text jtxtfac Text factElseCmdcalh Enabled FalseEndIfEndSub 该语句的作用 22 用DO语句实现循环 DoWhile Loop语句DoWhile条件循环体语句LoopDo LoopWhile语句Do循环体语句LoopWhile条件 先执行 后判断至少执行一次循环体 先判断 后执行有可能一次也不执行 23 用DO语句实现循环 24 用DoWhile Loop语句改写实例4 1 计算 按钮完整代码 PrivateSubcmdcal Click DimiAsIntegerDimsumAsLong nAsLongn Val txtn Text Fori 1Tonsum sum iNextitxtsum Text sumEndSub i 1DoWhilei sum sum ii i 1Loop 25 执行过程 No Yes sum sum i i 100 i i 1 26 用Do LoopWhile语句改写实例4 1 计算 按钮完整代码 PrivateSubcmdcal Click DimiAsIntegerDimsumAsLong nAsLongn Val txtn Text Fori 1Tonsum sum iNextitxtsum Text sumEndSub i 1Dosum sum ii i 1LoopWhilei 100 27 补充例题1 产生m个1 100之间的随机数 求出其中的最大值 最小值和平均值 窗体设计界面和运行界面如图 txtnum 28 补充例题1代码分析 No Yes 产生随机数r Int Rnd 100 1 n m n n 1 m val txtnum text R与max min进行比较 和sum累加 输出结果 29 代码 PrivateSubCommand1 Click DimmAsInteger nAsInteger rAsInteger iAsInteger maxAsInteger minAsIntegerDimsumAsSingle aveAsSinglelblrnd Caption m Val txtnum Text r Int Rnd 100 1max rmin rn 1sum rlblrnd Caption Str r 30 代码 Dor Int Rnd 100 1Ifr maxThenmax rElseIfr minThenmin rEndIfsum sum rlblrnd Caption lblrnd Caption Str r n n 1LoopWhilen m 31 代码 ave sum n 求平均值lblmax Caption max 标签显示最大值lblmin Caption min 标签显示最小值lblave Caption ave 标签显示平均值EndSub 32 用DO语句实现循环 实例4 3 产生m个10 99之间的随机整数 求出其中的素数 并求出素数中的最大值 最小值和平均值 窗体设计界面 33 算法 产生随机数rr Int Rnd 90 10判断r是否素数素数最大 最小值 平均 34 判断r是否素数 Fori 2Tor 1IfrModi 0ThenExitForNextiIfi rThenEndif lblprime Caption lblprime Caption Str r r是素数 35 素数最大 最小值 平均 Ifr maxThenmax rElseIfr minThenmin rEndIfsum sum r 36 No Yes 产生随机数r Int Rnd 90 10 n m n n 1 m val txtnum text 与max min进行比较 和sum累加 输出结果 Yes 是否是素数 37 初始化部分 lblrnd Caption 清空显示随机数的标签lblprime Caption 清空显示随机数素数的标签m Val txtnum Text max 10 最大值赋值两位整数中的最小值min 99 最小值赋值两位整数中的最大值n 0 计数变量赋初值sum 0 累加求和变量赋初值 38 输出部分 ave sum p 求平均值lblmax Caption max 标签显示最大值lblmin Caption min 标签显示最小值lblave Caption ave 标签显示平均值 39 循环的嵌套 PrivateSubForm Activate DimiAsInteger jAsIntegerFori 1To3PrintTab 20 Forj 1To4 iPrintSpc 1 NextjForj 1To2 i 1Print NextjPrintNextiEndSub 40 Fori 2To1Step 1PrintTab 20 Forj 1To4 iPrintSpc 1 NextjForj 1To2 i 1Print NextjPrintNexti 41 问题 如果是n行图形 程序应如何修改 每行 输出的位置 奇数和偶数输出的图形有何不同 42 补充例题 例 请输入n值 编写程序输出下列图形 例如n 5 1234511234111231111211111 第1行 1个1 2 5第2行 2个1 2 4第3行 3个1 2 3 第5行 5个1 第1行 1个1 2 n第2行 2个1 2 n 1第3行 3个1 2 n 2 第n行 n个1 43 补充例题代码 PrivateSubForm Activate DimiAsInteger jAsIntegerFori 1To5Forj 1ToiPrint1 NextjForj 2To6 iPrintj NextjPrintNextiEndSub 44 实例4 4 第1行 1个1 2 5第2行 2个1 2 4第3行 3个1 2 3 第5行 5个1 第1行 1个1 2 n第2行 2个1 2 n 1第3行 3个1 2 n 2 第n行 n个1 第 行 个 2 n i 1 45 Yes 打印第i行 i n i i 1 打印1 打印2 n i 1 Forj 1ToiPrint1 Nextj Forj 2Ton i 1Printj Nextj 46 补充例题 译密码 字母翻译 按26个字母排列顺序向后移动n位 若移出了最后一个则移到字母a或A并顺序往后移例 今天是28号 a向后移动28位abcdefghijklmnopqrstuvwxyz 28 25 47 补充例题代码 Ifch a Andch z Thenasch Asc ch 97 1 在26个小写字母中的位置trap Chr asch n Mod26 97 1 求出按规则转换后的字符 48 补充例题 题目要求 输入一行数字 按相反的顺序输出 例如 输入 12345678 输出 87654321 难点 如何获得各位数字 49 补充例题代码 PrivateSublblout Click n Val txtin Text Whilen0r nMod10lblout Caption lblout Caption rn n 10WendEndSub 50 译码器 密码检测窗体设计 案例 译码器 51 译码器 密码检测窗体设计 添加窗体 工程 添加窗体密码框属性 PasswordChar 代码DimnAsInteger 定义n为窗体级变量 用于累计验证密码的次数PrivateSubcmdok Click Constpassword 061216 Constname santa n n 1Ifn 3Then 控制验证密码的次数 52 Iftxtname Text Ortxtpassword Text ThenMsgBox 必须输入姓名和密码 0 64 提示 ElseIftxtname Text nameAndtxtpassword Text passwordThenfrm1 Hidefrm2 ShowElseMsgBox 姓名或密码错误 0 48 警告 EndIfEndIfElseEndEndIfEndSub 53 译码器 译码器窗体设计 54 译码器 译码器窗体设计 函数Asc C 的功能是将字符转换成ASCII码值 如Asc A 的值65Chr 65 其功能是将ASCII码值转换成字符 如Chr 65 的值 A LTrim C 是去掉字符串左边的空格 如LTrim ABVC 的值为ABVCMid C N1 N2 是取字符子串 在C中从N1位开始向右取N2个字符 55 译码器 译码器窗体设计 约定 原文 文本框中的数字字符串每三位代表一个完整的信息 如一个字母 065表示字符 A 或一个空格 000表示空格 一个数字 033非字母或空格 表示数字33 字符串结束 56 译码器 译码 代码 n 1ori LTrim txtori Text 去掉 原文 文本框字符串右边的空格 赋值给变量oriorip Mid ori n 3 从字符串ori的第一个位置开始取3个字符 赋值给字符串变量oripWhileorip n n 3 确定下一次取字符的位置IfVal orip 0AndVal orip 255Then ASAII码的范围是0 255orip Ch
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教资科二考试题库及答案
- 苏大税法考试题库及答案
- 高中生物必修一试卷及答案
- 高中地理考试题库及答案
- 2025年电气工程师笔试题及答案
- 2025年护师类之主管护师综合提升模拟考试试卷附答案
- 量子计算技术及应用研究生入学考试试卷及答案2025年
- 2025年国际经济学理论的考试试卷及答案
- 2025年生物史上难题题库及答案
- 2025教师周转房合同书
- 医院一键式报警系统建设与实施
- 机关办公楼网络设备升级改造方案
- 心房颤动护理查房
- 部编版新教材道德与法治二年级上册《5. 这是我们班》教案
- 老旧小区改造知识课件
- GB/T 11239.1-2025光学和光子学手术显微镜第1部分:要求和试验方法
- 法律律师委托协议书模板
- 2024年安徽省泾县人民医院公开招聘护理工作人员试题带答案详解
- 2025年小学英语教材培训心得体会范文
- 2025年广西继续教育公需科目考试试题和答案
- 系统性风险压力测试框架-洞察阐释
评论
0/150
提交评论