PDA

View Full Version : [Help] Bài tập khó hiểu....



dzoibai
18-01-2011, 16:57
Sub p(a as intger, b as integer)
a = a + b
b = a + b
End Sub

Sub tt()
Dim a as integer
Dim b as integer
a = 3
b = 4
Call p(a,a)
Msgbox "a =" & a & vbCrl.f & "b =" & b
Call p(b,a-b)
Msgbox "a =" & a & vbCrl.f & "b =" & b
End Sub

Giả sử thủ tục tt gọi là thực thi. hãy chạy từng bước và cho kết quả 2 thủ tục trên.






Bro nào sẵn lòng giúp đỡ thì giải giùm em và giải thích hộ em nhé. Cám ơn nhiều :x

bachnga
18-01-2011, 17:20
Nếu bạn biết truyền tham trị (ByVal) và tham chiếu (ByRef) là gì thì câu trả lời quá dễ, còn không thì thua.
Mặc định Visual Basic 6.0 truyền tham chiếu (ByRef)

zxcongducxz
19-01-2011, 00:39
Nếu Byval thì hok thay đổi biến đầu vào vậy sub p chả là cái gì
Nếu ByRef thì


3;3 4;12-4=8
a=a+b=3+3=6 b=a+b=4+8=12
b=a+b=6+6=12 b=a+b=12+8=20
return a=6 return b=12
return a=12 return (a-b)=20


Kết quả


12 4
12 12


Cũng khó hiểu thật :))

thanhdanhsoft
19-02-2011, 17:49
Cái này đơn giản mà, nhưng chưa hiểu 2 phép cộng của bạn kia có ý nghĩa gì nửa