書名: C語言程序設計教程作者名: 何穎剛 林麗娜 唐基宏 葉曉紅本章字數: 942字更新時間: 2019-10-12 16:40:28
1.2.2 算法的表示
為了表示一個算法,可以使用不同的方法。常用的方法有:自然語言、流程圖和偽代碼。
下面仍以求1到100之間所有奇數的和為例說明算法的三種描述方法。
1.自然語言
(1)假設變量i的初始值為1;
(2)假設變量sum的初始值為0;
(3)如果i小于或等于100時,轉去執行(4);否則轉去執行(8);
(4)如果i除以2,余數為1,則執行(5),否則轉出執行(6);
(5)計算sum加上i的值后,重新賦值給sum;
(6)計算i加1,然后將值重新賦值給i;
(7)轉去執行(3);
(8)輸出sum的值,算法結束。
自然語言就是人們日常使用的語言,可以是漢語、英語或其他語言。用自然語言表示通俗易懂,但文字冗長,容易出現歧義。自然語言表示的含義往往不太嚴格,要根據上下文才能判斷其正確含義。此外,用自然語言來描述包含分支和循環的算法不太方便。因此除了那些很簡單的問題以外,一般不用自然語言表示算法。
2.流程圖
傳統流程圖使用一些圖框來表示各種操作。用圖形表示算法,直觀形象,易于理解。
起止框,用于表示算法開始或結束的符號。
流程線,用于表示算法流程的方向。
輸入/輸出框,用于表示算法過程中的信息輸入和輸出。
判斷框,用于表示算法過程中的選擇分支結構。通常用上面的頂點表示入口,根據需要用其余的頂點表示出口。
處理框,用于表示算法過程中需要處理的內容,只有一個入口和一個出口。
用流程圖描述的算法如圖1-1所示。
用流程圖表示算法直觀形象,比較清楚地顯示出各個框之間的邏輯關系。有一段時期國內外計算機書刊都廣泛使用這種流程圖表示算法。但是,這種流程圖占用篇幅比較多,尤其是當算法比較復雜時,畫流程圖既費時又不方便。所以在結構化程序設計方法推廣之后,許多書刊已用N-S結構化流程圖代替這種傳統的流程圖。上例用N-S結構化流程圖可表示為圖1-2所示。

圖1-1 求sum的算法流程圖

圖1-2 N-S結構化流程圖
3.偽代碼
偽代碼是一種用來書寫程序或描述算法時使用的非正式表示方式。主要采用自然語言、數學公式和符號來描述算法的操作步驟,同時采用計算機高級語言的基本控制結構來描述算法步驟的執行順序。它如同一篇文章一樣,自上而下地寫下來。每一行或幾行表示一個基本操作。它書寫方便,格式緊湊,修改方便,容易看懂,也便于向計算機語言算法(即程序)過渡。
下面用偽代碼的形式來描述上例的算法如下:

