【正文】
x0 ? Excel VBA2 二分法a ? Val(InputBox(輸入?yún)^(qū)間左端點值 )) b ? Val(InputBox(輸入?yún)^(qū)間右端點值 )) c ? Val(InputBox(輸入誤差限制 )) Do x ? (a + b) / 2 If f(x) ? 0 Then Exit do If f(a)*f(x) 0 Then b ? x Else a ? x End If Loop Until Abs(a – b) c MsgBox 方程的近似解為 amp。 ? 問題背景與分析 第一步 確定有解區(qū)間 [a, b] 第二步 取 [a, b]的中點 第三步 計算函數(shù)在中點處的函數(shù)值 第四步 判斷中點處函數(shù)值是否為 0 第五步 判斷新的有解區(qū)間的長度是否小于 給定的誤差 第 4節(jié) 算法案例 ? 偽代碼 10 Read a, b, c 20 x0←( a + b)/2 30 f(a)← a3 – a – 1 40 f(x0)← x03 – x0 – 1 50 If f(x0) = 0 Then Goto 120 60 If f(a)f(x0) 0 Then 70 b← x0 80 Else 90 a← x0 100 End If 110 If |a – b|≥c Then Goto 20 120 Print x0 N 輸出 x0 x0←( a+b) f(x0)=0 輸入 a,b,c b← x0 f(a)f(x0)0 |a – b| c a← x0 f(a)← a3 a 1 f(x0)← x03 – x0 – 1 Y N Y Y N ? 流程圖 10 a ? Val(InputBox(輸入?yún)^(qū)間左端點值 )) 20 b ? Val(InputBox(輸入?yún)^(qū)間右端點值 )) 30 c ? Val(InputBox(輸入誤差點限制 )) 40 x0 ? (a + b) / 2 50 f1 ? a^3 a 1 60 f2 ? x0^3 x0 1 70 If f2 ? 0 Then Goto 140 80 If f1*f2 0 Then 90 b ? x0 100 Else 110 a ? x0 120 End If 130 If Abs(a – b) ? c Then Goto 40 140 MsgBox 方程的近似解為 amp。 a ? Excel VBA1 a ? InputBox(輸入第一個自然數(shù) ) b ? InputBox(輸入第二個自然數(shù) ) While a Mod b 0 r ? a Mod b a ? b b ? r Wend MsgBox 最大公約數(shù)為 amp。 m ? Excel VBA2 例 2( P26) 求兩個整數(shù) a和 b的最大公約數(shù) ——歐幾里得輾轉(zhuǎn)相除法。 s/n 例 1( P2例 1)