




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章过程,6.1函数过程的定义与调用6.2子过程的定义与调用6.3参数传递6.4变量、过程的作用域,6.3函数过程1.已知多边形的各条边的长度,要计算多边形的面积。计算三角形面积的公式如下:,定义函数过程area:Functionarea(x!,y!,z!)AsSingleDimc!c=1/2*(x+y+z)area=Sqr(c*(c-x)*(c-y)*(c-z)EndFunction,a,b,c,d,e,f,g,S1,S2,S3,调用函数过程:PrivateSubcommand1_click()Dima!,b!,c!,d!,e!,f!,g!,s1!,s2!,s3!a=InputBox(“输入a”):b=InputBox(“输入b”)c=InputBox(“输入c”):d=InputBox(“输入d”)e=InputBox(“输入e”):f=InputBox(“输入f”)g=InputBox(“输入g”)s1=area(a,b,c)s2=area(c,d,e)s3=area(e,f,g)Prints1+s2+s3EndSub,2函数过程的定义函数过程有两种定义方法:(1)利用“工具”菜单下的“添加过程”命令定义,生成一个函数过程的模板。(2)利用代码窗口直接定义。函数过程形式:Function函数过程名(参数列表)As类型语句块函数名=返回值ExitFunction语句块函数名=返回值EndFunction,函数过程体,函数过程名:命名规则同变量名,可以自己定义参数列表形式:ByVal变量名()As类型参数也称为形参或哑元,仅表示参数的个数、位置和类型,无值。函数名=返回值:在函数体内名赋值一次。至少对函数ExitFunction:表示退出函数过程。,3.函数过程的调用函数过程调用同标准函数调用,形式:函数过程名(参数列表)注意:(1)由于函数过程名返回一个值,故函数过程不能作为单独的语句加以调用,必须作为表达式或表达式中的一部分,再配以其他的语法成分构成语句。(2)“参数列表”称为实参或实元,它必须与形参个数相同,位置与类型一一对应。,例:用Change函数实现将温度从华氏度换算为摄氏度。,FunctionChange(t!)Change=(t-32)*5/9EndFunction,PrivateSubForm_Click()Dima!,b!a=InputBox(输入华氏度数)b=Change(a)Print华氏度数;a,摄氏度数;bEndSub,函数名change自己定义,函数中有给函数名赋值的语句。,调用时在赋值语句中。,6.2子过程1.编写一个两个数交换的过程供多次调用。Swap(x,y)子过程的定义主调程序调用Swap子过程SubSwap(x%,y%)PrivateSubForm_Click()Dimt%Dima%,b%t=xa=10 x=yb=20y=tCallSwap(a,b)EndSubPrinta=;a,“b=;bEndSub,Swap是自己定义的,可以修改,与变量名的命名规则一致。,2.子过程定义Sub子过程名(参数列表)局部变量或常数定义语句块ExitSub语句块EndSub3.子过程的调用(两种调用方式)子过程名实参列表或Call子过程名(实参列表)使用Call时必须有圆括号,子过程体,4.子过程与函数过程区别及注意事项:(1)函数过程名有值,有类型,在函数体内至少赋值一次;子过程名无值,无类型,在子过程体内不能对子过程名赋值;(2)调用时,子过程调用是一句独立的语句。函数过程不能作为单独的语句加以调用,必须参与表达式运算。(3)一般当过程有一个返回值,使用函数过程较直观;反之若过程无返回值,或有多个返回值,使用子过程较直观。,5.编写一个计算矩形面积的Sub过程,然后调用该过程计算矩形面积。,PrivateSubForm_Click()Dima!,b!a=InputBox(请输入矩形的长)b=InputBox(请输入矩形的宽)sa,bEndSubPrivateSubs(length!,width!)Dimarea!area=length*widthPrintareaEndSub,例6.4分别编一计算某级数部分和的子过程和函数过程,并调用。级数为:精度为:,函数过程实现求部分级数和Functionjishu1(x!,eps#)AsDoubleDimn%,s#,t#n=1:s=0:t=1DoWhile(Abs(t)=eps)s=s+tt=t*x/nn=n+1Loopjishu1=sEndFunction,子过程实现求部分级数和Subjishu2(s#,x!,eps#)Dimn%,t#n=1:s=0:t=1DoWhile(Abs(t)=eps)s=s+tt=t*x/nn=n+1LoopEndSub,f1=jishu1(2#,0.000001)调用函数过程Calljishu2(f2,2#,0.000001)调用子过程或jishu2f2,2#,0.00001,程序运行流程:PrivateSubCommand1_Click()Dimf1#,f2#f1=jishu1(2#,0.000001)Calljishu2(f2,2#,0.000001)Printf1=;f1,f2=;f2EndSub,6.3参数传递1.传址与传值传值:形参得到的是实参的值,形参值的改变不会影响实参的值。传址:形参得到的是实参的地址,形参值的改变同时也改变实参的值。,例:编程实现两个变量的交换。PrivateSubCommand1_Click()Dima%,b%a=10:b=20Swap1a,bPrinta=;a,b=;ba=10:b=20Swap2a,bPrinta=;a,b=;bEndSub,SubSwap1(ByValx%,ByValy%)Dimt%t=x:x=y:y=tEndSub,SubSwap2(x%,y%)Dimt%t=x:x=y:y=tEndSub,2.数组参数的传递在vb中允许参数是数组,数组只能通过传址方式进行传递。注意:在实参和形参列表中放入数组名,忽略维数的定义,但圆括号不能省。被调过程可通过Lbound和Ubound函数确定数组的下、上界。Lbound和Ubound函数的形式如下:Lbound(数组名,维数)Ubound(数组名,维数)其中:维数指明要测试的是第几维的下、上标值,缺省是一维数组,例:编一函数过程tim,求任意一维数组中各元素之积。调用tim,求和Functiontim(c()AsInteger)Dimt#,i%t=1Fori=Lbound(c)ToUbound(c)t=t*c(i)Nextitim=tEndFunction,调用:PrivateSubCommand1_Click()Dima%(1To5),b%(3To8)Dimi%,t1#,t2#Fori=1To5a(i)=iNextiFori=3To8b(i)=iNextit1=tim(a()t2=tim(b()Printt1,t2EndSub,调用语句,建立数组a的元素,建立数组b的元素,例:编一子过程ProcMin,求一维数组a中的最小值。,Subs(b()AsInteger,min)Dimi%min=b(LBound(b)Fori=LBound(b)+1ToUBound(b)Ifb(i)0.00001c=(a+b)/2Iff(c)=0ThenExitDoElseIff(a)*f(c)0Thena=cElseb=cEndIfLoophalfRoot=cEndFunction,6.例6.19数值积分有矩形法、梯形法、抛物线法(又称辛卜生法)等。梯形法积分的思想是:将积分区间a,bn等分,小区间的长度为,第i块小矩形的近似面积为:整个积分的结果为这n块小面积的累加,即:,PublicFunctiontrapez(ByVala!,ByValb!,ByValn%)AsSingleDimsum!,h!,x!h=(b-a)/nsum=(f(a)+f(b)/2Fori=1Ton-1x=a+i*hsum=sum+f(x)Nextitrapez=sum*hEndFunction,7.字符串处理例6.20编写一个英文打字训练的程序.要求如下:(1)在标签框内随机产生30个字母的范文;(2)当焦点进入文本框时开始计时,并显示当时时间;(3)在键入文本框按产生的范文输入相应的字母;(4)当键入满了30个字母后结束计时,禁止向文本框输入内容,与范文逐一比较,显示打字的速度和正确率。,第七章常用控件,7.1单选按钮和复选框7.2框架7.3列表框和组合框7.4滚动条和Slide控件7.5时钟7.6ProgressBar控件7.7UpDown控件7.8Animation控件7.9SSTab控件7.10鼠标器和键盘,7.1单选钮和复选框,Caption属性:设置文本标题。Alignment属性:设置标题和按钮显示位置。0:控件按钮在左边,标题显示在右边,默认设置。1:控件按钮在右边,标题显示在左边。Value属性:表示单选按钮或复选框的状态。单选按钮(逻辑型)复选框(数值型)True:选定0-Unchecked:未被选定False:未被选定1-Checked:选定2-Grayed:灰色,禁止用户选择Style属性:指定单选按钮或复选框的显示方式。0-Standard:标准方式1-Graphical:图形方式,事件:Click当用户单击单选按钮或复选框时,它们会自动改变状态。例7.1用单选按钮和复选框设置文本框的字体。,7.2框架(Frame),框架内含控件的创建方法:方法1:单击工具箱上的工具,然后用出现的“+”指针,在框架中适当位置拖拉出适当大小的控件。不能使用双击工具箱上图标的自动方式。方法2:将控件“剪切”到剪贴板,然后粘贴(Ctrl+V)到框架。,框架,设Caption为字体,Caption属性:设定框架上的标题名称Enabled属性:当将框架的Enabled属性设为False时,程序运行时标题正文为灰色,不允许用户对框架内的所有对象进行操作。Visible属性:True:程序运行期间框架及其控件可见。False:程序运行期间框架及其控件被隐藏起来。例7.2框架用法示例。,7.3列表框和组合框,List1.List(1)=“fierce”List1.ListIndex=3(下标从0开始)List1.ListCount=5List1.Sorted=FalseList1.Text=“cox”List1.List(List1.ListIndex)=“cox”List1.Selected(3)=True,List1,列表框各主要属性的值:Combo1.ListIndex=0Combo1.ListCount=8Combo1.Selected(0)=True其余为False。Combo1.Sorted=FalseCombo1.Text为“李宁”,Combo1,1.共有的重要属性List:字符型数组,存放列表框或组合框的选项,下标是从0开始。ListIndex:程序运行时被选中的选项的序号,没有选项被选定时为-1。ListCount:项目的数量,ListCount-1是最后一项的序号。Sorted:表项是否排序True:按字母顺序排列。False:按加入先后顺序排列。Text:(默认属性)被选定的选项的文本内容。,2.列表框的特有属性Selected:是一个逻辑数组,其元素对应列表框中相应的项,表示对应的项在程序运行期间是否被选中。List1.Selected(i)的值为True,表示第i+1项被选中。MultiSelect:0-None:禁止多项选择。1-Simple:简单多项选择。2-Extended:扩展多项选择。3.组合框的特有属性Style:,4.方法AddItem:加入表项对象.AddItemitem,indexRemoveItem:删除一个表项对象.RemoveItemindexClear:删除所有表项对象.Clear,例7.3对列表框进行项目添加、修改和删除操作。,例7.4应用程序。,7.4滚动条和Slider控件,共有的重要属性:Max:最大值Min:最小值SmallChange:单击两端箭头时滑块移动的增量值。LargeChange:用户在滚动条的空白处或Slide控件的滑块与两端之间滑动时,滑块移动的增量值。Value:滑块所处位置所代表的值。,事件:Scroll:拖动滑块时会触发Scroll事件。Change:Value属性改变时触发Change事件。例7.5用一个文本框(Text1)显示滚动条(HScroll1)滑块当前位置所代表的值。,SubHScroll1_Change()Text1.Text=HScroll1.ValueEndSub,例7.6调色板程序。,例7.7用Slider控件设置文本框中的字体大小。,一个时钟控件能有规律地以一定的时间间隔(Interval)激发计时器事件(Timer)而执行相应的程序代码。Interval属性:单位:ms(0.001s),介于064767之间,最大的时间间隔大约为1min。当Interval属性值为0时,表示屏蔽计时器。例7.9蝴蝶飞舞,7.5时钟(Timer),SSTab控件在MicrosoftTabbedDialogControl6.0部件中。重要属性:Style:选项卡样式;Tabs:选项卡总数;TabsPerRow:每一行选项卡的数目;Rows:选项卡总行数;TabOrientation:选项卡的位置;ShowFocusRect:决定选项卡上的焦点矩形是否可视;Tab:当前选项卡的序号,序号从0开始。如果Tab为1,则第二个选项卡为当前活动的选项卡。例7.12选项卡制作示例。,7.6SSTab控件,7.7鼠标器和键盘,1.鼠标器事件MouseDown事件SubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)MouseUp事件SubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)MouseMove事件SubForm_MouseMove(ButtonAsInteger
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 迷走神经反射怎么治疗
- 诗词文言文对比阅读(一)解析版-2026年中考语文专项复习(浙江专用)
- 人工智能通识教程(微课版) 课件 07 智慧驾驭大语言模型-prompt高级应用
- 酸洗池安全知识培训
- 探究动能定理实验-2023年高一物理下学期期末复习(人教版)
- CN120199835A 一种低增湿燃料电池用气体扩散层及其制备方法和低增湿燃料电池
- 人教版高考历史一轮复习讲义-从三国至隋唐的政权更迭与民族交融(含解析)
- 老师心理知识培训笔记课件
- 配网线路高级知识培训总结课件
- 2025年度出口贸易航空货运代理合同
- 教育政策法规课件
- 2025年秋季开学典礼校长致辞:启步金秋话成长播梦育英向未来
- 2025科研素养考试题及答案
- (2025年标准)学生癫痫免责协议书
- 2025-2026学年人教版(2024)初中生物八年级上册(全册)教学设计(附目录)
- 流动式起重机械检验记录表
- 蛛网膜下腔出血的个案护理
- 大学信息与网络安全保密管理办法
- 音乐《上学歌》课件
- 绿色校园创建资料
- 污水处理池 (有限空间)作业安全告知牌及警示标志
评论
0/150
提交评论