版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、问题:计算10000个人的所得税:输入工资。如果工资少于2000,免收所得税。如果工资2000,所得税为5%。计算一个人的所得税的程序为:Private Sub Form_Click()Gz=InpueBox(请输入工资, 输入工资)Ifgz=2000 ThenElsesj = 0End If? 工资;gz;的所得税为;sjEnd Sub但要计算10000个人的所得税,如何实现呢?实际上就是中间的程序块重复10000次。即:对于 第次到第10000次 输入工资,计算所得税,输出结果 重复下一次如何实现一块程序重复n次呢?用程序的循环控制结构实现。程序的循环控制结构循环结构:实现一块程序重复执行
2、n次。VB实现循环结构的语句有种:(1) For-Next语句(2) While-Wend语句(3) Do-Loop语句For循环上例的程序:对于 第次到第10000次 输入工资,计算所得税,输出结果 重复下一次用For循环实现为:For n=1To10000 输入工资,计算所得税,输出结果 Next n1For循环的一般格式为:For 循环变量初值To终值Step 步长 循环体 Exit For Next 循环变量2循环的说明:l 循环(控制)变量:也叫“循环计数器”,用于控制循环次数。l 初值、终值:一般是整数,也可以是实数,实数会自动取整。可以是正数,也可以是负数。l 步长:循环变量每次
3、循环的增量。实数会取整。正数:递增循环;负数:递减循环;:死循环,故不能为;:加1循环,“Step 1”可以省略。(上面计算10000人所得税的程序省略了Step 1)l Exit For:满足一定条件时中途退出循环。l Next:循环结束语句,后面的循环变量必须与For语句中的循环变量一样。For与Next必须成对出现,且先有For、后有Next,缺一不可。l 循环体:每次重复执行的语句。循环体可以是一个语句,也可以是多个语句。甚至可以一个语句也没有(空循环)。例如:For n=1 To 10000Next n问题:空循环n次有没有用?有什么用?For 循环变量初值To终值Step 步长 循
4、环体 Next 循环变量3For循环的执行过程:(1) 把“初值”赋值给“循环变量”;(2) 检查“循环变量”是否超出“终值”;(3) 如果超出,退出For循环;(4) 如果没有超出,执行循环体;(5) 执行Next:循环变量加步长,返回(1)。例如:分析如下程序的执行过程,并写出结果:s=0For a=1 To 10 Step 2s=s+2*a Next a? s=; s, a=; a分析:执 行 过 程a=110, 执行s=s+2*a=0+2*1=2, a=a+2=1+2=3a=310, 执行s=s+2*a=2+2*3=8, a=a+2=3+2=5a=510, 执行s=s+2*a=8+2*
5、5=18, a=a+2=5+2=7a=710, 执行s=s+2*a=18+2*7=32, a=a+2=7+2=9a=910, 执行s=s+2*a=32+2*9=50, a=a+2=9+2=11A=1110, 退出循环程序的最后结果是:s=? a=?循环次数是: ? 次4For循环次数的计算方法:循环次数Int(终值初值)步长)即循环次数由初值、终值、步长3个因素确定。例:For x=10 To 20 Step 3Next x循环变量的有效变化为:x=10,13,16,19循环次数为:Int(20-10)/3)+1 = 4例:For x=10 To 1 Step -2 Next x循环变量的有效
6、变化为:x=10,8,6,4,2循环次数为:Int(1-10)/(-2)+1 = 5例3:For a=10 To 1 Step 2Next a循环次数为:A) 0次 B) 1次 C) 5次 D) 6次例4:For b=10 To 10 Step 2Next b循环次数为:A) 0次 B) 1次 C) 5次 D) 6次例5:For c=1 To 10 Step 0Next c循环次数为:?A) 1次 B) 10次 C) 100次 D) 无穷多次 (如何退出死循环?)5.循环变量的引用循环变量主要用来控制循环次数,但也可以被循环体引用。当循环变量被循环体引用时,称为“操作变量”,而不被引用的循环变
7、量称为“形式变量”。6For循环程序的一般结构 变量初始化 准备工作 for 循环体 计算处理Next输出结果 善后工作7For循环的典型程序(1) 求有规律数列的累加 语句公式为:s=s+新的项目 (如何理解?)s的初值一般为。例1:求 s=1+2+3+1000 s=0 准备工作 For i=1 To 1000 s=s+i 计算处理 Next i ? s=; s 善后工作评价:循环变量i被循环体引用,是“操作变量”。例2:求 s=12+32+52+992 Sum=0 For x=1 To 99 Step 2 Sum=Sum+x*x Next x ? Sum=; Sum评价:循环变量x被循环体
8、引用,是“操作变量”。(2) 求有规律数列的累乘 语句公式为:p=p*新的项目 (如何理解?)问题:p的初值能不能为,应为多少?例3:输入n,求n的阶乘P=n!=1*2*3*nDim n As Integer n=InputBox(请输入n)p=1 For k=1 To n p=p*k Next k ? p=; p评价:循环变量k被循环体引用,是“操作变量”。例4:输入10个任意整数,求偶数的平均值、奇数的平均值。设立变量s1代表偶数和,s2代表奇数和,n1代表偶数个数,n2代表奇数个数。 程序框架为:S1,s2,n1,n2初始化为For I=1 To 10输入一个整数x If x是偶数The
9、nx加入s1中n1累加 Elsex加入s2中n2累加 End IfNext I显示偶数的平均值显示奇数的平均值问题:(1)“x是偶数”如何表达?(2)“X加入s2中”,如何描述?(3)“N2累加”,如何描述?(4)“奇数、偶数平均值”如何求?例5:输入一个任意的正整数,验证是否素数。分析:设被验证的正整数为x。x为素数的条件为:除x和1以外,任何其他整数不能整除x,则x就是素数。只要有一个数能整除x,则x不是素数。相当于“一票否决”。验证方法:引入分母进行检验,设分母为n,n的范围是除x和1以外的所有整数。实际上,分母n的范围为2x-1。数学上证明,n的最佳范围是2x。证明过程为: 假设x是素
10、数(jg=1),用分母n作为循环变量, n从2到x-1构成循环,在循环中每次用分母n除x,如果有一次能整除,则x不是素数,假设不成立,改为jg=0,并立即退出循环、结束证明。如果所有的分母一直都不能整除x,jg到最后也没有被改写,则假设的jg=1最终成立,x就是素数。程序框架为: 输入正整数x jg=1 For n=2 To x-1 If x能被n整除 Then X不是素数(jg=0),退出循环 End If Next n If jg=1 Then X是素数 Else X不是素数 End If 问题1:如何表达“x能被n整除”? 方法有几个:() x MOD n=0 (最常用)() x/n=x
11、n() Fix(x/n)=x/n() Int(x/n)=x/n问题2:如果x不是素数,如何实现中途退出循环?方法:用“强行退出循环”语句 Exit For。最后程序为: x=InputBox(输入正整数x:) jg=1 For n=2 To x-1 If x MOD n=0 Thenjg=0Exit For End If Next n If jg=1 Then ? X; 是素数 Else ? X; 不是素数 End If例6:一张足够大的纸,厚度为1mm,对折1次为2mm,对折2次为4mm,对折几次后为100米?分析:设立s代表纸张厚度。每次对折后s是原来的倍: s=s*2,s的初值为。设立n代表对折次数,也作为循环变量。n的初值为1,但n的终值不知道,正是程序要计算的问题。n的终值无法确定,就无法构成For循环。怎么办?可以虚构一个终值,比如100000。并用另外一个变量i作为循环变量(也代表对折次数),i肯定不会超过100000(为什么?)。程序框架为:For i=1 To 100000 对折一次,纸的厚度s=2*s对折次数n加Next i然后在程序中一步一步确定真正的对折次数n。问题是如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土豆销售合同格式
- 物流平台服务合同违约
- 汽车美容服务协议
- 工间餐配送服务合同
- 信息服务合同的价格条款
- 个人汽车贷款补充协议
- 进口啤酒品牌代理合同
- 高校安全防护合同
- 农业用肥招标文件解析
- 总分公司合作协议范本版
- 旅游2010级酒店规划与设计课程复习思考题
- 窨井抬升施工方案
- 《HSK标准教程3》第10课
- 2023内蒙古财经大学辅导员公开招聘(列编招聘)3人及笔试参考题库(共500题)答案详解版
- 冠心病双联抗血小板治疗中国专家共识
- 人民医院能源托管服务项目可研技术方案书
- 四川省自贡市2022-2023学年八年级上学期期末语文试题
- 部编语文五年级上册词语表注音版
- 中建光伏项目管理指导手册
- 国家开放大学思想道德与法治社会实践作业集合6篇
- 小学侵害未成年人强制报告制度
评论
0/150
提交评论