pascal 过程和函数的区别
答案:1 悬赏:80 手机版
解决时间 2021-05-07 16:25
- 提问者网友:遮云壑
- 2021-05-06 21:08
pascal 过程和函数的区别
最佳答案
- 五星知识达人网友:爱难随人意
- 2021-05-06 21:27
下面这段是网上找的:
主要有四点区别:
第一,函数往往只为求一个函数值,过程一般会被设计成求若干个运算结果,完成一系列的数据处理。
第二,函数有类型,最终要将函数值传送给函数名,过程无类型,不能给过程名赋值。
第三,调用方式不同,函数的调用出现在表达式中,过程的调用是由独立的过程调用语句实现的。
第四,返回值的方法不同,函数值是通过函数名传回调用程序,过程则是通过参数将运算的结果传给调用程序。
请教这四点对吗?下面是一个简单的例子:
function benben(x:integer):integer;//声明函数
var //声明函数的变量z为整型
z:integer;
begin //函数的作用是判断x如果不小于0,则返回值为x+1,
//如果x小于0,则返回值为x+2
if x>=0 then z:=x+1
else z:=x+2;
//benben:=z;
Result:=z;
end;
procedure douya(i:integer);
begin
if i>=0 then showmessage('x的值大于等于0')
else showmessage('x的值小于0');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
i:=benben(-10); //调用函数,把参数-10
Edit1.Text:=inttostr(i);
douya(-10);
end;
这里特别是第三点:函数的调用出现在表达式中?i:=benben(-10); //调用函数,把参数-10,这是一个语句不是表达式啊
第四点:过程没有返回值啊
主要有四点区别:
第一,函数往往只为求一个函数值,过程一般会被设计成求若干个运算结果,完成一系列的数据处理。
第二,函数有类型,最终要将函数值传送给函数名,过程无类型,不能给过程名赋值。
第三,调用方式不同,函数的调用出现在表达式中,过程的调用是由独立的过程调用语句实现的。
第四,返回值的方法不同,函数值是通过函数名传回调用程序,过程则是通过参数将运算的结果传给调用程序。
请教这四点对吗?下面是一个简单的例子:
function benben(x:integer):integer;//声明函数
var //声明函数的变量z为整型
z:integer;
begin //函数的作用是判断x如果不小于0,则返回值为x+1,
//如果x小于0,则返回值为x+2
if x>=0 then z:=x+1
else z:=x+2;
//benben:=z;
Result:=z;
end;
procedure douya(i:integer);
begin
if i>=0 then showmessage('x的值大于等于0')
else showmessage('x的值小于0');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
i:=benben(-10); //调用函数,把参数-10
Edit1.Text:=inttostr(i);
douya(-10);
end;
这里特别是第三点:函数的调用出现在表达式中?i:=benben(-10); //调用函数,把参数-10,这是一个语句不是表达式啊
第四点:过程没有返回值啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯