偽碼
偽碼
偽碼即PDL,這是一個籠統的名稱,它是用正文形式表示數據和處理過程的設計工具。一般說來PDL是一種“混雜”語言,它使用一種語言(通常是某種自然語言)的辭彙,同時卻使用另一種語言(某種結構化的程序設計語言)的語法。
目錄
偽碼特點
1.關鍵字的固定語法,它提供了結構化控制結構、數據說明和模塊化的特點。為了使結構清晰和可讀性好,通常在所有可能嵌套使用的控制結構的頭和尾都有關鍵字。
2.自然語言的自由語法,它描述處理特點。
3.數據說明的手段。應該既包括簡單的數據結構,又包括複雜的數據結構。
4.模塊定義和調用的技術,應該提供各種介面描述模式。
偽碼結構
用PDL表示的程序結構一般有下列幾種結構:
1) 順序結構
採用自然語言描述順序結構:
處理S1
處理S2
…
處理Sn
2) 選擇結構
(1) IF-結構:
IF 條件 IF 條件
處理S1 或 處理S
ELSE endif
處理S2
ENDIF
(2) IF-ORIF-ELSE結構:
IF 條件1
處理S1
ORIF 條件2
…
ELSE 處理Sn
ENDIF
(3) CASE結構:
CASE OF
CASE(1)
處理S1
CASE(2)
處理S2
…
ELSE 處理Sn
ENDCASE
3) 重複結構
(1) FOR 結構:
FOR i=1 TO n
循環體
END FOR
(2) WHILE 結構:
WHILE 條件
循環體
ENDWHILE
(3) UNTIL 結構:
REPEAT
循環體
UNTIL 條件
4) 出口結構
(1) ESCAPE 結構(退出本層結構):
WHILE 條件
處理S1
ESCAPE L IF 條件
處理S2
ENDWHILE
L: …
(2) CYCLE結構(循環內部進入循環的下一次):
L: WHILE 條件
處理S1
CYCLE L IF 條件
處理S2
ENDWHILE
5) 擴充結構
(1) 模塊定義:
PROCEDURE 模塊名(參數)
…
RETURN
END
(2) 模塊調用:
CALL 模塊名(參數)
(3) 數據定義:
DECLARE 屬性 變數名, …
屬性有:字元、整型、實型、雙精度、指針、數組及結構等類型。
(4) 輸入/輸出:
GET(輸入變數表)
PUT(輸出變數表)
偽碼示例
現以××系統主控模塊詳細設計為例,說明如何用PDL來描述。
PROCEDURE模塊名( )
清屏;
顯示××系統用戶界面;
PUT(“請輸入用戶口令:”);
GET(password);
IF password<>系統口令
提示警告信息;
退出運行
顯示本系統主菜單;
WHILE(true)
接收用戶選擇ABC;
IF ABC=“退出”
Break;
ENDIF
調用相應下層模塊完成用戶選擇功能;
ENDWHILE;
清屏;
RETURN
END
從示例可以看到PDL的總體結構與一般程序完全相同。外語法同相應程序語言一致,內語法使用自然語言,易編寫,易理解,也很容易轉換成源程序。除此以外,還有以下優點:
(1) 提供的機制較圖形全面,為保證詳細設計與編碼的質量創造了有利條件。
(2) 可作為註釋嵌入在源程序中一起作為程序的文檔,並可同高級程序設計語言一樣進行編輯、修改,有利於軟體的維護。
(3) 可自動生成程序代碼,提高軟體生產率。目前已有PDL多種版本(如PDL/pascal, PDL/C, PDL/Ada等),為自動生成相應代碼提供了便利條件。