【正文】
算法案例 ? 偽代碼 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。 x0 ? Excel VBA1 a ? Val(InputBox(輸入?yún)^(qū)間左端點值 )) b ? Val(InputBox(輸入?yún)^(qū)間右端點值 )) c ? Val(InputBox(輸入誤差限制 )) Do x0 ? (a + b) / 2 f1 ? a^3 a 1 f2 ? x0^3 x0 1 If f2 ? 0 Then Exit do If f1*f2 0 Then b ? x0 Else a ? x0 End If Loop Until Abs(a – b) c MsgBox 方程的近似解為 amp。 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。 x ? Excel VBA3 二分法