首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

算法表示方法大全:流程圖、N-S 圖、偽代碼與結構化程式設計

     編輯:關於C語言

複雜問題不能靠自然語言描述算法。本文系統介紹四大算法表示工具——傳統流程圖、N-S 結構流程圖、偽代碼、計算機語言——並闡述結構化程式設計的四大核心原則。

一、傳統流程圖

流程圖符號

三大基本結構(結構化定理)

結構流程圖N-S 圖四大共同特徵
順序順序N-S順序① 單一入口
② 單一出口
③ 內部每部分皆可達
④ 無死循環
選擇選擇N-S選擇
循環循環(N-S 以矩形框+條件標記)

經典範例流程圖

  • 例 2.6: 5! 計算流程圖 5!流程圖
  • 例 2.7: 級數求和流程圖 級數流程圖
  • 例 2.8: 閏年判斷流程圖 閏年流程圖

二、N-S 流程圖(結構流程圖)

  • 1973 年美國學者 Neassi & Shneiderman 提出。
  • 無箭頭,用嵌套矩形框表達結構,強制結構化,杜絕 goto 式亂跳。
  • 順序:上下堆疊;選擇:並列分支;循環:矩形框標注條件。

三、偽代碼

  • 介於自然語言與程式語言之間,不受語法嚴格約束。
  • 關注邏輯而非語法細節,便於溝通與快速原型。
  • 例:WHILE denominator <= 100 DO ... END WHILE

四、計算機語言實現

  • 最終落地:嚴格遵循語法規則的可執行代碼。
  • 例 2.20 (C語言求 5!):
main() {
    int i, t;
    t = 1; i = 2;
    while (i <= 5) { t = t * i; i = i + 1; }
    printf("%d", t);
}
  • 例 2.21 (級數求和):
main() {
    int sign = 1;
    float deno = 2.0, sum = 1.0, term;
    while (deno <= 100) {
        sign = -sign;
        term = sign / deno;
        sum += term;
        deno += 1;
    }
    printf("%f", sum);
}

五、結構化程式設計四大原則

  1. 自頂向下: 從主功能分解為子功能,層層細化。
  2. 逐步細化: 抽象→具體,延遲實現細節。
  3. 模塊化設計: 高內聚、低耦合,單一職責。
  4. 結構化編碼: 僅用順序、選擇、循環三結構,禁用 goto。

工程實踐建議

階段推薦工具產出物
需求分析自然語言 + 用例圖需求規格
架構設計偽代碼 + 模塊劃分高層設計文檔
詳細設計N-S 圖 / 流程圖 (關鍵演算法)詳細設計文檔
編碼實現目標程式語言 (C/C++/Java...)源代碼
代碼審查靜態分析 + 人工走讀審查報告

總結

流程圖直觀但易畫成「義大利麵條」;N-S 圖強制結構化但繪製繁瑣;偽代碼靈活高效但無法直接執行。現代工程實踐傾向:架構層用偽代碼/時序圖,關鍵演算法用 N-S 圖/流程圖,其餘直寫代碼並配合單元測試驗證邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved