- 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