程式設計基礎/模組化程式設計
模組化程式設計是一種軟體設計技術,它強調將程式的功能分離成獨立的、可互換的模組,以便每個模組包含執行所需功能的一個方面所需的一切。[1]
程式設計最重要的概念之一是模組化 - 將程式碼行分組在一起,以建立可互換的片段,這些片段可以根據需要新增到我們的程式中或從程式中刪除。最初的描述是子程式。其他名稱包括:宏、子例程、過程、模組和函式。函式很重要,因為它們允許我們將大型複雜程式分解成更小、更易於管理的片段。由於函式是整個程式的較小片段,因此我們可以集中精力於我們希望每個片段(函式)執行的操作,並執行測試和編輯程式碼。這樣,函式有助於組織程式碼。通常,函式分為兩類
- 程式控制 - 用於簡單地細分和控制程式的函式。這些函式對於正在編寫的程式是唯一的。其他程式可能使用類似的函式,甚至可能使用具有相同名稱的函式,但函式的內容幾乎總是非常不同的。
- 特定任務 - 設計用於多個程式的函式。這些函式執行特定任務,因此可在許多不同的程式中使用,因為其他程式也需要執行特定任務。特定任務函式有時被稱為構建塊。由於它們已經過編碼和測試,因此我們可以自信地使用它們來更有效地編寫大型程式。
主程式必須建立程式中使用的函式的存在。根據程式語言,有一種正式的方法來
- 定義一個函式(它的定義或它將執行的程式碼)
- 呼叫一個函式
- 宣告一個函式(原型是對編譯器的宣告)
注意:定義和呼叫函式是跨程式語言的常見活動。使用原型宣告函式特定於某些程式語言,包括 C 和 C++。
程式控制函式通常不互相通訊,但使用一個公共區域來儲存變數。特定任務函式的構建方式允許在呼叫程式片段(通常是另一個函式)和被呼叫的函式之間進行資料通訊。這種通訊資料的能力使我們能夠構建一個特定任務函式,該函式可能在許多程式中使用。資料進出函式的通訊規則因程式語言而異,但概念是相同的。傳遞(或通訊)的資料項稱為引數。因此,措辭為:引數傳遞。四種資料通訊選項包括
- 沒有通訊進,沒有通訊出
- 沒有通訊進,有一些通訊出
- 有一些通訊進,有一些通訊出
- 有一些通訊進,沒有通訊出
在許多程式語言中,主程式片段是一個特殊的函式,其識別符號名稱為 main。函式控制程式對於一個程式是唯一的。 "Main" 是程式中程式碼執行開始的地方,函式被呼叫的地方,以及程式執行結束的地方。它通常是程式中定義的第一個函式,並且是定義許多程式重要設定的區域。這些設定包括原型宣告、列出全域性常量和變數,以及許多其他技術專案。定義函式 main 的程式碼已提供;但是,它沒有像程式中的其他函式那樣被原型化或通常被呼叫。
我們經常需要執行一項特定任務,該任務可能在許多程式中使用。特定任務函式旨在用於許多程式。
靜態型別語言(如 C++、C# 和 Java)中函式的一般佈局
<return value data type> function identifier name(<data type> <identifier name for input value>) {
//lines of code;
return <value>;
}
動態型別語言(如 JavaScript 和 Python)中函式的一般佈局
function identifier name(<identifier name for input value>) {
//lines of code;
return <value>;
}
def function identifier name(<identifier name for input value>):
//lines of code
return <value>
在某些程式語言中,函式有一組大括號 {} 用於識別語句或程式碼行的組或塊。其他語言使用縮排或某種型別的開始和結束語句來識別程式碼塊。函式中通常有幾行程式碼。
程式語言將根據給定語言的編碼約定,在 main 函式之前或之後定義特定任務函式。
當您呼叫一個函式時,您使用它的識別符號名稱和一組圓括號。您將要傳遞的任何資料項都放置在圓括號內。在我們的程式編譯並執行後,main 函式中的程式碼行將被執行,當它到達呼叫特定任務函式時,程式的控制權將移至該函式並開始執行該函式中的程式碼行。完成後程式碼行,它將返回到呼叫它的程式位置(在我們示例中是 main 函式),並繼續執行該函式中的程式碼。
大多數程式在函式之前都有幾個專案,包括
- 文件 - 大多數程式在程式開頭都有一個註釋區域,其中包含各種與程式相關的註釋。
- 用於訪問標準庫函式的包含或匯入語句。
- 特定於語言的程式碼,例如名稱空間引用或函式原型。
- 全域性或模組級常量和變數(如果需要)。
- 大括號
- 用於識別 C++、C#、Java 和 JavaScript 等語言中的程式碼塊。
- 函式
- 如今許多流行的程式語言中模組的稱謂。
- 函式呼叫
- 一個函式使用或呼叫另一個函式。
- 函式定義
- 定義函式功能的程式碼。
- 函式原型
- 一個函式對編譯器的通訊宣告。
- 識別符號名稱
- 程式設計師為識別函式或其他程式專案(如變數)而給出的名稱。
- 模組化
- 將一些程式碼行分組為一個單元的能力,該單元可以包含在我們的程式中。
- 引數傳遞
- 資料進出函式的通訊方式。
- 程式控制
- 用於細分和控制程式的函式。
- 特定任務
- 旨在與多個程式一起使用的函式。