第6章 过程 2Word格式文档下载.docx
- 文档编号:14420785
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:14
- 大小:77.95KB
第6章 过程 2Word格式文档下载.docx
《第6章 过程 2Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第6章 过程 2Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
×
3.事件过程只能在事件发生时由系统调用,不能在程序中使用代码直接调用。
4.使用Static关键字定义的通用过程中过程级变量都为静态变量。
5.在窗体模块中,不能定义全局通用过程。
6.在函数过程中,如果不给函数名赋值,则函数不返回任何值。
7.定义通用过程时有几个形参,则调用该过程时必须提供几个实参。
8.使用命名参数调用通用过程时,实参的顺序可以不与相应的形参相同。
三、填空题
1.在过程调用中,参数的传递方式可分为按值传递和按地址传递两种,其中按地址传递是默认方式。
使用ByVal关键字来修饰形式参数,可以使之按值传递。
2.以下是一个按钮的Click事件过程与一个函数过程,当单击此按钮时,窗体上显示的是33。
1PrivateSubCommand1_Click()
2Dimint1AsInteger
3int1=8
4PrintSub1(int1,11)+int1
5EndSub
6
7PrivateFunctionSub1(intVar1AsInteger,_
8OptionalintVar2AsInteger=10)AsInteger
9IfintVar2>
10ThenintVar1=intVar2
10Sub1=intVar1+intVar2
11EndFunction
知识点:
●默认情况下,参数按引用传递ByRef
●表达式中对函数的调用
●函数的返回值
●Print语句中表达式的求值顺序
3.阅读下面程序,当Value过程形参前有ByVal关键字时,单击窗体,在窗体上显示的第一行内容是2010,第二行内容是1015。
若将形参表中的ByVal关键字删除,再执行本程序,单击窗体后在窗体上显示的第一行内容是2010,第二行内容是2010。
1PrivateSubValue(ByValmAsInteger,ByValnAsInteger)
2m=m*2:
n=n-5
3Printm,n
4EndSub
5
6PrivateSubForm_Click()
7DimxAsInteger,yAsInteger
8x=10:
y=15
9CallValue(x,y)
10Printx,y
11EndSub
●参数的按值传递ByVal
●通用Sub过程的调用
4.下面是一个按钮的事件过程,过程中调用了自定义函数。
单击按钮在窗体上输出的结果第一行是16,第五行是
526。
2DimxAsInteger,yAsInteger
3DimnAsInteger,zAsInteger
4x=1:
y=1
5Forn=1To6
6z=f1(x,y)
7Printn,z‘此语句改成Printn,x效果一样
8Next
9EndSub
10
11PrivateFunctionf1(xAsInteger,yAsInteger)AsInteger
12DimnAsInteger
13DoWhilen<
=4‘该循环执行了5次
14x=x+y
15n=n+1‘确保不会形成死循环
16Loop
17f1=x
18EndFunction
●数值型变量(n)的默认值
●过程级动态局部变量(n)
●DoLoop循环和For循环
●作为形参的变量与过程级动态局部变量同名的情况(x,y)
5.窗体上有一个按钮Command1和两个文本框Text1、Text2。
下面是这个窗体模块的全部代码。
运行程序,第一次单击按钮时,两个文本框中的内容分别是10和10;
第二次单击按钮,两个文本框中的内容又分别是58和58。
1DimyAsInteger'
模块级变量
2PrivateSubCommand1_Click()
3DimxAsInteger
4x=2
5Text1.Text=f2(f1(x),y)
6Text2.Text=f1(x)
7EndSub
8
9PrivateFunctionf1(xAsInteger)AsInteger
10x=x+y:
y=x+y
11f1=x+y
12EndFunction
13
14PrivateFunctionf2(xAsInteger,yAsInteger)AsInteger
15f2=2*x+y
16EndFunction
●参数的按引用传递ByRef
●模块级变量与形参同名
●函数的嵌套调用
6.阅读下面程序,当单击窗体时,窗体上显示内容的第一行是
23;
第二行是47。
1PrivateSubForm_Click()
2Test2
3EndSub
4
5PrivateSubTest(xAsInteger)
6x=x*2+1
7Ifx<
6Then
8CallTest(x)
9EndIf
10x=x*2+1
11Form1.Printx
12EndSub
●函数的递归调用
7.下面程序在窗体上显示的两行内容分别是6612与
61010。
如果在sub1过程的第二个形参y前加byVal,则在窗体上显示的内容是9615与6410。
1PrivateSubForm_click()
2DimxAsInteger,yAsInteger,zAsInteger
3x=1:
y=2:
z=3
4Callsub1(x,x,z)
5Callsub1(x,y,y)
6EndSub
7
8PrivateSubsub1(xAsInteger,yAsInteger,zAsInteger)
9x=3*z
10y=2*z
11z=x+y
12Printx,y,z
13EndSub
●参数按引用传递ByRef
●参数按值传递ByRef
8.假设下面程序中的4条语句:
语句①~语句④,每次只使用其中的一条语句。
运行程序并点击按钮Command1,则当使用语句①时,输出的内容是4;
当使用语句②时,输出的内容是
5;
当使用语句③时,输出的内容是7;
当使用语句④时,输出的内容是5。
2DimxAsInteger
3Printa(x)*2'
语句①
4Printx+a(x)*2'
语句②
5Printx+a(x)+a(x)'
语句③
6Printx+a(a(x))'
语句④
9PrivateFunctiona(yAsInteger)AsInteger
10y=y+1
11a=y+1
●Print语句中表达式的求值顺序(从右往左)
9.弦截法求方程x-2sinx=0的根。
如图6.8所示,弦截法的原理为:
对于方程,找一个单调有根区间[x1,x2],连接和两点,连线与横轴交点的横坐标为:
反复使用r取代x1或x2来缩小有根区间。
当或时(e为给定的精度),即认为r是方程的数值解。
完善下面程序。
2Dimx1AsSingle,x2AsSingle
3DimeAsSingle:
DimrAsSingle
4e=0.000001
5x1=Val(Text1.Text)
6x2=Val(Text2.Text)
7Iff(x1)*f(x2)>
0Then
8Text3.Text="
请重新选取两点"
9ExitSub
10EndIf
11Do
12r=(24)
13IfAbs(f(r))<
eOrAbs(x2-x1)<
eThen
14(25)
15ElseIff(r)*f(x1)<
16(26)
17ElseIff(r)*f(x2)<
18(27)
19EndIf
20Loop
21Text3.Text=r
22EndSub
23
24PrivateFunctionf(xAsSingle)AsSingle
25(28)
26EndFunction
四、编程题
1.编写递归函数求1+2+3+……+n的值。
2.编写判断某年是否为闰年的函数。
该函数有一个整型参数表示年份,返回值为逻辑型,当该年份是闰年时,函数返回值为True,否则返回False。
3.编写程序调用例6.4中的函数过程Fib,计算Fibonacci数列中从第几项开始起数列项的值超过10000。
4.编写一个首部为C(mAsInteger,nAsInteger)AsInteger的函数,函数的返回值为:
(其中n≥0,m≥n,m>
0,设0!
=1)
5.编写函数S(mAsInteger,nAsInteger)AsLong,此函数返回m+mm+mmm+…+m…m(n个m)的值。
比如S(2,5)的返回值为2+22+222+2222+22222的值。
6.一小球从100米高处自由落下,落到水平面上后又反弹,每次反弹的高度是前一次高度的一半。
编写函数T(nAsInteger)AsSingle,返回值为第n次反弹到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 过程