問一道vb題,問一道VB的題,謝謝哪位大神

時間 2022-03-30 09:10:30

1樓:

你要知道if c mod 2 =0 then 語句才執行,其他的是每次迴圈都執行

開始s=1+1=2

i=3c=1, c mod 2=0 不成立,後面不執行a=1 b=1

i=4c=2, c mod 2=0成立 s=2+c=2+2=4a=1 b=2

i=5c=3 ,c mod 2=0 不成立,後面s=s+c不執行a=2,b=3

i=6c=5 c mod 2=0 不成立,後面s=s+c不執行a=3,b=5

i=7c=8 c mod 2=0成立 s=4+c=4+8=12a=5,b=8

i=8c=13 c mod 2=0 不成立,後面s=s+c不執行a=8,b=13

i=9c=21 c mod 2=0 不成立,後面s=s+c不執行a=13,b=21

i=10

c=34 c mod 2=0成立 s=12+c=12+34=46a=21,b=34

迴圈結束,列印s值就是46

2樓:cy滄海月明

a,b=1,c=2,s=2+2,i=3

a=1,b=2,c=3,s=4,i=4

a=2,b=3,c=5,s=4,i=5

a=3,b=5,c=8,s=4+8,i=6a=5,b=8,c=13,s=12,i=7a=8,b=13,c=21,s=12,i=8a=13,b=21,c=34,s=12+34.i=9a=21,b=34,c=55,s=47,i=10

問一道vb的題,謝謝哪位大神

3樓:匿名使用者

朋友,你這個涉及到的知識還真不是一點點,而且還不好解釋,不過我還是想幫幫你:

一,變數的作用域(生命週期):

實驗1:

private sub command1_click()

dim a as integer

a=99

print "按鈕1",a

end sub

private sub command2_click()

dim a as integer

a=100

print "按鈕2",a

end sub

兩個過程裡,都有變數a,結果是互不相干的。(這個我想你應該理解,如果不理解,自己編個程式,用這個**試驗一下,在體會一下;而且先單擊哪個按鈕不會影響顯示結果)

實驗2:private a as integer '窗體極變數

private sub command1_click()

a=66

print "按鈕1",a

end sub

private sub command2_click()

dim a as integer

a=100

print "按鈕2",a

end sub

private sub command3_click()

a = a + 1

print "按鈕3", a

end sub

單擊次序:按鈕1、按鈕2、按鈕3。結果:

按鈕1 66

按鈕2 100

按鈕3 67

command1_click()過程裡沒有宣告變數a,可以使用窗體級變數a,輸出沒有疑問;

command2_click()過程裡宣告瞭區域性變數a,就有問題了,這裡當執行a = 100的時候,到底是指哪一個a呢?vb規定,指的是過程中自己用dim宣告的變數a,同樣輸出沒有疑問;

command3_click()過程裡沒有宣告區域性變數a,使用的也是窗體級變數a,而且這個時候窗體級變數a已經存有66,輸出沒有疑問;

結論:1)過程級變數只能被本過程識別和使用,窗體級變數能夠被本窗體的任何位置識別和使用,但是當過程變數與窗體變數出現同名時,在在過程中識別的是本過程變數。

2)養成宣告變數的習慣,便於糾錯。

二,關於子程式(包括過程和函式)的概念:

有:形式引數,實際引數;傳遞數值與傳遞地址;等概念

例子1:

有過程:

private sub a(byval x as integer,byref y as integer)

print x,y

x = 100

y = x + 1

print x,y

end sub

概念:過程名叫a,括號中有兩個形式引數x,y;

其中x叫傳遞數值的形式引數(由關鍵字byval宣告),y叫傳遞地址的形式引數(由關鍵字byref宣告,byref可以不寫)。

下面用command1_click()事件去呼叫該過程,來說明:

private sub command1_click()

dim x as integer

dim y as integer

x = 5

y = 6

call a(x,y) '用call語句呼叫子過程,這裡格式類似宣告過程的格式:a過程名,括號裡有2個引數(實際引數)

print x,y

end sub

call a(x,y)

用call語句呼叫子過程,這裡格式類似宣告過程的格式:a過程名,括號裡有2個引數(實際引數),其實實際引數與形式引數的名可以相同也可以不同。

但是,必須型別一致,一一對應,

也就是說,系統在執行呼叫時,根據先後位置一一對應的,呼叫語句中的x對應宣告語句中的x,呼叫語句中的y對應宣告語句中的y;

即:把呼叫語句中的x傳遞給宣告語句中的x,把呼叫語句中的y傳遞給宣告語句中的y;

如果這樣呼叫

call a(y,x)

結果:把呼叫語句中的y傳遞給宣告語句中的x,把呼叫語句中的x傳遞給宣告語句中的y;

執行上述**,顯示結果:

5 6 '這個容易理解,在過程a裡第1次的輸出,x,y由外部傳遞給過程a的

100 101 '這個也好理解

5 101 '這是command1_click()實踐裡的輸出結果,這個怎麼理解呢?

解釋:傳遞數值:呼叫語句把外部的數值(變數的值或表示式的值或常數)傳遞給自定義過程對應的變數(外部變數與過程內部變數互相獨立,只是數值傳遞)

傳遞地址;呼叫語句把外部變數的地址(只能是變數,不可以是表示式或常數)傳遞給自定義過程對應的變數(過程內部變數的操作其實就是對外部那個變數的操作)

所以在command1_click()裡,x是傳遞數值,結果保持傳遞前的值不變;y傳遞地址,結果與過程a的結果一致,其實是同一個變數。

這樣你應該,會分析自己的問題了吧!

你的2個函式裡的引數,都是傳遞地址型別的引數!

呵呵,問題描述簡單,回答很累人!

問一道vb的題目,請高手回答,謝謝!

4樓:餘同書由君

輸出為7

vb中rnd函式輸出一個小於1大於等於0的小數int是取整函式

故x=int(rnd)+3=3,x^2=9所以y=x^2-2=9-2=7

vb裡一道題求解,求解VB一道題 最好解釋每一步

迮悅 private sub command1 click text1.visible falseend sub private sub command2 click text1.text vb程式設計 text1.visible true text1.fontsize 16 end sub pri...

求助一道VB題

private sub form load dim i as long dim x as long dim sum1 dim sum2 dim sum3 for i 1 to 30 x 100000 sum1 sum1 x next debug.print 窮人給富商的錢為 sum1sum2 0.0...

問一道數學題,問一道數學題?

當n 時,n中不等式不成立,所以2 t 2t 1。於是1 3t,t 1 3.n 時由n包含於m,2 2 t 2t 1 5,左對左,左 右,右對右 可以嗎? 羅羅 注意 區間的 左邊要小於右邊。 同學你學過數軸了吧。空集的概念是用數軸表示就是沒有交集,沒有交集說明x小於的那個數是要小於比x大的那個數的...