VB中關於while wend的使用

2021-09-11 06:26:31 字數 482 閱讀 3083

設a、b都是自然數,為求a除以b的餘數,某人編寫了以下函式:

function fun(a as integer,b as integer)

while a>b

a=a-b

wend

fun=a

end function

在除錯時發現函式是錯誤的。為使函式能產生正確的返回值,應做的修改是(  )。

a) 把a=a-b改為a=b-a

b) 把 a=a-b 改為a=a\b

c) 把while a>b 改為while ab 改為while a>=b

【解析】程式中沒有考慮餘數為0的情況,即,條件中應該有a=b,則a=a-b,這樣才能正確得到餘數0。因此程式中應該修改while的條件a>b為a>=b。

例如,a取值為6,b的取值為3,第一次迴圈,a的值為a=6-3=3

當再次執行程式時,a=3,b=3,不滿足條件a>b這種情況,那麼就無法求得餘數了,故增加條件a=b

關於vb中的容器

最失敗的事情莫過於,用了十來年的vb,忽然發現,原來自己還沒有搞懂一些最簡單的東西.昨天,第一次試用了一下vb的類的繼承,感覺還不賴。今天,開始琢磨一下很久以來一直困擾我的乙個問題,就是在vb中找乙個比較好的的容器。其實我的要求很低,想c 中的arraylist就行了,能夠靈活的加入,能夠遍歷,即可...

關於去掉vb中的nag視窗

1 用vbexplore開啟exe檔案,在屬性視窗檢視nag視窗的timer空間的interval屬性,記錄下來,比如是7000,轉換為16進製制後為1b58。2 用winhex開啟exe檔案,搜尋581b 注意要把高低位顛倒來搜 找到了注意看其前面是否有timer字元 ascii模式下 若有,十有...

關於VB裡的ScaleMode問題

我是乙個vb初學者,最近苦惱於vb的窗體和控制項的scalemode問題,vb裡預設的scalemode是twip,而往往我們希望它是pixel,雖然在屬性面板裡面能夠將scalemode改為 3 pixel 但是我發現在程式中返回某個窗體或控制項的屬性時還是返回為很大的twips值,比如有乙個pi...