delphi语法基础--过程

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2011-03-09 15:56:01
给某个语句序列组成的子程序赋于一个标识符。程序中凡是需要出现这个语句序列的地方,可以简单的写上该子程序的标识符。这样完成一个操作的子程序称为过程。过程说明。
一、过程
1、过程定义由过程首部和过程体组成,其形式如下:
     procedure 过程名(形式参数表);   { 过程首部 }     
       局部变量说明;
      begin
       执行语句;
        ……             过程体
     end;
例1:定义过程求n!。
procedure jc(n:integer);             
   var k:integer;                 
  begin                             { 变量t在主程序中说明 }
   t:=1; for k:=2 to n do t:=t*k;  { 最后由t将n!值返回调用程序 }

end;                               
   过程首部,以保留字procedure开头。圆括号内为形参表。无参数时,形参表可省略。定义的过程名不能再做其它变量名、数组名、过程名等。

    形参有值形参和变量形参。如:procedure sub(x,y:integer; var k:real); 

其中,x,y为值形参,k为变量形参。

除函数首部和过程首部的句法略有差别外,函数体和过程体完全相同。函数返回一个函数值,过程则能完成一系列各种操作。函数的调用方式出现在表达式中,而过程调用是一句独立的语句。与函数不同,不能给过程名赋值。

 

二、变量及其作用域

1.全程变量的作用域
  全程变量是指在程序开头的说明部分定义和说明的量。它的作用域分为两种情况:
(1)在全程变量和局部变量不同名时,其作用域是整个程序。
(2)在全程变量和局部变量同名时,全程变量的作用域不包含同名局部变量的作用域。

2.局部变量的作用域
  凡是在子程序内部使用的变量,必须在子程序中加入说明。这种在子程序内部说明的变量称为局部变量。局部变量的作用域是其所在的子程序。形式参数也只能在子程序中有效。因此也属于局部变量。局部变量的作用域分为两种情况:
(1)当外层过程的局部变量名和嵌套过程中的局部变量不同名时,外层过程的局部变量作用域包含嵌套过程。
(2)当外层过程的局部变量名和嵌套过程内的局部变量名同名时,外层局部变量名的作用域不包含此过程。

   引入局部变量可以节省内存空间,且便于结构化程序设计。在某些程序中,为了使变量间不互相干扰,一般采用局部变量。如变量间需某种联系时,则可选择全程变量或形参。

 

三、参数的调用

函数调用或过程调用的执行步骤分为以下几步:
    实参和形参结合→执行函数或过程体→返回调用处继续执行
 
  函数或过程说明的形参表对函数或过程体直接引用的变量进行说明,详细指明这些参数的类别、数据类型要求和参数的个数。函数或过程被调用时必须为它的每个形参提供一个实参,按参数的位置顺序一一对应,每个实参必须满足对应形参的要求。
 
  形参可分为四类:值形参,变量形参、函数形参和过程形参。实参也可分为四类:值实参,变量实参、函数实参和过程实参。
 
1.值参数
  值参数是形式参数表中前面没有var,后有类型说明的参数。

如:function fac(x:integer):integer; 它类似过程和函数的局部变量,仅为过程和函数的执行提供初值而不影响调用时实际参数的值。在调用过程或函数时,值参数所对应的实际参数必须是表达式。实参必须和形参赋值相容。

var a:integer;

procedure s(b:integer);   { b为值形参 }

begin b:=b+5; writeln('b=',b) end; 

begin 

a:=10; s(a); writeln('a=',a)

end.

运行结果:

b=15   { 过程中输出的值形参b的值 }

a=10   { a为实参,并没有因调用过程而改变其值,值形参b的值的改变并不影响相应实参a的值。}

[1] [2] [3]  下一页

Tags:

作者:佚名
  • 好的评价 如果您觉得此文章好,就请您
      100%(2)
  • 差的评价 如果您觉得此文章差,就请您
      0%(0)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

广告位置B