一道VB题,求解详细过程,谢谢 50

窗体上有两个文本框Text、Text2,以及一个命令按钮Command1,编写下列程序:DimYAsIntegerPrivateSubCommand1_Click()Di... 窗体上有两个文本框Text、Text2,以及一个命令按钮Command1,编写下列程序:
Dim Y As Integer
Private Sub Command1_Click()
Dim X As Integer
X=2
Text1.Text=p2(p1(X),Y)
Text2.Text=P1(X)
End Sub
Private Function p1(X As Integer) As Integer
X=X+Y
Y=X+Y
p1=X+Y
End Function

Private Function p2(X As Integer,Y As Integer) As Integer
P2=2*X+Y
End Function

为什么单击1次和单击2次命令按钮后,文本框Text1和Text2内的值分别为
10 10
58 58
为什么执行显示第一个text1后,x值是2而不是4呢?
展开
 我来答
百度网友1ae4cb55f
2012-05-17 · TA获得超过158个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:97.8万
展开全部
我们先来分析程序吧:
不知道你注意到没有,在第一次进入函数p1时,没有给Y赋值,那么Y的值为0,即Y=0;
然后
①p1(X)的执行情况为:X=2+0;Y=2+0;p1=2+2,得到:p1(X)=4;
p2(p1(X),Y)相当于p2(4,2)执行情况为:p2=2*4+2=10;
所以Text1.text=10;
②对于Text2.text的值就很好算了,因为此时X=2,Y=2;
p1(X)相当于p1(2)执行情况为:X=2+2=4;Y=4+2=6;p1=4+6=10;得到Text2.text=10;
下面同理;
至于你的补充问题,我认为是由于你没有注意到Y刚开始没有赋值造成的。
149005501
2012-05-17 · TA获得超过8.6万个赞
知道顶级答主
回答量:7.9万
采纳率:90%
帮助的人:1.3亿
展开全部
第一次点击时,X=2 y=0
Text1.Text=p2(p1(X),Y)
分开说,先是p1(X)
即:
X=X+Y ==> x=2+0=2
Y=X+Y==> y=2+0=2
p1=X+Y ==> p1=2+2=4
然后就是:p2(p1(X),Y) ==> P2(4,2)
P2=2*X+Y ==> p2=2*4+2 ==> p2=10
这时text1.text=10
再接着:Text2.Text=P1(X)==>
X=X+Y ==> x=2+2=4
Y=X+Y==> y=4+2=6
p1=X+Y ==> p1=4+6=10
所以:text2.text=10
===================================
再次点击:x=2 y=6
Text1.Text=p2(p1(X),Y)
先是p1(X) 即:
X=X+Y ==> x=2+6=8
Y=X+Y==> y=8+6=14
p1=X+Y ==> p1=8+14=22
然后就是:p2(p1(X),Y) ==> P2(22,14)
P2=2*X+Y ==> p2=2*22+14 ==> p2=44+14=58
再接着:Text2.Text=P1(X)==> 这时x=8
X=X+Y ==> x=8+14=22
Y=X+Y==> y=22+14=36
p1=X+Y ==> p1=22+36=58

所以:text2.text=58

问题补充:

为什么执行显示第一个text1后,x值是2而不是4呢?
因为你:
Dim X As Integer
X=2
所以,X无论什么时候按,开始的值都是2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lg343028
2012-05-16 · TA获得超过126个赞
知道答主
回答量:118
采纳率:0%
帮助的人:70.8万
展开全部
text1显示的是X值,text2显示的是Y值,单击一次,执行下列
Dim X As Integer
X=2
Text1.Text=p2(p1(X),Y)
Text2.Text=P1(X)
先执行p2(p1(X),Y)里p1(X),调用函数p1,X是2执行
x=2+0(y是全局变量,没赋值为0)
y=2+0
p1=x+y=2+2
所以p2(p1(X),Y)相当于p2(4,2)调用p2
返回p2=2*x+y=2*2+4=10
所以为10
后面依次力推
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
STAYe3zWY
2016-06-11
知道答主
回答量:1
采纳率:0%
帮助的人:1105
展开全部
按答案看应该是个顺序问题,先text1再text2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式