一道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呢? 展开
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呢? 展开
展开全部
我们先来分析程序吧:
不知道你注意到没有,在第一次进入函数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刚开始没有赋值造成的。
不知道你注意到没有,在第一次进入函数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刚开始没有赋值造成的。
富港检测技术(东莞)有限公司_
2024-06-06 广告
2024-06-06 广告
ISTA3L是一个基于研究、数据驱动的测试协议,它模拟了由零售公司完成的产品订单被直接运送给消费者时所经历的危险,它允许用户评估包装产品的能力,以承受运输和处理包装产品时所经历的供应链危险,从接收到任何电子商务零售商履行操作,直到最终消费者...
点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
展开全部
第一次点击时,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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
后面依次力推
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
后面依次力推
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按答案看应该是个顺序问题,先text1再text2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询