- 帕斯卡教程
- 帕斯卡 - 主页
- 帕斯卡 - 概述
- 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; 在函数体中为函数名称赋值。该值在函数执行时返回。正文中的最后一个语句必须是结束语句。
以下示例展示了如何在 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;
当您在一个源文件中定义函数并在另一文件中调用该函数时,需要进行函数声明。在这种情况下,您应该在调用该函数的文件顶部声明该函数。
调用函数
创建函数时,您需要定义该函数必须执行的操作。要使用函数,您必须调用该函数来执行定义的任务。当程序调用函数时,程序控制权将转移到被调用的函数。被调用函数执行定义的任务,当执行其返回语句或到达最后一个结束语句时,它将程序控制权返回给主程序。
要调用函数,您只需传递所需的参数和函数名称,如果函数有返回值,则可以存储返回值。下面是一个简单的例子来展示用法 -
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