- 1
- 0
- 约2.5千字
- 约 4页
- 2018-03-08 发布于河南
- 举报
第七章函数和过程
8.1 过程 1.过程的定义
procedure 过程名(形式参数:参数说明);{也可以不带参数}var?begin?...end;
2.过程的调用
过程名(实在参数表);
例1:求n个自然数的最大公约数;
program gcd1;const maxn=100;
var n,i,gcd:integer;??? a:array[1..maxn] of integer;procedure enter;begin?write(n=(100));readln(n);?for i:=1 to n do?repeat?write(a[,i,]=);readln(a[i]);?until a[i]0;end;
procedure find_gcd(x,y:integer);{定义过程}var r:integer;begin?r:=x mod y;?while? r0 do?
? begin x:=y;y:=r;r:=x mod y; end?gcd:=y;end;
procedure print;begin?writeln(GCD= ,gcd);end;begin?enter;?gcd:=a[1];?for i:=2 to n do?find_gcd(gcd,a[i]);?print;end.
8.2 函数
?1.函数的定义function 函数名(形参表):函数类型; { ————函数首部}var {————局部变量说明部分}begin {————函数体}... {————函数语句}...函数名:=表达式end;2.函数的调用:
函数在语法上相当于一个表达式,所以,调用时,函数不能独立成为一个语句;它可以出现在任何表达式可以出现的地方。例如赋值语句的右边:X:=函数名(实在参数表); {————X的类型与函数类型必须一致}又,如果函数类型是boolean,则还可以出现在条件语句中,充当条件表达式:if 函数名(实在参数表) then ……例3:编一程序,求从10名同学中选出3名代表,有几种不同的选法。
?(公式:C(m,n)=m!/n!*(m-n)!从m中选n)
program zohe1;var m,n:integer;??? c:longint;function factor(x:integer):longint;{定义}?var i:integer;?p:longint;?begin?p:=1;? for i:=1 to x do p:=p*i;? factor:=p;{这个语句必须}?end;begin?write(m,n=);readln(m,n);?c:=factor(m) div (factor(n)*factor(m-n));{调用}?writeln(c(,m,,,n,)=,c);end.
8.3全局变量和局部变量
??? 在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。全局变量作用域是整个程序;局部变量作用域是定义该变量的子程序。当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
例4:全局变量和局部变量。
program local_global;var i,k:integer;procedure sub1;var i,j:integer;?begin? i:=17;? writeln(i in sub=,i);? writeln(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);?readln;end.
上述程序运行时将出现Unknown Identfier;因为变量j在主程序中没定义。
当删除本语句时。运行结果如下:
i in main=2
k in main=9
i in sub=17
k in sub=9
i in main=2
8. 4 值参和变量参数
值形参——传值:调用时可用表达式代替形参,不该变实在参数的值。变量形参——传地址:调用时必须用变量代替行参变量,改变实在参数的值。
例4:请看下列程序的运行结果。
program li3_10;var? a,b,c:integer;procedure sub(x,y:integer;var z:integer);?begin?x:=x+1;y:=y+1;z:=x+
您可能关注的文档
最近下载
- 中华人民共和国国家标准GB12348-2008代替GB12348-90,GB.doc
- 梗阻性黄疸患者的护理.pptx VIP
- 梗阻性黄疸患者护理查房.pptx VIP
- 梗阻性黄疸患者护理查房.pptx VIP
- 《微电影制作》课件——模块一 微电影概述.pptx VIP
- 2024年贵州毕节中考数学试题及答案(1).pdf VIP
- 2025年度民主生活会对照检查材料8篇五个带头合集.docx VIP
- 人教版七年级语文上册期末试卷(基础难度第7套)-04fd527da7.docx VIP
- 小学英语核心词汇表大全.docx VIP
- 危险化学品灭火救援技术讲座-6:LPG.CNG.LNG公路运输车灾害事故处置.pdf
原创力文档

文档评论(0)