【正文】
有一根長度為 321米的鋼材料 , 要將它截取成兩種規(guī)格 a、 b的長度分別為 17米和 27米的短料 , 每種至少 1段 , 問分隔成 a, b各多少段后 ,剩余的殘料 r最少 ? 分析 , 該題利用 “ 試湊法 ” 通過二重循環(huán)求殘料 r的最小值正數 , 殘料不可能是負數 。 i。每次重復都從舊值的基礎上遞推出新值,并由新值代替舊值。 解決此類問題采用“試湊法”,把每一種情況都考慮到。 例 百元買百雞問題 。 以下程序段是錯誤的: ( 1)內外循環(huán)變量同名錯誤: For i= 1 To 10 For i = 1 To 20 … . Next i Next i ( 2)內外循環(huán)交叉 For i = 1 To 10 For j= 1 To 10 … Next i Next j 其他輔助控制語句 1. Go To 語句 形式 : Go To {標號 |行號 } 作用:無條件地轉移到標號或行號指定的那行語句 . 標號是一個字符序列 ,行號是一個數字序列 . 多種形式: Exit For、 Exit Do、 Exit Sub、 Exit Function等 。 se。 amp。運行界面如圖 [程序代碼 ] Private Sub Command1_Click() Dim maxa As Integer, mina As Integer, x As Integer, i As Integer ?每單擊一次清除原來內容 maxa = 50 ?假設較小的數為最大 mina = 100 ?假設較大的數為最小 Randomize For i = 1 To 20 x = Int(Rnd * 51 + 50) Print x。 我們從素數的定義來求解:從 i= 2, 3, 4, … , m- 1依次判斷 m能否被 i整除,只要有一個能整除 m就不是素數,否則 m為素數。 n x = Do While n 0 a = n Mod 2 n = n \ 2 x = Chr(48 + a) amp。 程序塊如下: Sum = 0 ?sum 為累加和變量,設初值為 0 For i= 1 To 100 Sum= Sum+ i Next i 又如:求 10的階乘。 語句形式: For 循環(huán)變量=初值 To 終值 [ Step 步長 ] Next 循環(huán)變量 說明: 循環(huán)變量必須是數值型 步長:一般為正數,初值小于終值 ; 若為負數,初值大于終值; Step 缺省時默認為 1。如果整型表達式為 1,則函數返回選項列表中的第一項的值,若整型表達式為 2,則函數返回選項列表中的第 2項的值, … 依次類推。判斷是否是數值 x = Val() If x 0 Or x 1000 Then = 39。 Spc(1)。 z IF x y Then ‘ 如果 x y則 x,y交換 t = x: x = y: y = t End IF IF y z Then t = y: y = z: z = t IF x y Then t = x: x = y: y = t End IF End IF Print 從小到大的順序是: 。 x。運行界面與程序代碼如下: 例 已知百分制成績 mark,顯示對應的五級制成績 哪些正確,哪些錯誤? 方法一 I f m a r k = 90 T he n P r i nt 優(yōu) E l s e I f m a r k = 80 T he n P r i nt 良 E l s e I f m a r k = 70 T he n P r i nt 中 E l s e I f m a r k = 60 T he n P r i nt 及格 E l s e P r i nt 不及格 E nd I f 方法二 I f m a r k 60 T he n P r i nt 不及格 E l s e I f m a r k 70 T he n P r i nt 及格 E l s e I f m a r k 80 T he n P r i nt 中 E l s e I f m a r k 90 T he n P r i nt 良 E l s e P r i nt 優(yōu) E nd I f 方法三 I f m a r k = 60 T he n P r i nt 及格 E l s e I f m a r k = 70 T he n P r i nt 中 E l s e I f m a r k = 80 T he n P r i nt 良 E l s e I f m a r k = 90 T he n P r i nt 優(yōu) E l s e P r i nt 不及格 E nd I f 返回 72 ? Select Case 語句 Select Case 語句是多分支結構的又一種表示形式,又稱情況語句。 . ElseIf不能寫成 Else If。 ( 3)若單擊 “ 重試 ” 按鈕,則清除原來輸入的內容,焦點定位在原輸入文本框,等待用戶輸入。 表達式 語句塊 1 語句塊 2 F T 雙 分支結構流程示意圖 例 42 編寫一醫(yī)生工作站的登錄檢驗程序,運行界面如圖 4- 3。 語句塊:可以是一條或多條語句。函數格式如下: 變量 $= InputBox( Prompt[,Title][,Default][,XPos][,YPose]) 例 41 應用 InputBox函數進行患者信息的輸入,運行界面如圖 程序代碼如下: Private Sub Form_Click() Dim cl$, msg1$, msg2$, msg3$, msg$, I$ cl = Chr(13) + Chr(10) ?回車、換行 msg