已阅读5页,还剩72页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PASCAL程序设计基础 柴沟中学鹿咏梅 一 PASCAL语言基础知识 二 结构化程序设计 三 数组与字符串 四 函数与过程 五 递归 一 PASCAL程序的基本结构 Programarea Constpi 3 1416 Varr integer s real Beginwriteln enterr readln r s pi r r write s s End 程序首部 说明部分 执行部分 Program程序名 Const常量说明 Type类型说明 Var变量说明 Function函数说明 Procedure过程说明 Begin语句1 语句2 End 例 已知圆的半径r 编程求圆的面积s Program Const Var Begin End 第一节PASCAL语言基础知识 二 PASCAL字符与符号 1 标识符 1 标识符的定义 标识符就是以字母开头的字母数字序列 有效长度为63个字符 并且大小写等效 可以用来标示常量 变量 程序 函数等 二 PASCAL字符与符号 2 标识符的分类 a 保留字 关键字 所谓保留字是指在Pascal语言中具有特定的含义 标准Pascal语言中的保留字一共有35个 PROGRAM BEGIN END CASE FUNTION PROCEDURE ARRAY AND CONST DIV DO DOWNTO ELSE FILE FOR GOTO IF IN LABEL MOD NIL NOT OF OR PACKED RECORD REPEAT SET THEN TO TYPE UNTIL VAR WHILE WITH 二 PASCAL字符与符号 b 标准标识符 指Pascal语言预先定义的标识符 具有特殊含义 标准常量FalseMaxintTrue标准类型BooleanCharRealInteger标准函数AbsArctanChrCosEofEolnExpLnOddOrdPredRoundSinSqrSqrtSuccTrunc标准过程DisposeGetNewPackPagePutReadReadlnResetRewriteUnpackWriteWriteln标准文件InputOutput 二 PASCAL字符与符号 c 用户自定义标识符 由你自己根据需要来定义 选用的标识符不能与保留字和标准标识符相同 在定义标识符时可以用的字符 A Z a z 0 9 注 Pasca语言除了能使用以上规定的基本符号外 不得使用任何其它符号 三 PASCAL数据类型 数据的一个重要特征就是它的类型 数据类型确定了数据的构成和可进行的运算 Pascal语言是一种强类型语言 不同类型间不能任意转换 不同类型的变量一般不允许作混合运算 程序中出现的所有常量 变量和用户自定义的数据必须预先说明后才能使用 三 PASCAL数据类型 Pascal数据类型 简单类型 构造类型 指针类型 三 PASCAL数据类型 1 整型 类型数值范围shortint 短整型 128 128integer 整型 32768 32767longint 长整型 2147483648 2147483647byte 字节型 0 255word 字类型 0 65535 三 PASCAL数据类型 2 实型 类型数值范围real 基本实型 2 9e 39 1 7e38single 单精度实型 1 5e 45 3 4e38double 双精度实型 5 0e 324 1 7e308 三 PASCAL数据类型 3 布尔型 boolean false true 0 1 逻辑真 逻辑假 三 PASCAL数据类型 4 字符型 char 字符型的值必须用单引号括起来 字母作为字符型的值时 大小写是不等价的 并且字符型只允许单引号中有一个字符 否则就是字符串 例 varc char c a 四 常量与变量 1 常量 1 常量 在某个程序的整个过程中其值不变的量 2 常量定义 常量定义出现在说明部分 语法格式 const常量标识符1 常量值1 常量标识符n 常量值n 常量标识符的类型由定义它的常量的类型决定 Constpi 3 1416 a 10 c c t true 四 常量与变量 2 变量 1 变量 在某个程序的运行过程中其值可以发生改变的量 2 变量说明 变量说明出现在说明部分 语法格式 var变量标识符列表 类型 变量标识符列表 类型 vara b c integer m n real 五 运算符和表达式 1 运算符a 算术运算符运算符运算运算对象结果类型 加整型 实型只要有一个运算对象是实型 结果就 减整型 实型是实型 如果全部的运算对象都是整 乘整型 实型型并且运算不是除法 则结果为整型 除整型 实型若运算是除法 则结果是实型 div整除整型整型mod取余整型整型 5div3 15mod3 2 五 运算符和表达式 b 逻辑运算符运算符运算运算对象结果类型not逻辑非布尔型布尔型and逻辑与布尔型布尔型or逻辑或布尔型布尔型xor逻辑异或布尔型布尔型 not 非 条件为True时 其结果值为False 否则为True 取反 not 3 4 and 与 两条件都为True时 其结果值为True 否则为False or 或 两条件中只要有一个为True 其结果值为True 否则为False xor 异或 两条件的逻辑值不相同时 其结果值为True 否则为False 五 运算符和表达式 c 关系运算符运算符运算运算对象结果类型 等于简单类型布尔型不等于简单类型布尔型大于简单类型布尔型 大于等于简单类型布尔型 运算符优先级 not div mod and xor or in 五 运算符和表达式 2 表达式 1 通过运算符把常量 变量 函数调用结合起来组成的式子 pi r rSum 2 x y and z y 五 运算符和表达式 2 数学上的表达式与pascal语言表达式的区别数学表达式PASCAL表达式注意2a2 a 号不能省略a ba b除号的写法a bab不等号的写法a ba b小于等于号的写法 五 运算符和表达式 Pascal中的逻辑运算 五 运算符和表达式 第二节结构化程序设计 pascal程序的三种基本结构 顺序结构 分支结构 循环结构 一 什么是顺序结构 例1 键盘输入两个变量的值 交换值后输出 方法 间接交换法算法分析 自顶向下 逐步求精 的编程思想 s1 通过键盘给a b两个变量赋值 s2 交换a b的值 s2 1 引入中间变量c s2 2 在c中存放的a值 s2 3 在a中存放的b值 s2 4 在b中存放的c值 s3 输出变量a b的值 程序代码 programex1 vara b c integer beginwrite pleaseinputa b read a b writeln a a b b c a a b b c writeln a a b b end 一 顺序结构程序设计 Pascal语言的语句分为简单语句 也称基本语句 和复合语句 也称构造语句 二 几个简单语句 1 赋值语句 格式 变量标识符 表达式 功能 计算和赋值双重功能 例2 写出程序执行后 变量的值 程序代码 programex2 vara b integer c real ch char bool boolean begina 3 b a b a 1 a a 1 c a b ch h bool true bool notbool end 说明 1 赋值号不同于 号 具有方向性 具有计算功能 2 赋值号两边的类型应该相同 3 一个赋值语句只能给一个变量赋值 变量可以进行多次赋值 4 被赋值的变量可以作为因子参与运算 2 输入语句 read readln 格式 read 变量名表 readlnread a1 a2 a3 等价于read a1 read a2 read a3 readln a1 a2 a3 等价于read a1 read a2 read a3 readln 功能 通过键盘 给指定的变量赋值 例3 写出程序运行后 变量的值 程序代码 programex3 vara b c integer i j k real ch1 ch2 ch3 char beginread a b c readln i j k read ch1 ch2 ch3 writeln a a b b c c writeln i i j j k k writeln ch1 ch1 ch2 ch2 ch3 ch3 end 程序运行后 输入数据 123456 17890dos 执行readln后多余的数据将被忽略 执行read后多余的数据要么被忽略 要么被下一个read或readln语句所读入 3 输出语句 write writeln 格式 write 输出项 writeln 功能 按指定的格式将输出项的内容输出 例4 写出程序运行后的结果 程序代码 programex4 consta 10 b 20 beginwriteln 50 writeln a writeln a b writeln a b a b end 说明 1 输出项的内容可以是一项 也可以是若干项 各项之间用逗号分隔 2 当输出项为常量 直接输出常量的值 当输出项为变量时 输出该变量存储单元内的内容 变量允许属于任何一种标准数据类型 当输出项为表达式时 先计算后输出 当输出项为字符串时 原样输出单引号括起来的内容 501030a b 30 1 定义 复合语句是由若干条语句组成的语句序列 形式 begin语句1 语句2 语句nend 用保留字begin和end括起来 构成一条逻辑上的语句 语法上充当一条语句 三 复合语句 二 选择结构程序设计 1 if语句 格式 1 if条件then语句 2 if条件then语句1else语句2 3 if语句嵌套if条件1then语句11elseif条件2then语句21else语句22 例 计算下列函数y Programp Varx y real beginread x ifx0theny 1elsey 0 writeln y y end 输入 5输出 0 x 0 1 x 0 1 x 0 2 case语句 分情况语句 多分支语句 格式 case表达式of常数表1 语句1 常数表2 语句2 常数表n 语句n else语句n 1end 功能 先计算表达式的值 然后将表达式的值依次与各常数表进行对照 当找到一个与表达式的值相匹配的常数表时 就去执行该CASE常数表后面的语句 说明 1 end与case对应2 表达式的类型通常是整型 字符型3 常量表是常量 其类型与表达式的类型要一致 常量表中的常量不能重复 通常将一组重复执行的语句称为循环体 而控制重复执行或终止执行由重复终止条件决定 因此 重复语句是由循环体及重复终止条件两部分组成 FOR循环 当循环while 直到repeat循环 一 循环结构的三种形式 三 循环结构程序设计 一 for循环语句 1 for语句 计数循环 就是将规定循环体重复执行的次数 格式 for控制变量 初值to终值do循环体语句 for控制变量 初值downto终值do循环体语句 2 for语句执行过程 先将初值赋给左边的变量 称为循环控制变量 判断循环控制变量的值是否已 超过 终值 如已超过 则跳到步骤 如果末超过终值 则执行do后面的那个语句 称为循环体 循环变量递增 对to 或递减 对downto 返回步骤 循环结束 执行 循环下面的一个语句 3 说明 1 初值和终值可以是表达式 控制变量和初值 终值的类型相同 且必须是整型 布尔型和字符型等顺序类型 不能为实型 2 递增按succ函数规律变化 递减按pred函数规律变化 整型按数值大小变化 如果为字符型量 按ASCII码表的顺序计算 3 初值和终值在循环之前计算 重复过程中 其值不受影响 不得在循环语句中对控制变量进行赋值 4 当初值超过终值 不执行循环 循环次数为零 例 计算1 2 3 100之和 vari s integer begins 0 fori 1to100dos s i writeln s end 循环体 重复执行 初值 i 循环控制变量 终值 二 while语句 对于for循环有时也称为计数循环 适合用于事先知道循环次数 当循环次数未知 只能根据某一条件来决定是否进行循环时 用while语句实现循环要更方便 当型循环 当条件满足时反复执行循环体 格式 while布尔表达式do语句 执行过程 while语句的执行过程为 判断布尔表达式的值 如果其值为真 执行步骤2 否则执行步骤4 执行循环体语句 do后面的语句 返回步骤1 结束循环 执行while的下一个语句 说明 1 为了使while循环能正常终止 布尔表达式中的变量必须在循环体中的某语句中有所改变 即有可能使布尔表达式的值为假 使循环结束 否则将出现死循环 2 循环体中的语句一般是多条语句 用begin和end使其成为一条复合语句 引例 求恰好使s 1 1 2 1 3 1 n的值大于10时n的值 vars real n integer n分母 begins 0 n 0 whiles 10do 当s的值还未超过10时 beginn n 1 分母1 s s 1 n 将下一项值累加到s end writeln n 输出结果 end repeat语句 直到型循环 反复执行循环体直到条件满足为止 格式 repeat语句1 语句2 语句3 语句nuntil布尔表达式 执行过程 先执行指定的语句序列 然后判断表达式 三 repeat语句 直到型循环 例 输入若干个字符 它的终止符是 计算输入的字符中 a A 出现的次数 programex7 varch char i integer begini 0 repeatread ch if ch a or ch A theni i 1 untilch writeln i i end 三种循环语句的相同点与不同点 数组 一 为什么要使用数组 例1输入50个学生的某门课程的成绩 打印出低于平均分的同学号数与成绩 分析 在解决这个问题时 虽然可以通过读入一个数就累加一个数的办法来求学生的总分 进而求出平均分 但因为只有读入最后一个学生的分数以后才能求得平均分 且要打印出低于平均分的同学 故必须把50个学生的成绩都保留下来 然后逐个和平均分比较 把高于平均分的成绩打印出来 如果 用简单变量a1 a2 a50存放这些数据 可想而知程序要很长且繁 要想如数学中使用下标变量ai形式表示这50个数 则可以引入下标变量a i 这样问题的程序可写为 第三节数组与字符串 tot 0 tot表示总分 fori 1to50do 循环读入每一个学生的成绩 并累加它到总分 beginread a i tot tot a i end ave tot 50 计算平均分 fori 1to50doifa i avethenwriteln No i a i 如果第i个同学成绩小于平均分 则将输出 而要在程序中使用下标变量 则必须先说明这些下标变量的整体 数组 即数组是若干个同名 如上面的下标变量的名字都为a 下标变量的集合 二 一维数组当数组中每个元素只带有一个下标时 我们称这样的数组为一维数组 1 一维数组类型的定义 一维数组类型的一般格式 array 下标1 下标2 of 我们可以说 数组是由固定数量的相同类型的元素组成的 如 typearraytype array 1 8 ofinteger vara1 a2 arraytype 或vara1 a2 array 1 8 ofinteger 一维数组应用示例 例输入50个数 要求程序按输入时的逆序把这50个数打印出来 也就是说 请你按输入相反顺序打印这50个数 分析 我们可定义一个数组a用以存放输入的50个数 然后将数组a内容逆序输出 源程序如下 programex5 1 typearr array 1 50 ofinteger 说明一数组类型arr vara arr i integer beginwriteln Enter50integer fori 1to50doread a i 从键盘上输入50个整数 readln fori 50downto1do 逆序输出这50个数 write a i 10 end 二维数组 数组类型的定义中有两个下标类型 二维数组类型的定义 typeintarr array 1 4 ofinteger arr array 1 5 ofintarr vara arr 变量a是一个二维的数组变量 它有5个分量 分别用a 1 a 2 a 3 a 4 a 5 表示 每个分量相当于一个一维的数组变量 有4个整型分量 通过下标区分 a 1 1 a 1 2 a 1 3 a 1 4 a 2 1 a 2 2 a 2 3 a 2 4 a 3 1 a 3 2 a 3 3 a 3 4 a 4 1 a 4 2 a 4 3 a 4 4 a 5 1 a 5 2 a 5 3 a 5 4 typearr array 1 5 ofarray 1 4 ofinteger vara arr 等价的定义方式 typearr array 1 5 1 4 ofinteger vara arr 或vara array 1 5 1 4 ofinteger a 1 1 a 1 2 a 1 3 a 1 4 a 2 1 a 2 2 a 2 3 a 2 4 a 3 1 a 3 2 a 3 3 a 3 4 a 4 1 a 4 2 a 4 3 a 4 4 a 5 1 a 5 2 a 5 3 a 5 4 二维数组应用举例 例 输入4名学生数学 物理 英语 化学 pascal五门课的考试成绩 求出每名学生的平均分 打印出表格 分析 用二维数组a存放所给数据 第一下标表示学生的学号 第二个下标表示该学生某科成绩 如a i 1 a i 2 a i 3 a i 4 a i 5 分别存放第i号学生数学 物理 英语 化学 pascal五门课的考试成绩 由于要求每个学生的总分和平均分 所以第二下标可多出两列 分别存放每个学生5门成绩和总分 平均分 源程序如下 programex5 4 vara array 1 4 1 7 ofreal i j integer beginfillchar a sizeof a 0 函数fillchar用以将a中所有元素置为0 writeln Enter4studentsscore fori 1to4dobeginforj 1to5do 读入每个人5科成绩 beginread a i j 读每科成绩时同时统计总分 a i 6 a i 6 a i j end readln a i 7 a i 6 5 求平均分 end 输出成绩表 writeln No Mat Phy Eng Che Pas Tot Ave fori 1to4dobeginwrite i 2 forj 1to7dowrite a i j 9 2 writeln end end 字符串 字符串有常量形式和变量形式 把按一定顺序排列的字符数据叫做字符串 表示方法是将字符放入单引号中 字符串个数叫做字符串的长度 字符串变量可以用串类型标识符string n 来表示 N取值在1 255之间 省略为255 定义格式 type字符串类型名 string 最大长度 定义字符串变量格式是 Var字符串变量名 字符串类型名 也可以直接定义字符串变量 其格式为 Var变量名 string 最大长度 或变量名 string 字符串之间的运算 对字符串可以整体输入或输出 如 read x write y 允许对串变量进行赋值 如 X abc y x 可以对字符串进行连接运算 使用 进行连接 如 ho me 结果是 home 字符串之间可以进行关系运算 比较方法按ASCII码一个字符一个字符比较 字符串函数 1 字符串测长函数格式 length s 功能 求字符串S的长度 结果为整型 2 求子串函数格式 copy s n 1 功能 在S串的第N位开始截取1位字符串 3 查找子串函数格式 pos b s 功能 求子串b在s中出现的起始位置 结果为整型 若未找到显示0 4 插入过程格式 insert s1 s2 i 功能 将s1插入s2中的第i个字符位置 若结果超出s2的最大长度 则超出的部分被截掉 5 删除过程格式 delete s I n 功能 删除s中第i个字符位置开始的n个字符 6 数值转换为字符串过程格式 str v s 功能 将数值V转换成字符串 存放在字符串变量s中 7 字符串转换为数值过程格式 val s v c 功能 将数字串s转换成数值v 变量C记录检测出错的第一个字符的位置 当未出错时 C为0 一 过程和函数统称子程序 子程序的执行过程 第四节函数与过程 函数 1 标准函数 我们已经接触过一些FreePascal提供一些内部标准函数 供编程时调用 象求 X 可调用ABS X 求可调用SQRT 49 等等 实际上 这些函数是一些包含在FreePascal系统中供用户调用的程序模块 分别命名为 ABS SQRT 等 因而 只要在程序中遵照一定的调用规则 写出某一函数名以及此函数所需的参数 系统就会自调用这些程序模块 求得运算结果 如 ABS X SQRT 12 X 等等 2 自定义函数系统提供的这些内部标准函数 虽然使用起来十分方便 但其中种类和数量毕竟有限 不可能包含用户的所有需要 在实际问题中 经常会遇到诸如求N 这一类的运算 系统中则没有提供相应的函数可供调用 为此 FreePascal允许用户自行定义一些函数 我们称之为自定义函数 这种自定义函数一经定义 就可象内部函数一样 通过函数名调用它 但要注意 这些函数必须在程序中定义 也只能在本程序中使用 函数定义及调用一 Pascal标准函数 abs x sqr x 等二 用户自定义函数 函数定义的格式 function 函数首部 begin end 函数体 函数说明 注 1 函数首部以关键字function开头 2 括号内为形式参数表 即形参表 3 函数的类型也就是函数值的类型 4 函数的执行部分以begin开头 以end结束 end后有一个分号 在执行部分 至少要有一条将函数值传给函数名的赋值语句 即 这样就由函数名将求得的函数值带回调用该函数的程序中 例 求3 5 7 的值分析 可以先编写一个求n 的函数fac Programexp7 1 程序首部Vars real x integer functionfac n integer real 函数首部函数值的类型是实型 var 局部变量说明 k t integer begint 1 fork 2tondot t k fac t 将结果赋值给函数 end begin 主程序调用 s fac 3 fac 5 fac 7 writeln s s end 函数的调用 可以在任何与函数值类型兼容的表达式中调用函数 或者说 函数调用只能出现在允许表达式出现的地方 或作为表达式的一个因子 函数调用方式与标准函数的调用方式相同 函数调用的一般格式 函数名 实在参数表 说明 实在参数简称实参 实参的个数必须与函数说明中形参的个数一致 实参的类型与形参的类型应当一一对应 调用函数时 一般的 实参必须有确定的值 函数调用的步骤为 计算实参的值 赋给 对应的形参 函数的定义是静态的 若定义后未被调用 则该函数永远不会被执行 调用的自定义函数应在调用之前已定义过 自定义函数中的形参 因不是实际存在的变量 故又称为虚拟变量 它们并不占用内存单元 只有在调用函数时 才临时开辟相应的内存单元 存放实在参数的值 实在参数表 是一些由逗号分隔的参数 它们是在调用函数时所用的自变量 只有在调用函数时 才将实在参数的值传送到形参的临时内存单元中去 可见 形参实质上是实参的一个 替身 例 计算右图五边形的面积 programex3 varb1 b2 b3 b4 b5 b6 b7 s real functionarea a b c real real varp real beginp a b c 2 area sqrt p p a p b p c end beginwriteln inputb1 b7 readln b1 b2 b3 b4 b5 b6 b7 s area b1 b5 b6 area b2 b6 b7 area b3 b4 b7 writeln s s 10 3 end b7 b4 b3 b2 b1 b5 b6 过程定义及调用 一 标准过程 read readln write writeln等二 用户自定义过程 过程定义的格式 procedure 过程首部 begin 过程体 end 说明 过程首部以关键字procedure开头 过程名是用户自定义的标识符 只用来标识一个过程 不能代表任何数据 因此不能说明 过程的类型 形参表的一般格式形式如下 var 变量名表 类型 var 变量名表 类型 其中带var的称为变量形参 不带var的称为值形参 在过程体内使用的有关常量 变量等必须在过程体的说明部分内加以说明或定义 与函数体不同的是 函数体的执行部分至少有一个语句给函数名赋值 而过程体的执行部分不能给过程名赋值 因为过程名不能代表任何数据 三 过程调用 例 计算五边形的面积 programex3 1 varb1 b2 b3 b4 b5 b6 b7 s sum real procedurearea a b c real vars real varp real beginp a b c 2 s sqrt p p a p b p c end beginwriteln inputb1 b7 readln b1 b2 b3 b4 b5 b6 b7 sum 0 area b1 b5 b6 s sum sum s area b2 b6 b7 s sum sum s area b3 b4 b7 s sum sum s writeln s s 10 3 end 过程 主程序 过程调用 形式参数表 过程的调用过程调用是通过一条独立的过程调用语句来实现的 它与函数调用完全不同 过程调用与调与标准过程 如write read等 的方式相同 调用的一般格式为 过程名 或 过程名 实在参数表 说明 实参的个数 类型必须与形参一一对应 对应于值形参的实参可以是表达式 对应于变量形参的实参只能是变量 过程调用的步骤为 计算实参的值 将值或变量的 地址 传送给对应的形参 执行过程体 返回调用处 1 函数往往只为求一个函数值 过程一般会被设计成求若干个运算结果 完成一系列的数据处理 或与计算无关的各种操作 2 函数有类型 最终要将函数值传送给函数名 过程无类型 不能给过程名赋值 3 调用方式不同 函数的调用出现在表达式中 过程的调用是由独立的过程调用语句实现的 4 返回值的方法不同 函数值是通过函数名传回调用程序 过程则是通过参数将运算的结果传给调用程序 四 过程与函数的主要区别 变量及其作用域一 变量的类型 全程变量和局部变量 1 全程变量和它的作用域全程变量是指在程序开头的说明部分定义和说明的量 全程变量的作用域分为两种情况 1 在全程变量和局部变量不同名时 其作用域是整个程序 2 在全程变量和局部变量同名时 全局变量的作用域不包含同名局部变量的作用域 2 局部变量和它的作用域凡是在子程序内部使用的变量 必须在子程序中加入说明 这种在子程序内部说明的变量称为局部变量 局部变量的作用域是其所在的子程序 形式参数也只能在子程序中有效 因此也属于局部变量 局部变量的作用域分为两种情况 1 当外层过程的局部变量名和嵌套过程中的局部变量不同名时 外层过程的局部变量作用域包含嵌套过程 2 当外层过程的局部变量名和嵌套过程内的局部变量名同名时 外层过程的局部变量作用域不包含此过程 例5 全程变量的作用域 programex5 varm integer proceduretest1 beginm 100 end beginm 5 writeln beforethetest1call mis m test1 writeln afterthetest1call mis m end 运行结果 beforethetest1call mis 5afterthetest1call mis 100 例6 比较全程变量与局部变量的作用域 programex6 varm integer proceduretest2 varm integer beginm 100 end beginm 5 writeln beforethetest2call mis m test2 writeln afterthetest2call mis m end 运行结果 beforethetest1call mis 5afterthetest1call mis 5 参数的传递 一 参数的类型 1 形参和实参 函数调用和过程调用的一般步骤 注意 由于形参类型不同 其在函数和过程调用中所起的作用也不同 形参的类型可分为 值形参 变量形参 函数形参 过程形参 实参也对应分为 值实参 变量实参 函数实参 过程实参 2 值参和变参 1 值参 在函数或过程定义中 没有加VAR说明的参数 在调用函数或过程时 调用程序将实在参数的值直接传递给形参 起着赋值作用 2 变参 在函数或过程定义中 加有VAR说明的参数 在调用函数或过程时 调用程序将实在参数的变量地址传递给形变参 因此当过程或函数处理中 改变形参变量的值 则实在参数的变量值也随之改变 共享同一个存储单元 例 procedurearea a b c real vars real 3 值参和变参例题 值形参 functionfac x integer integer 例7 值参数分析programex7 vara integer proceduresum b integer beginb b 10 writeln b b end begina 10 sum a writeln a a end 运行结果 b 20a 10 变量形参 procedurearea a b c real vars real 几点说明 1 函数不允许用变量形参 过程如需向调用程序返回值时 应采用变量形参 2 变量形参要求它的实参和它是同一类型的变量 而不能是表达式 3 在过程执行时 遇到对变量形参的引用或赋值 就是对相应参数的引用或赋值 4 对变量形参的任何操作就是对实参本身的操作 例8 变量参数分析programex8 vara integer proceduresum varb integer beginb b 10 writeln b b end begina 10 sum a writeln a a end 运行结果 b 20a 20 小结 值参和变参值形参 传值 调用时可用表达式代替形参 不改变实在参数的值 变量形参 传地址 调用时必须用变量代替形参变量 改变实在参数的值 例 请看下列程序的运行结果 programli3 10 vara b c integer proceduresub x y integer varz integer beginx x 1 y y 1 z x y writeln sub x x 2 y y 2 z z 2 end begina 1 b 4 c 9 writeln main a a 2 b b 2 c c sub a b c writeln main a a 2 b b 2 c c sub c 5 b b a writeln main a a 2 b b 2 c c readln end 运行结果 main a 1b 4c 9sub x 2y 5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖南怀化芷江侗族自治县纪委监委选调机关事业单位工作人员5人笔试考试参考试题及答案解析
- 2025年湖南娄底职业技术学院招聘(选调)专业技术人员2人笔试考试参考试题及答案解析
- 招10人!贵南县恒健福利医院现面向社会公开招聘工作人员考试笔试模拟试题及答案解析
- 2026学年上海市文来中学(高中)教师招聘笔试考试备考题库及答案解析
- 2025重庆巴南区人力资源和社会保障局招聘公益岗2人笔试考试备考试题及答案解析
- 2026年台州仙居县教育局校园招聘新教师17人考试笔试模拟试题及答案解析
- 江西诚正工程咨询有限公司劳务派遣制工作人员招聘笔试考试备考题库及答案解析
- 四川开放大学2025年下半年事业编制岗位公开考核招聘博士教师(14人)考试笔试参考题库附答案解析
- 2025年东昌区招聘公益性岗位人员(36人)笔试考试备考试题及答案解析
- 2026审计署部分京内直属事业单位校园招聘考试笔试备考题库及答案解析
- 高速公路环保知识培训课件
- 骑手安全知识培训内容课件
- 2025中国文化概论考试题库与答案
- 2025至2030中国供暖设备行业项目调研及市场前景预测评估报告
- 口腔科临床操作规范及流程说明
- 2025-2026秋学生国旗下演讲稿:第14周法育少年心护航成长路-全国法治宣传日
- 《个人形象设计》课件 15、个人风格特征
- 学堂在线 现代生活美学-插花之道 章节测试答案
- 妇产科超声质控体系构建
- 2025年河北省中考历史真题 (解析版)
- 如何制作古风课件
评论
0/150
提交评论