版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【案例6-1】累加器【案例6-2】九九乘法表【本章小结】
一、案例效果
本案例利用循环结构的特点,使用For…Next循环语句,求N~M之间的所有整数的和,程序效果如图6-1所示。【案例6-1】累加器图6-1
二、技术分析
1.For…Next循环语句
1) For…Next语句的格式
For循环变量=初值To终值[Step步长值]
[循环体]
Next[循环变量]
2) For…Next语句的功能
根据For语句中循环变量所给定的初值、终值和步长,来确定循环的次数,重复执行循环体内各语句。
3)执行过程
For…Next语句遵循“先检查,后执行”的原则。
执行For语句时,首先计算初值、终值和步长各数值型表达式的值,再将初值赋给循环变量,然后将循环变量的值与终值进行比较,如果循环变量的值没有超出终值,则执行循环体语句,否则执行Next下面的语句。
执行Next语句时,将循环变量的值与步长值相加,再赋给循环变量,然后将循环变量的值与终值进行比较,如果循环变量的值没有超出终值,则执行循环体语句,否则执行Next下面的语句。
4)使用说明
(1) For语句与Next语句必须成对出现,缺一不可。在Next语句中,循环变量可以省略,但如果出现,要与For语句中的循环变量相一致。
(2)若步长值为正数,则循环变量的值大于终值时为超出;若步长值为负数,则循环变量的值小于终值时为超出。
(3)步长只能是正值或负值,步长不能为零,否则循环会永不停止,即产生死循环,此时可按“Ctrl+Break”鍵,强制终止程序的运行。当步长为1时,Step1可以省略。
(4)循环变量的初值、终值和步长可以为常量、变量或表达式,但不能是数组的数组元素(关于数组的知识具体参见第7章)。
(5)在循环体语句中可以加入ExitFor语句,执行该语句后会强制程序脱离循环,执行Next下面的语句。ExitFor语句通常放在选择结构语句之中使用。
(6) For…Next语句适用于循环次数确定的情况。例如:
PrivateSubForm_click()
Sum=0
Fori=1to10step1
Sum=Sum+2
Nexti
PrintSum
EndSub
上面的语句段演示了For…Next语句的应用。程序中对变量Sum进行累加求和。
2.While…Wend循环语句
1) While…Wend语句的格式
While条件
[循环体]
Wend
2) While…Wend语句的功能
While…Wend语句的功能是,当条件成立时,则重复执行循环体语句,直到条件不成立时,才终止循环,执行Wend后面的语句。
3)执行过程
While…Wend语句也遵循“先检查,后执行”的原则。
首先判断条件是否成立,如果成立,则执行循环体语句,然后再判断条件是否成立,如果仍然成立,则重复执行上述操作;如果条件不成立,则不执行循环体,转去执行Wend语句的下一条语句。
4)使用说明
(1) While语句与Wend语句必须成对出现,缺一不可。
(2)在While语句之前,要准备好初始条件,以提供给第一次检测“条件成立与否”使用。在循环体内,要有改变条件的有关语句,以便在适当的时候(如不满足条件)退出循环。
(3) While…Wend语句适用于循环次数不确定的情况。
例如:
PrivateSubForm_click()
Sum=0:i=1
Whilei<=10
Sum=Sum+2
i=i+1
Wend
PrintSum
EndSub
上面的语句段演示了While…Wend语句的应用。程序中对变量Sum进行累加求和。
3.Do…Loop循环
Do…Loop循环有两种形式:直到型循环和当型循环。
1)当型Do…Loop循环
当型Do…Loop循环语句是先判断条件,再执行循环体语句序列中的语句。使用格式如下:
Do[While|Until]条件
循环体语句
Loop选择关键字While时,当条件成立时,重复执行循环体语句;当条件不成立时,退出循环,转去执行Loop后面的语句。
选择关键字Until时,当条件不成立时,重复执行循环体语句,直到条件成立时,退出循环,转去执行Loop后面的语句。
在循环体语句中可以使用ExitDo语句,它的作用是退出该循环,它一般用于循环体语句中的判断语句。例如:
PrivateSubForm_click()
Sum=0:i=1
DoWhilei<=10
Sum=Sum+2
i=i+1
Loop
PrintSum
EndSub
上面的语句段演示了DoWhile…Loop语句的应用。程序中对变量Sum进行累加求和。
2)直到型Do…Loop循环
直到型Do…Loop循环语句是先执行循环体语句中的语句,再判断条件。使用格式如下:
Do
循环体语句
Loop[While|Until]条件例如:
PrivateSubForm_click()
Sum=0:i=1
Do
Sum=Sum+2
i=i+1
LoopUntili>10
PrintSum
EndSub
上面的语句段演示了Do…LoopUntil语句的应用。程序中对变量Sum进行累加求和。
4.VisualBasic标准函数
本案例中主要涉及表6-1所列的两个标准函数。表6-1本案所涉及的标准函数使用说明:
(1)在使用随机函数Rnd
以前通常要加一条无参数的随机种子语句Randomize,利用它来初始化随机数发生器,否则在程序运行时会出现重复的有序随机数。
(2)产生n~m范围(包括整数n和m)随机整数的式子有如下两种形式:
Int(Rnd*(m-n+1))+n
Int(Rnd*(m-n+1)+n)
例如,产生两位数随机整数的式子是:
Int(Rnd*90)+10或Int(Rnd*90+10)
产生[12,57]范围内随机整数的式子是:
Int(Rnd*46)+12或Int(Rnd*46+12)
5.绘图方法
VisualBasic中,可以在窗体及图片框等对象中绘图,并且其提供了多种可以在对象中绘图的方法。
下面我们首先来学习绘图的Circle方法的使用。
Circle方法可用于画圆、椭圆、圆弧和扇形,使用格式如下:
Object.Circle[Step](x,y),半径[,起始角][,终止角][长短轴比率]
此方法将在窗体或图片框中,以(x,y)为圆心坐标,以r表示圆的半径(单位为点),绘制一个图形。关键字Step表示采用当前作图位置的相对值。圆弧和扇形通过参数起始角、终止角来控制。当起始角、终止角取值在0~2π时为圆弧;当起始角、终止角取值前加负号时画出扇形,负号表示画圆心到圆弧的径向线。椭圆通过长短轴比率控制,默认值为1,即画圆。
例如:
Form1.Circle(5000,5000),2000
该语句表示以(5000,5000)为圆心坐标,以2000为圆的半径,在窗体上绘制一个圆。三、操作步骤
1.创建程序界面
新建一个“标准EXE”工程,按照图6-2所示在Form1窗体上添加3个标签控件、3个文本框控件和2个命令按钮控件。
2.设置对象的属性
按表6-2设置对象的属性。图6-2表6-2设置对象属性
3.程序代码编辑
在程序代码窗口中输入下面的代码。
(1)窗体Form1中按钮Command1的程序代码如下:
PrivateSubCommand1_Click()
DimNAsInteger,MAsInteger,KAsInteger,SUMAsLong
N=Text1.Text
M=Text2.Text
SUM=0'给变量SUM赋初值0
ForK=NToM
SUM=SUM+K'累加语句,进行变量K的累加运算
NextK
Text3.Text=SUM'显示计算结果
EndSub
(2)窗体Form1中按钮Command2的程序代码如下:
PrivateSubCommand2_Click()
UnloadMe ‘卸载当前窗体,退出程序
EndSub
4.程序代码调试
输入程序代码后,完成程序代码的调试和修改。
四、探索与思考
(1)如果要使用While…Wend语句编写程序,应如何修改程序?
(2)如果要使用Do…Loop循环编写程序,应如何修改程序?
(3)如果要将“累加器”改成“累乘器”,则如何修改程序?
五、学生自主设计——画圆
1.设计要求
1)基本部分——模仿
要求程序运行后,单击窗体,在窗体上画50个不同大小的圆,色彩也不同,窗体的画面参考图6-3所示。图6-3
2)拓展部分——创意设计
如何在窗体上画出50个大小不同,色彩也不同的椭圆?试试看。
2.知识准备
(1)理解循环结构,学习使用For…Next语句编写程序。
(2)学习使用VB标准函数:Int(N),Rnd[(N)]。
(3)学习使用VB绘图方法:Circle方法。
3.效果评价标准
请对照表6-3完成自主设计的效果评价。表6-3效 果 评 价 表
4.设计小结
请将你的设计过程、设计体会、在设计过程中遇到的问题以及解决方法写在下面。
一、案例效果
本案例利用For…Next循环结构嵌套,外循环的循环变量用来产生被乘数,内循环的循环变量用来产生乘数,打印出九九乘法表,程序效果如图6-4所示。【案例6-2】九 九 乘 法 表图6-4
二、技术分析
1.循环结构的嵌套
案例6-1中介绍的各类循环语句,循环体内没有另外的循环结构,这是最简单的循环,称为单重循环。如果一个循环结构的循环体内又包含了其他循环结构,则称为“循环的嵌套”,也叫多重循环。例如:
PrivateSubForm_click()
Fori=1to10
T=1
Forj=1toi
T=T*j
Nextj
PrintT
Nexti
EndSub
外层的叫外循环,内层的叫内循环,有几层嵌套就叫几重循环。For…Next循环中可以包含一个或多个For…Next、While…Wend或Do…Loop循环,在While…Wend和Do…Loop循环中同样如此。
2.多重循环的执行过程
多重循环是一种层次结构,它的执行过程也是分层进行的。以上面的程序为例,该程序是一个For…Next二重循环。i为外循环的循环变量,控制着外循环的循环次数;j为内循环的循环变量,控制着内循环的循环次数。
程序执行过程如下所述:
(1)外循环的循环变量i取初值1。
(2)判断外循环控制条件,当条件成立时,执行循环体,即外循环的循环体,否则转向步骤(7)。
(3)内循环变量j赋初值1。
(4)判断内循环控制条件是否成立,若成立,则执行内循环体语句,否则转向步骤(6)。
(5)内循环变量增加步长值,即j=j+1,然后返回到步骤(4)执行。
(6)外循环变量增加步长值,即i=i+1,然后返回到步骤(2)执行。
(7)退出外循环,执行外循环的下一条语句。
总之,二重循环的执行过程的特点是:每当外循环变量的值改变一次,内循环变量的值都要重新取初值,重新循环一遍。
3.多重循环的使用说明
(1)内循环与外循环的循环变量名不能相同,否则将引起程序运行的混乱。例如:
ForA=1to10
ForA=5to1step-1
…
NextA
NextA
(2)外循环一般可以包括内循环和其他语句,但是内循环必须完全在外循环的循环体内,内外循环不能互相交叉,例如:
ForA=1to10
ForB=5to1step-1
…
NextA
NextB
(3)在多重循环中,当两个NEXT语句临接时,可将两个NEXT语句写成一个,内循环变量必须写在前面,外循环变量写在后面,中间用逗号间隔。下面两程序段是等效的:
程序段1程序段2
Fori=1to5Fori=1to5
Forj=1to6Forj=1to6
Printi+j;Printi+j;
NextjNextj,i
Nexti
(4)在书写多重循环时,为使结构更加清晰,可使层次相同的部分左对齐,内层循环体都向右缩进若干个字符,这样会增加程序的可读性。
4.字符串连接
字符串连接是将两个或多个字符串连接成一个字符串,字符串的连接运算符为“+”,它的作用是把“+”运算符两侧的字符串连接在一起。例如:
PrivateSubForm_click()
DIMAASstring,BASstring,CASstring
A=“Iam”
B=“astudent!”
C=A+B
PrintC
EndSub程序的运行结果为:
Iamastudent!
注意:
(1)两个字符串在合并时,应确定是否需要预留首尾空格。如果不留空格,连接后的字符串两个单词之间就无空格相隔了。
(2)连接运算符两侧的连接对象不可随意调换,否则结果就完全不同。上例中“A+B”若改为“B+A”,则程序的运行结果变为:astudent!Iam
(3)如果“+”两侧是数值量,此时“+”号按加号处理;如果“+”两侧是字符串数据,则“+”号按字符串运算符连接处理。三、操作步骤
1.创建程序界面
新建一个“标准EXE”工程,参照图6-5所示对空白窗体form1的高度和宽度进行适当调整。
2.设置对象的属性
本案例中只用到1个窗体对象,按表6-4设置窗体的属性。图6-5表6-4设置窗体的属性
3.程序代码编辑
在程序代码窗口中输入下面的代码:
PrivateSubForm_Click()
Dimn1AsInteger,n2AsInteger'声明变量N1和N2
为整形变量
PrintTab(60);“数学九九乘法表”'设置标题“数学九
九乘法表”
'换行
FontSize=10'设置“数学九九乘法表”文字的大小
ForeColoe=RGB(0,125,0)
'设置“数学九九乘法表”文字的颜色
Forn1=1To9
Forn2=1Ton1
PrintTab(n2*12-12);Str$(n1)+“×”+Str$(n2)+“=”+Str$(n1*n2);
Nextn2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中生通过地理信息系统分析城市交通拥堵演变驱动机制课题报告教学研究课题报告
- 书法用笔工具材料特性对力传递效率的实验研究课题报告教学研究课题报告
- 诚信投标承诺书15篇
- 《移动通信技术》课件-5.2.2 复用段保护配置
- 2026年河南道路工程监理合同三篇
- 2026届河南省周口市高三下学期第一次大联考化学试题含解析
- 护理研究创新性评估的评估工具评估
- 肾动态显像:开启慢性梗阻性肾病预后评估的新视角
- 肺癌骨转移的多维度解析:基于三例临床案例的深度探究
- 肺癌患者合并静脉血栓栓塞症的多维度危险因素剖析与临床对策探究
- 筋膜刀的临床应用
- 高中数学必修 选修全部知识点归纳总结(新课标人教A版)
- 人力资源外包投标方案
- 江苏师范大学成人继续教育网络课程《英语》单元测试及参考答案
- 社会工作综合能力(初级)课件
- 国家职业技能鉴定考评员考试题库
- 成人癌性疼痛护理-中华护理学会团体标准2019
- 培训testlab中文手册modal impact1 Test Lab模态锤击法软件布局
- 安徽华塑股份有限公司年产 20 万吨固碱及烧碱深加工项目环境影响报告书
- 糖尿病酮症酸中毒指南精读
- 业财一体化财务对接解决方案
评论
0/150
提交评论