Pascal 函数

  • 子程序

    子程序是执行特定任务的程序单元/模块。这些子程序组合在一起形成更大的程序。这基本上称为“模块化设计”。子程序可以被称为调用程序的子程序/程序调用。Pascal提供了两种子程序-
    • 函数 -这些子程序返回单个值。
    • 过程 -这些子程序不会直接返回值。
  • 函数

    c loop_architecture
    一个函数是一组共同执行任务的语句。每个Pascal程序都有至少一个函数,即程序本身,并且所有最简单的程序都可以定义其他功能。函数声明告诉编译器函数的名称,返回类型和参数。函数定义提供函数的实际主体。Pascal标准库提供了程序可以调用的大量内置函数。例如,函数AppendStr()追加两个字符串,函数New()动态地将内存分配给变量和更多函数。
  • 定义函数

    一个函数是使用function关键字定义的。Pascal 函数定义的一般形式如下-
    语法
    
    function name(argument(s): type1; argument(s): type2; ...): function_type;
    local declarations;
    
    begin
       ...
       < statements >
       ...
       name:= expression;
    end;
    
    Pascal中的函数定义由函数头,局部声明和函数体组成。函数头由关键字function和给该函数的名称组成。这是函数的所有部分-
    • 参数 - 参数在调用程序和函数标识符之间建立链接,也称为形式参数。参数就像一个占位符。调用函数时,将一个值传递给参数。此值称为实际参数或自变量。参数列表是指函数的参数的类型,顺序和数量。此类形式参数的使用是可选的。这些参数可以具有标准数据类型,用户定义的数据类型或子范围的数据类型。函数语句中出现的形式参数列表可以是简单或下标变量,数组或结构化变量或子程序。
    • 返回类型 - 所有函数都必须返回一个值,因此必须为所有函数分配一个类型。的函数式是值的函数返回的数据类型。它可以是标准的,用户定义的标量或子范围类型,但不能是结构化类型。
    • 局部声明 - 局部声明是指标签,常量,变量,函数和过程的声明,它们仅适用于函数体。
    • 函数体 - 函数体包含用于定义函数功能的语句的集合。应始终将其保留在保留字的开头和结尾之间。它是函数中执行所有计算的一部分。必须有一个类型为- 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