
- Pascal 教程
- Pascal - 首頁
- Pascal - 概述
- Pascal - 環境設定
- Pascal - 程式結構
- Pascal - 基本語法
- Pascal - 資料型別
- Pascal - 變數型別
- Pascal - 常量
- Pascal - 運算子
- Pascal - 決策制定
- Pascal - 迴圈
- Pascal - 函式
- Pascal - 過程
- Pascal - 變數作用域
- Pascal - 字串
- Pascal - 布林值
- Pascal - 陣列
- Pascal - 指標
- Pascal - 記錄
- Pascal - 變體
- Pascal - 集合
- Pascal - 檔案處理
- Pascal - 記憶體
- Pascal - 單元
- Pascal - 日期和時間
- Pascal - 物件
- Pascal - 類
- Pascal 有用資源
- Pascal - 快速指南
- Pascal - 有用資源
- Pascal - 討論
Pascal - 函式
子程式
子程式是一個執行特定任務的程式單元/模組。這些子程式組合起來形成更大的程式。這基本上稱為“模組化設計”。子程式可以由子程式/程式呼叫,該子程式/程式稱為呼叫程式。
Pascal 提供兩種子程式:
函式 - 這些子程式返回單個值。
過程 - 這些子程式不直接返回值。
函式
函式是一組語句,它們共同執行一項任務。每個 Pascal 程式至少包含一個函式,即程式本身,並且所有最簡單的程式都可以定義其他函式。
函式宣告告訴編譯器有關函式的名稱、返回型別和引數的資訊。函式定義提供了函式的實際主體。
Pascal 標準庫提供了許多內建函式,您的程式可以呼叫這些函式。例如,函式AppendStr()連線兩個字串,函式New()為變數動態分配記憶體,還有許多其他函式。
定義函式
在 Pascal 中,函式使用 function 關鍵字定義。函式定義的一般形式如下:
function name(argument(s): type1; argument(s): type2; ...): function_type; local declarations; begin ... < statements > ... name:= expression; end;
Pascal 中的函式定義由函式頭部、區域性宣告和函式主體組成。函式頭部包含關鍵字 function 和賦予函式的名稱。以下是函式的所有部分:
引數 - 引數建立了呼叫程式和函式識別符號之間的聯絡,也稱為形式引數。引數就像一個佔位符。當呼叫函式時,您會將一個值傳遞給引數。此值稱為實際引數或引數。引數列表指的是函式的引數型別、順序和數量。使用此類形式引數是可選的。這些引數可以具有標準資料型別、使用者定義的資料型別或子範圍資料型別。
出現在函式語句中的形式引數列表可以是簡單變數或下標變數、陣列或結構化變數,或子程式。
返回型別 - 所有函式都必須返回一個值,因此所有函式都必須分配一個型別。函式型別是函式返回的值的資料型別。它可以是標準的、使用者定義的標量或子範圍型別,但不能是結構化型別。
區域性宣告 - 區域性宣告指的是標籤、常量、變數、函式和過程的宣告,這些宣告僅適用於函式體。
函式體 - 函式體包含定義函式作用的一組語句。它應始終包含在保留字 begin 和 end 之間。它是函式中執行所有計算的部分。函式體中必須有一個型別為 name := expression; 的賦值語句,該語句將一個值賦給函式名。此值在執行函式時返回。主體中的最後一條語句必須是 end 語句。
以下是一個示例,演示如何在 pascal 中定義函式:
(* function returning the max between two numbers *) function max(num1, num2: integer): integer; var (* local variable declaration *) result: integer; begin if (num1 > num2) then result := num1 else result := num2; max := result; end;
函式宣告
函式宣告告訴編譯器有關函式名稱以及如何呼叫函式的資訊。函式的實際主體可以單獨定義。
函式宣告具有以下部分:
function name(argument(s): type1; argument(s): type2; ...): function_type;
對於上面定義的函式 max(),以下是函式宣告:
function max(num1, num2: integer): integer;
當您在一個原始檔中定義一個函式並在另一個檔案中呼叫該函式時,需要函式宣告。在這種情況下,您應該在呼叫函式的檔案頂部宣告該函式。
呼叫函式
在建立函式時,您會給出函式必須執行的操作的定義。要使用函式,您必須呼叫該函式以執行定義的任務。當程式呼叫函式時,程式控制權將轉移到被呼叫函式。被呼叫函式執行定義的任務,當執行其 return 語句或到達其最後一個 end 語句時,它將程式控制權返回給主程式。
要呼叫函式,您只需將所需的引數與函式名稱一起傳遞,如果函式返回值,則可以儲存返回值。以下是一個簡單的示例,說明用法:
program exFunction; var a, b, ret : integer; (*function definition *) function max(num1, num2: integer): integer; var (* local variable declaration *) result: integer; begin if (num1 > num2) then result := num1 else result := num2; max := result; end; begin a := 100; b := 200; (* calling a function to get max value *) ret := max(a, b); writeln( 'Max value is : ', ret ); end.
當編譯並執行上述程式碼時,它會產生以下結果:
Max value is : 200