过程学时理论学时上机.ppt
***********6.5变量的作用域过程级变量在一个过程内用Dim或Static语句 声明的变量,只能在本过程中使用模块级变量在模块内、任何过程外用Dim、Private语句声明的变量,可被本模块的任何过程访问全局变量在模块级用Public语句声明的变量,可被应用程序的任何过程或函数访问第31页,共47页,星期日,2025年,2月5日*6.5.1变量的作用域例如:在下面一个标准模块文件中不同级的变量声明PublicPaAsinteger 全局变量PrivateMbAsstring*10窗体/模块级变量SubF1()DimFaAsinteger ‘过程级变量 ……EndSubSubF2()DimFbAsSingle ‘过程级变量EndSub第32页,共47页,星期日,2025年,2月5日*6.5.2静态变量静态变量程序运行过程中可保留变量的值声明形式:Static变量名[AS类型]用Dim声明的变量,每次调用过程时重新初始化例6.10比较Dim和Static两者的区别。PrivateSubForm_Click()Staticcount%count=count+1Print已单击窗体;count;次EndSubDimcount%第33页,共47页,星期日,2025年,2月5日*PublicaAsInteger全局变量DimbAsInteger模块级变量PrivateSubCommand1_Click()DimcAsInteger局部变量StaticdAsInteger局部变量+静态变量a=1b=1c=1d=1Printa;b;c;dEndSubPrivateSubCommand2_Click()DimaAsInteger局部变量,作用域小的优先于大的变量a=a+1b=b+1c=c+1d=d+1Printa;b;c;dEndSubd=d+1第34页,共47页,星期日,2025年,2月5日*作业P277实验F:1,2,3复习书上例题第35页,共47页,星期日,2025年,2月5日*上机题解答:Subs(b(),min)Dimi%min=b(LBound(b))Fori=LBound(b)+1ToUBound(b)Ifb(i)minThenmin=b(i)NextiEndSubPrivateSubForm_Click()Dima(1To10),amin,i%定义时要写上类型a%(1To10),amin%Fori=1To10a(i)=-Int(Rnd*101+300)Printa(i);NextiCalls(a(),amin)PrintPrint最小值为;aminEndSub实验F1求数组中最小值第36页,共47页,星期日,2025年,2月5日*上机题解答:Functiongcd(ByValm!,ByValn!)AsIntegerIfmnThent=m:m=n:n=tr=mModnDoWhiler0m=n:n=r:r=mModnLoopgcd=nEndFunctionPrivateSubcommand1_Click()Dimx!,y!,z!x=Val(Text1)y=Val(Text2)z=gcd(x,y)Picture1.Printx;y;zEndSub实验F2求最大公约数能去掉ByVal吗第37页,共47页,星期日,2025年,2月5日*6.6综合应用1、数制转换不同进制数之