回顧流程圖的基礎美國國家標準化協會ANSI曾規定了一些常用的流程圖符號,為世界各國程式工作者普遍採用。最常用的流程圖符號見圖。
處理框(矩形框),表示一般的處理功能。
判斷框(菱形框),表示對一個給定的條件進行判斷,根據給定的條件是否成立決定如何執行其後的操作。它有一個入口,二個出口。
輸入輸出框(平行四邊形框)。
起止框(圓弧形框),表示流程開始或結束。
連接點(圓圈),用於將畫在不同地方的流程線串連起來。中有兩個以1標誌的連接點(在連接點圈中寫上“l”)則表示這兩個點是串連在一起的,相當於一個點一樣。用連接點,可以避免流程線的交叉或過長,使流程圖清晰。
流程線(指向線),表示流程的路徑和方向。
注釋框, 是為了對流程圖中某些框的操作做必要的補充說明,以協助閱讀流程圖的人更好地理解流程圖的作用。它不是流程圖中必要的部分,不反映流程和操作。
程式框圖表示程式內各步驟的內容以及它們的關係和執行的順序。它說明了程式的邏輯結構。框圖應該足夠詳細,以便可以按照它順利地寫出程式,而不必在編寫時臨時構思,甚至出現邏輯錯誤。流程圖不僅可以指導編寫程式,而且可以在偵錯工具中用來檢查程式的正確性。如果框圖是正確的而結果不對,則按照框圖逐步檢查程式是很容易發現其錯誤的。流程圖還能作為程式說明書的一部分提供給別人,以便協助別人理解你編寫程式的思路和結構。
例:對一個大於或等於3的正整數,判斷它是不是一個素數。
所謂素數,是指除l和該數本身之外,不能被其它任何整數整除的數。例如,13是素數,因為它不能被2,3,4,…,12整除。
判斷一個數N(N>3)是否素數的方法是很簡單的:將N作為被除數,將2到(N—1)各個整數輪流作為除數,如果都不能被整除,則N為素數。演算法可以表示如下:
① 輸入N的值。
② I=2。
③ N被I除。
④ 如果餘數為0,表示N能被I整除,則列印N“不是素數”,演算法結束。否則繼續。
⑤ I=I+1。
⑥ 如果I≤N-l,返回③。否則列印N“是素數”。然後結束。
實際上.N不必被2到(N一1)的整數除,只需被2到N/2間整數除即可,甚至只需被2到之間的整數除即可。例如,判斷13是否素數,只需將13被2,3除即可,如都除不盡,N必為素數。步驟⑥可改為:
⑥:如果I≤,返回③。否則演算法結束。