vb編寫子過程,交換兩個數。

2025-07-26 11:50:58 字數 1942 閱讀 6042

vb 的數值交換怎樣實現?

1樓:吾桐語

比如:a和b值互相交換,那麼:

r=aa=bb=r

就行了。

vb編寫交換兩個數的過程,swapl用傳值傳遞,swapl2用傳址傳遞,哪個過程能真正實現兩個數的交換?為什麼

2樓:南嶺悠客

byval就是傳值,這是候它的數是不會改的。

byval就是不希望它的數改變。

如果byval時,數也改變,那就沒意義了。

你研究變數時,應該關注它的本質,就是記憶體中的位置。

byval 傳輸時,事實上是做了個副本,丟過去的。

原來的位址,子函式讀不到的。

byval hwnd as long)

假設現在 hwnd 現在在記憶體// a位置;

它先作個副本,,放在記憶體// b位置。

這時候子函式讀不到a位置(實際位置),所以hwmd 值是不會改變的---子函式改變的是 b位置那個影子(tmp)的值。

==byval就是想不改變原來值的,,如果改變了,那麼微軟可以去挑大糞了結論:只要你用了byval,這個值是不會改變的。

「編寫實現兩個資料交換的sub過程(按位址傳遞)」的vb程式設計語言

3樓:網友

sub h (a,b)

dim cc=a:a=b:b=c

end sub

呼叫示例: call h(x,y)

x,y就互換值了。因為你在題目中沒說明資料的具體型別,所以沒做變數宣告,實際應用時,對a、b、c進行變數宣告,並且這三個變數都是統一型別。

4樓:聽不清啊

以下是交換兩個integer變數的sub過程:

sub swap(a as integer,bas integer)dim t as integer

t=a: a=b: b=t

end sub

呼叫時,只要swap(a,b)就可以交換兩個變數的值了。

vb編寫交換兩個數的過程,swapl用傳值傳遞,swapl2用傳址傳遞,哪個過程能真正實現兩個數的交換?為什麼

5樓:歸萱

'按位址傳遞能真正實現兩個數交換。因為數值的位址是唯一的,原值和傳遞值使用的是乙個位址,過程中這個位址的值改變了,那原值也就改變。

按值不能做到值的交換,因為它只是引用不能修改原值,可以理解為複製了乙個原值後去運算,而原值是不會改變的。

private sub command1_click()dim a, b

a = 1: b = 2

swap1 a, b '按值傳遞。

print "按值傳遞:"; a, b

a = 1: b = 2

swap2 a, b '按位址傳遞。

print "按位址傳遞"; a, b

end sub

sub swap1(byval a, byval b)dim t

t = a: a = b: b = t

end sub

sub swap2(byref a, byref b)dim t

t = a: a = b: b = t

end sub

vb題目 1、求一百個隨機數的和,平均值,最大值。 2、編寫程式,要求通過呼叫sub過程實現兩個數的交換。

6樓:

孩子,去看看 如何 寫sub ,如何呼叫 sub過程。

和,平均值,最大值 vb 都內建了函式。

剛入門記得多看書。

7樓:遊魂部落格

用陣列儲存著100個的隨機數的資料。再進行相應的計算就好了。rnd是返回隨機數的函式。

應該明白怎麼做了吧?

VB題目高手速度進,VB 高手請進來解答兩個題,速度,謝謝

1 timer1.interval hscroll1.min hscroll1.value 改timer1.interval hscroll1.max hscroll1.value vb問題 很簡單的,高手進來下 很簡單的啊.陣列名 行數 列數 就這樣可以直接呼叫了.vb題目,高手來 1.redim...

MATLAB中的兩個變數相乘怎麼編寫

驗證成功,可以執行 x rand 3,4 y rand 4,5 row1,col1 size x row2,col2 size y if col1 row2 disp input is error else result zeros row1,col2 for ii 1 row1 for jj 1 ...

用C語言編寫兩個數求和求積求商,編寫一個C語言程式,輸入兩個數的乘積和和,輸出這兩個數。

main 用baic語言編寫兩du個數求和 zhi求積求 dao商?include float add float x,float y float multiply float x,float y float divide float x,float y void main include main...