欢迎来到天天文库
浏览记录
ID:19439227
大小:806.00 KB
页数:37页
时间:2018-10-02
《第6章 过程 ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VisualBasic程序设计主讲教师:杜云---西南大学计算机与信息科学学院E-mail:Dyun_jx@163.Com第6过程过程概述将程序分割成较小的逻辑部件就可以简化程序设计任务。称这些部件为过程。过程可用于压缩重复任务,例如,压缩频繁的计算。例如:求1!+2!+…+n!求1!+2!+3!+…+N!DimiAsIntegerDimjAsIntegersum=0n=InputBox(请输入一个数N)Fori=1Tonk=1Forj=1Toik=k*jNextjsum=sum+kNextiPrint"1!+2!+3!+..."&n&"!"&"=
2、"&sum一般的方法PublickAsLongPublicSubfact(ByRefnAsInteger)k=1Forj=1Tonk=k*iNextEndSub求阶乘的过程n=InputBox("请输入一个数n")sum=0Fori=1TonCallfact(i)sum=sum+kNextPrint"1!+2!+3!+..."&n&"!"&"="&sum调用过程求1!+2!+…n!DimnAsIntegerDimsumAsLongDimiAsInteger1/1!+2/2!+…N/N!PrivateSubCommand2_Click()n=Val(
3、InputBox("请输入一个数n"))sum=0Fori=1TonCallfact(i)sum=sum+i/kNextPrint"1/1!+2/2!+..."&n&"/"&n&"!"&"="&sumEndSub用过程编程有两大好处:1:过程可使程序划分成离散的逻辑单元,每个单元都比无过程的整个程序容易调试。2:一个程序中的过程,往往不必修改或只需稍作改动,便可以成为另一个程序的构件。VB中有两类过程,一类是事件过程,另—类是通用过程。事件过程是由系统提供的、不需要用户创建。通用过程是由用户根据自己的需要定义和编写的、可供事件过程多次调用的程序段。
4、通用过程又可分为:Sub子过程Function过程(函数过程)6.2SUB子过程的定义与调用Sub子过程格式:[Private
5、Public][Static]Sub过程名[(参数表)]语句组[ExitSub]语句组EndSub其创建方法有两种:一是在代码窗口中直接按规定的格式编写;二是利用VB的过程添加工具生成过程框架,然后编写过程体。可以将子过程放入标准模块、类模块和窗体模块中。按照缺省规定,所有模块中的子过程为Public(公用的),这意味着在应用程序中可随处调用它们。2:使用《添加过程》对话框创建过程:打开代码窗口工具菜单添加过程事例:编写求
6、N的累加和的SUB过程PrivateSubCommand2_Click()Text1.Text=""Text2.Text=""Text1.SetFocusEndSubPublicsAsIntegerPublicSubsumzr(nAsInteger)DimiAsIntegers=0Fori=1Tons=s+iNextEndSubPrivateSubCommand1_Click()Callsumzr(Val(Text1.Text))Text2.Text=sEndSubPublicSubsumzr(nAsInteger,sAsInteger)DimiA
7、sIntegers=0Fori=1Tons=s+iNextEndSubPrivateSubCommand1_Click()DimnAsInteger,sAsIntegerCallsumzr(Val(Text1.Text),s)Text2.Text=sEndSub3:过程的调用使用Call语句格式:CALL<过程名>(实际参数)直接使用过程名格式:<过程名>[实际参数]过程编写事例:该过程的功能是让计算机发出”梆梆梆”的声音,发声次数由调用过程时传递的参数控制.该过程带有一个形式参数.Subbeepsound(nAsInteger)DimiAsInt
8、egerDimjAsDoubleFori=1TonBeepForj=1To100000NextjNextiEndSub分析该过程的作用范围?注意过程创建的方法、创建的位置、参数的使用调用beepsound过程PrivateSubCommand1_Click()Callbeepsound(Val(Text1.Text))EndSub注意调用格式PrivateSubCommand1_Click()beepsoundVal(Text1.Text)EndSub例6.4SubMyMove(ByValTag%)Label1.Left=Label1.Left+T
9、ag*100Label1.Top=Label1.Top+Tag*100EndSub'事件过程调用MyMove:Privat
此文档下载收益归作者所有