函数和过程r
r
r
r
一、函数r
r
二、过程r
r
三、形参和实参r
r
四、标识符的作用域r
r
r
r
一、函数r
r
如果一个子程序执行后能够返回其结果制,那么它就可以用于表达式中,称这种子程序为函数,这种语句序列的定义称为函数说明。函数说明形式如下:r
r
fu
ctio
函数名形式参数表函数类型;r
说明部分;r
begi
r
语句1r
语句2r
……r
语句
r
e
dr
r
函数返回一个函数值,过程则能完成一系列各种操作。函数的调用方式出现在表达式中,而过程调用是一句独立的语句。r
r
例:计算X的函数r
r
fu
ctio
zhoufeixrealrealr
varzi
tegerr
begi
r
ifx0the
zxr
elsezxr
zhoufeizr
e
dr
r
函数说明第一行为函数首部。它指明函数名、函数形参信息和函数值的数据类型。如上面求x绝对值的函数说明,函数名是zhoufei;它有一个值参数X为实型;函数值的数据类型为实型。TurboPascal规定一个函数只能求出一个简单值,所以函数值类型只能是任何非结构类型。r
r
除函数首部和过程首部的句法略有差别外,函数体和过程体完全相同。函数体中至少要有一条语句对函数名赋值。如函数zhoufei中有语句“power:z”。函数的每次求值至少要执行这样的一条语句,为次计算求得一个值。返回时就把这个值带调用的地方。r
r
二、过程r
r
给某个语句序列组成的子程序赋于一个适当的名字。程序中凡是需要出现这个语句序列的地方,可以简单的写上子程序的名字。这种完成一个操作的子程序称为过程;子程序的定义称为过程说明。r
r
过程说明由过程首部和过程体组成,其形式如下:r
r
procedure过程名形式参数表过程首部r
r
说明部分r
r
begi
r
r
执行语句r
r
……r
r
e
dr
r
例:输出两个数中最大值的过程r
r
procedurelargestabi
tegerr
begi
r
ifabthe
writel
ar
elsewritel
br
e
dr
r
上面largest过程由两个类型为整型的形式参数ab,你向过程传入的两个需要比较大小的数。r
r
三、形参和实参r
r
子程序调用过程调用或函数调用的执行顺序分为以下几步:r
r
实参和形参结合〉执行子程序〉返回调用处继续执行r
r
子程序说明的形式参数表对子程序体直接引用的变量进行说明,详细指明这些参数的类别、数据类型要求和参数的个数。子程序被调用时必须为它的每个形参提供一个实参,按参数的位置顺序一一对应,每个实参必须满足对r