官术网_书友最值得收藏!

1.4.2 算法描述

算法的描述就是用文字或圖形把算法表示出來。常用的描述方法有:自然語言、流程圖、N-S流程圖、偽代碼等。

1.自然語言

自然語言就是人們日常使用的語言,可以是漢語、英語或其他語言。用自然語言描述算法通俗易懂,但也存在如下缺點:

① 往往要用一段較冗長的文字才能表達清楚要進行的操作;

② 容易出現“歧義性”,往往要根據上下文才能正確判斷出它的含義,不太嚴謹;

③ 如果用自然語言描述的算法是順序執行的,還比較容易理解,當算法中包含了判斷和轉移等步驟時,用自然語言描述就不容易理解。

【例1.1】 求任意3個正整數a, b, c中的最大者。

用自然語言描述的算法如下:

① 輸入a, b, c;

② a和b比較,若a>b則a=>max,否則b=>max;

③ c和max比較,若c>max,則c=>max;

④ 輸出max。

2.傳統流程圖

傳統流程圖是用一些幾何圖形框、線條和文字來描述各種操作,是使用最早的算法和程序描述工具。美國國家標準化協會規定了一些常用流程圖符號,如圖1.1所示。

圖1.1 常用傳統流程圖符號

用傳統流程圖描述的例1.1如圖1.2所示。

圖1.2 例1.1的傳統流程圖

3.N-S流程圖

N-S流程圖簡稱N-S圖。這種流程圖能清楚地顯示出程序的結構。但當嵌套層數太多時,內層的方框將越畫越小,從而影響圖形的清晰度。

N-S 結構流程圖用以下三種基本元素框來表示三種基本結構。

(1)順序結構

圖1.3表示的是順序結構,即依次執行A、B語句或語句組。

圖1.3 順序結構

(2)選擇結構

圖 1.4 表示的是選擇結構,其意義是:當條件p成立時執行A操作,條件p不成立時執行B操作。

圖1.4 選擇結構

(3)循環結構

圖1.5(a)是當型循環結構,它表示的意義是:當條件p1成立時反復執行A操作,直到條件p1不成立時為止。圖1.5(b)是直到型循環結構,它表示的意義是:反復執行A操作,直到條件p2不成立時為止。

圖1.5 N-S結構流程圖

由于 N-S 圖廢除了流程線,因此比傳統流程圖更緊湊、易畫,整個算法結構是由各個基本結構按順序組成的,其上下順序就是執行順序,使寫算法和看算法只需從上到下進行,十分方便。但由于 N-S 圖僅使用三種基本結構設計程序,因此使某些程序設計的實現變得繁瑣和困難。

圖1.6是描述例1.1的N-S圖。

圖1.6 例1.1的N-S圖

4.偽代碼

偽代碼(Pseudo-code)又稱程序設計語言 PDL,是用介于自然語言和計算機語言之間的文字和符號來描述算法的。根據編程語言的不同,有對應的類xxx語言,例如類C、類Pascal等。偽代碼借助于某些高級語言的控制結構和一些自然語言的嵌套,每一行(或幾行)表示一個基本操作,書寫方便,格式緊湊,比較好懂,很容易轉化為高級語言程序。

偽代碼可以用英文、漢字、中英文混合表示算法,以便于書寫和閱讀為原則。用偽代碼描述算法并無固定的、嚴格的語法規則,它比程序設計語言更容易描述和理解,又比自然語言更接近程序設計語言,只要把意思表達清楚,書寫格式清晰易讀即可。

下面是描述例1.1的偽代碼。

read  a,b,c
if a>b
  a=>max
else
  b=>max
if c>max
  c=>max
print max

用自然語言、流程圖、N-S流程圖、偽代碼描述的算法很容易轉換為計算機程序,只要選擇一種計算機語言,按照其語法規則,就可以編寫出計算機程序。

主站蜘蛛池模板: 鹿泉市| 东乌珠穆沁旗| 山西省| 盱眙县| 伊宁县| 开封市| 视频| 新田县| 凤翔县| 鞍山市| 衡阳县| 怀来县| 东宁县| 顺义区| 什邡市| 科尔| 大姚县| 榆林市| 玛多县| 尼玛县| 邓州市| 青川县| 札达县| 伊宁市| 泸州市| 日照市| 湖州市| 乳源| 盐山县| 泸定县| 安丘市| 江口县| 济源市| 克什克腾旗| 宁国市| 板桥市| 于都县| 洛浦县| 宜都市| 阳城县| 都昌县|