




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、关于全局变量和局部变量 在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。全局变量作用域是整个程序;局部变量作用域是定义该变量的子程序。当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。 例:全局变量和局部变量。 program local_global;var i,k:integer;procedure sub1;var i,j:integer; begin i:=17; writeln('i in sub=',i); wri
2、teln('k in sub=',k); end;begin i:=2;k:=9; writeln('i in main=',i); writeln('k in sub=',k); sub1; writeln('i in main=',i); writeln('j in main=',j); end. 上述程序运行时将出现Unknown Identfier;因为变量j在主程序中没定义。 当删除本语句时。运行结果如下: i in main
3、2 k in main9 i in sub17 k in sub9 i in main2自定义函数Pascal允许用户在程序中自己说明定义新的函数并在程序中调用这些函数。函数说明的一般形式Function <函数名>(<参数表>):<函数类型><说明部分>Begin<函数体>End;注:1、保留字function必不可省,函数名由合法的标识符指出。参数表由形式参数名表,和说明形式参数的类型标识符组成。函数类型即结果类型。 2、在说明部分可以包括函数所需要的常量说明、类型说明和变量说明,也可以包括其它函数或过程说明。也可以没有说明。 3
4、、函数体描述了函数执行的数据处理。其中至少包括一个给函数名赋值的语句 <函数名>:=表达式 4、函数调用格式:<函数名>(<实在参数表>)例5.1:利用自定义函数求x3+x6Program ex51; Var x,y:real; 函数SC的说明Function sc(t:real):real; Begin Sc:=t*t*t; End;主程序Begin Read(x); y:=sc(x)+sqr(sc(x);write(y)end.例5.2编程找出由键盘任意输入五个整数中的最大整数。解:设输入的五个整数为n1、n2、n3、n4、n5,为了便于处理,引入一个中
5、间变量t1,按如下步骤处理:令t1=n1;将t1与n2比较,将两者中较大数放入t1;将t1与n3比较,将两者中较大数放入t1; 将t1与n4比较将两者中较大数放入t1; 将t1与n5比较将两者中较大放入t1; 经过以上5步处理后,t1即为5个数中最大者。从上面规划的步骤看来,从步骤到步骤 需处理的目标是相同的,因此我们可以设计一段子程序Max(x1,x2),以找出x1和x2中最大的值并返回。Pascal程序:Program Exam41_a;Var n1,n2,n3,n4,n5,t1 : integer;Function max(x1,x2 : integer)
6、 : integer;Begin If x1>x2 then Max := x1 Else Max := x2;End; Begin Readln(n1,n2,n3,n4,n5);T1 := n1;T1 := Max(t1,n2);T1 := Max(t1,n3);T1 := Max(t1,n4);T1 := Max(t1,n5);Writeln(Max number : ,t1);End. 例5.2求任意输入的五个自然数的最
7、大公约数。解:自定义一个专门求两自然数的最大公约数的函数GCD; 调用自定义函数,第一次求前两个数的最大公约数;从第二次开始,用每次求得的最大公约数与下一个数再求两个数最大公约数,直到最后。本题共四次“求两个数的最大公约数”, 设输入的五个自然数分别是a1,a2,a3,a4,a5,采用如下步骤:求a1, a2两个数的最大公约数存入a1;求a1, a3两个数的最大公约数存入a1;求a1, a4两个数的最大公约数存入a1;求a1, a5两个数的最大公约数存入a1; 输出 a1,此时的a1已是五个数的最大公约数。Pascal程序:Program Exam42;Var a1,a
8、2,a3,a4,a5: integder;function GCD(x1,x2: integer): integer; 自定义函数 Var temp:integer;begin While x20 do begin temp:=x1 mod x2; x1:=x2;x2:=tempend; GCD:=x1end; Begin
9、 主程序 readln(a1,a2,a3,a4,a5); a1:GCD(a1,a2); 调用函数GCD &
10、#160; a1:GCD(a1,a3); a1:GCD(a1,a4); a1:GCD(a1,a5); Writeln(a1);End.练习1:求一个整数从右边开始数第K个数字的值。program ex52; var n,k,x:integer; function dig(n,k:integer):integer; begin repeat dig:=n mod 10; n:=n div 10; k:=k-1; until k=0; end; begin read(n,k); x:=dig(n,k); write(x); end.练习2:判断某个数字是否在某个
11、整数中出现。Program ex; Var n,d:integer;che:boolean;function check(n,d:integer):Boolean; var m:integer;begin repeat m:=n mod 10;n:=n div 10until (m=d) or (n=0);check:=m=dend;beginread(n,d);che:=check(n,d);write(che)end.例5.3 定义产生随数的函数,并借助它生成两位整数乘法的算式,让学生回答,计算机给出正确与否的判断。当学生回答-1是结束。program game; var x,y,z,an
12、swer:integer; seed:real; function rand(var seed:real):real; const a=93.0; m=8192.0; c=1.0; begin seed:=a*seed+c; seed:=round(seed/m-trunc(seed/m)*m); rand:=seed/m end; begin seed:=0.7823; repeat x:=trunc(rand(seed)*100); y:=trunc(rand(seed)*100); write(x:2,'*',y:2,'='); read(answer); if answer=x*y then writeln('right') else writeln('wrong'); until
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理职业安全
- 关+于“三极模式”信息传播格局探微
- 商务西服培训体系构建
- 运输租凭合同协议书
- 车站票款分成协议书
- 买卖车合同正规协议书
- 饭店欠款转让协议书
- 车辆相撞事故协议书
- 解除定向培养协议书
- 公积金信息变更协议书
- SAP-TM运输管理模块操作手册(S4系统)
- 断亲协议书模板
- 2023-2024学年山东省青岛市西海岸新区6中英语七年级第二学期期末学业质量监测试题含答案
- 水利安全生产风险防控“六项机制”右江模式经验分享
- 《在竞争中双赢》教学设计 心理健康八年级全一册
- 中外美术评析与欣赏智慧树知到期末考试答案章节答案2024年湖南大学
- 《电力设备典型消防规程》(DL 5027-2015)宣贯
- MOOC 企业文化与商业伦理-东北大学 中国大学慕课答案
- (2024年)小学体育篮球规则课件
- 如何提高自身的网络安全意识
- 中医学理论体系的形成和发展
评论
0/150
提交评论