所謂算法是指在有限步驟內求解某類問題所使用的一組定義明確的規則。算法重在用一個統一的方法有步驟地解決一類問題,但它不是唯一的,一個好的算法應該用較少的便於實現的步驟去有效的解決問題。
一般算法有順序結構、條件分支結構、循環結構三種基本邏輯結構。
順序結構
順序結構是最簡單的算法結構,語句與語句之間是按從上到下的順序進行的。它是由若干個依次執行的處理步驟組成的,它也是任何一個算法都離不開的一種算法結構。
如下算法是順序結構的:
S1:m=a;
S2:a=b;
S1:b=m.
程式框圖如圖:
條件分支結構
在一個算法中,經常會遇到一些條件的判斷、算法的流程根據條件是否成立有不同的流向,這種先根據條件作出判斷,再決定執行哪一種操作的結構稱為條件分支結構,如右圖所示的一個條件分支結構,此結構中包含一個判斷框,根據給定的條件P是否成立而選擇執行A框或B框,請注意,無論P條件是否成立,只能執行A框或B框之一,不可能既執行A框又執行B框,也不可能A框和B框都不執行。無論走哪一條路徑,在執行完A框或B框之後,脫離本條件分支結構。A框或B框兩個框中,可以有一個是空的,即不執行任何操作。
寫出求方程px+q=0(其中p和q為常數)根一個算法,並畫出程式框圖。
分析:此方程的根與p和q取值有關。
算法如下:
S1:輸入p、q
S2:如果p≠0,則使x=-q/p,並執行S;否則,執行S;
S:輸出x;
S:如果q≠0,則輸出“方程無實數根”,否則,輸出“方程的解是全體實數”。
該算法對應的程式框如下圖:
循環結構
需要重複執行同一操作的結構稱為循環結構,即從某處開始,按照一定條件反覆執行某一處理步驟,反覆執行的處理步驟稱為循環體。循環結構中通常都有一個起循環計數作用的變數,這個變數的取值一般都包含在執行或終止循環的條件中。循環結構有while型循環(也稱當型循環)和until型循環(也稱直到型循環)兩種,要注意這兩種循環的聯繫和區別。
例如:作出計算1+3+5+…+n的程式框圖:
共同特點
(1)只有一個入口和出口
(2)結構內的每一部分都有機會被執行到,也就是說對每一個框來說都應當有一條從入口到出口的路徑通過它,如圖中的A,沒有一條從入口到出口的路徑通過它,就是不符合要求的算法結構。
(3)結構內不存在死循環,即無終止的循環。