老师实验报告答案十一过程参.pdf
实验十一过程
一、实验目的
1.掌握过程与函数的定义和使用方法;
2.掌握过程中变量的作用域;
3.掌握参数传递的方法;
4.了解过程的嵌套与递归调用。
二、实验内容
1、创建一个VB工程。在其窗体模块建立一个名为sjx的子过程,用于在窗体中输出一个
由指定字符组成的n行直角三角形图案。sjx过程需要两个参数,一为字符,一为数值。
PrivateSubCommand1_Click()
CallSjx(5,)
EndSub
SubSjx(x%,c$)
Dimi%
Fori=1Tox
PrintString(i,c)
Nexti
EndSub
2、编写一个自定义函数Diandao(),将一个字符串颠倒以后作为函数值返回。
PrivateSubCommand2_Click()
PrintDiandao(abcde)
EndSub
FunctionDiandao(S$)AsString
Dims2$,i%,c$
Fori=1ToLen(S)
c=Mid(S,i,1)
s2=cs2
Nexti
Diandao=s2
EndFunction
也可以:
FunctionDiandao(S$)AsString
Dims2$,i%,c$
Fori=Len(S)To1Step-1
c=Mid(S,i,1)
s2=s2c
Nexti
Diandao=s2
EndFunction
还可以:
FunctionDiandao(ByValS$)AsString注意思考,为什么这里用了byVal方式定义形
式参数S
Dimi%,a$
Fori=1ToLen(S)/2
a=Mid(S,i,1)
Mid(S,i,1)=Mid(S,Len(S)-i+1,1)S串中的倒数第i个字符:Mid(S,
Len(S)-i+1,1)与正数第i个字符Mid(S,i,1)交换
Mid(S,Len(S)-i+1,1)=a
Nexti
Diandao=S
EndFunction
3、编写一个计算两点间距离的自定义函数Juli()。再设计一个应用程序使其能在鼠标按
下时连续绘制线段,并根据屏幕坐标标示出当前线段的长度。屏幕显示如左下图。
[参考代码]
Dimx0AsInteger,y0AsInteger(通用)(),记录上一次鼠标单击点的坐标。
请思考如果x0,y0不在窗体通用部分定义会有什么不同?
Rem定义函数Juli()计算(x1,y1)和(x2,y2)两点间的距离
FunctionJuli(x1,y1,x2,y2)
Juli=Sqr((x1-x2)^2+(y1-y2)^2)
EndFunction
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,Y
AsSingle)
Line(x0,y0)-(X,Y)画直线
PrintJuli(x0,y0,X,Y)调用函数Juli()求线段长度并输出到窗体
x0=X:y0=Y
EndSub