陳侃 陳梅



“算法初步”這一章是高中新課改數學新增的內容,其思想非常重要, 但算法并不神秘,例如運用消元法解二元一次方程組的過程就是一種算法. 為了有條理地、清晰地表達算法,往往需要將解決問題的過程整理成程序框圖;為了能在計算機上實現,還要將程序框圖翻譯成計算機語言,也就是程序. 在學習過程中,能熟練地進行兩者間的互化,是掌握算法的基礎.
一、根據程序框圖設計程序
根據程序框圖設計程序的一般步驟:(1)理解題意,確定程序框圖的結構(順序結構、條件結構、循環結構);(2)明確各程序框的含義,并且寫出對應的程序代碼;(3)在有條件的情況下,進行上機運行.
例1 請寫出下面的程序框圖描述的程序.
[x<1?] [開始 ] [否][是][結束] [輸出y] [輸入x] [x<10?] [是] [否]
分析 通過觀察,此程序框圖為條件結構,而條件結構的程序為:
[IF 條件 THEN
語句體1
ELSE
語句體2
END IF]
解 所求算法的程序為: [INPUT x
IF x<1 THEN
y = x^2
ELSE
IF x<10 THEN
y = 2*x+1
ELSE
y = 3*x-11
END IF
END IF
PRINT y
END]
點撥 (1)在本程序中,IF-THEN語句中嵌入了另一個IF-THEN語句,在每個語句結束時都要寫END IF; (2)程序中的符號都要用專用符號,例如:乘號、冪等.
例2 請寫出下面的程序框圖描述的程序.
[開始 ] [否][結束] [輸出S] [k>50?][是]
分析 通過觀察,此程序框圖是循環結構,程序設計語言中有直到型和當型兩種循環結構. 直到型循環結構對應的UNTIL語句是:
[DO
循環體
LOOP UNTIL 條件]
當型循環結構對應的WHILE語句是:
[WHILE 條件
循環體
WEND]
通過進一步分析我們發現,此循環結構用當型和直到型循環結構的語句都符合程序框圖.
解法一 UNTIL語句編寫計算機程序:
[k=1
S=0
DO
S=S+1/k
k=k+1
LOOP UNTIL k>50
PRINT S
END]
解法二 WHILE語句編寫計算機程序:
[k=1
S=0
WHILE k<=50
S=S+1/k
k=k+1
WEND
PRINT S
END]
二、根據程序畫出程序框圖……p>