问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

pascal函数与过程

发布网友 发布时间:2023-11-06 01:20

我来回答

2个回答

热心网友 时间:2024-11-19 06:29

8.1 过程

1.过程的定义

procere 过程名(形式参数:参数说明);{也可以不带参数}
var
begin
...
end;

2.过程的调用

过程名(实在参数表);

例1:求n个自然数的最大公约数;

program *1;
const maxn=100;

var n,i,*:integer;
a:array[1..maxn] of integer;
procere 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;

procere find_*(x,y:integer);{定义过程}
var r:integer;
begin
r:=x mod y;
while r<>0 do

begin x:=y;y:=r;r:=x mod y; end
*:=y;
end;

procere print;
begin
writeln('GCD=' ,*);
end;
begin
enter;
*:=a[1];
for i:=2 to n do
find_*(*,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;
procere 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;
procere sub(x,y:integer;var z:integer);
begin
x:=x+1;y:=y+1;z:=x+y;
writeln('sub:x=',x:2,'y=',y:2,'z=',z:2);
end;
begin
a:=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=1 b=4 c=9

sub:x=2 y=5 z=7

main:a=1 b=4 c=7

sub:x=13 y=17 z=30

main:a=30 b=4 c=7

热心网友 时间:2024-11-19 06:29

百度一下 你就知道
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 vivox60和opporeno5哪个好49 税收法律有哪些?63 ...2)是怎么求的?求详细过程。pascal(n,1)和pascal(n,2)分别是 双桥工商所地址?电话? 在其它应用的如何复制到我的微信里?1 复制的怎么加到我的微信里3 通过其他软件复制的,怎么添加到微信好友里?11 串口服务器、交换机、光端机问题1 OPPO手机手写笔画太粗怎么办2 汤姆不但会唱歌还会跳舞 翻译 Tom can dance _...6 广西有哪些医学大专院校11 小米手机手写的时候笔画太粗怎么办?10 小米手机手写字变粗怎样才能变细7 喜欢在我背后说我的人我该怎么回复她? 我想知道联通定向流量使用范围是哪些? 广西有哪些医学大专院校11 如何安排一日三餐4 请问老师这样算对我做出伤害吗? 怎样不下楼,从楼上把猫粮稳稳当当的传送到楼下给猫吃?4 请问这个老师对我正常吗? 在知否数据查询有没有贷款记录,显示只有申请次数过多,并没有贷... 想知道有没有贷款记录,然后查了征信和知否数据都显示没有事,也... 2%规格的稀戊二醛消毒水配成0.78%怎么配58 边锋游戏大厅已下载,为什么不能安装?1 在元音舌位图上填写普通话六个舌面单元音的位置,并指出与标准元... 文言文,要130字到140字以内,要著名的请标明文言文的翻译. 怎样合理的安排一日三餐? 你好,请问联通定向流量使用范围有哪些? 1979年8月27日阳历是多少 请问联通定向流量的使用范围是怎么分布的? 如何把微信好友全部转移到另一个上,不要一个个添加了,求...755 通过怎么添加好友3 友情和爱情要怎么选择?8 友情、爱情应该怎么选择好?16 爱情和友情我该怎么选择11 求助!!!边锋游戏安装问题! 汉服冬季怎么穿不会冷1 大家冬天穿汉服一般怎么穿哇1 我口干口渴嘴唇干裂,一直喝水也不管用,特别是吃的咸了特别能 汉服的穿法17