为了账号安全,请及时绑定邮箱和手机立即绑定

请问关于procedure和function的区别?

请问关于procedure和function的区别?

慕妹3242003 2019-07-09 17:06:47
procedure和function的区别
查看完整描述

4 回答

?
米脂

TA贡献1836条经验 获得超3个赞

procedure 就是纯运行的过程(可以不命名),function则是函数,是有值的,有时可以直接输出
procedure多用于深搜,function多用于递归,
比较(以下都是正确打法):
①procedure;
②procedure dfs(x:longint);//(此处dfs只能调用,不能以ans:=dfs(x)或writeln(dfs(x))的形式出现)
③function a:(x:boolean):longint;//(此处a被赋为longint,可以直接输出或作为longint使用,如ans:=a(x),当然,每次都会重新算一遍,boolean则是变量x'的定义,如果a被赋为boolean,是不可以输出的,但同样能作为boolean使用)

查看完整回答
反对 回复 2019-07-14
?
慕容森

TA贡献1853条经验 获得超18个赞

其实 过程-procedure 和 函数-function本质差不多楼上说的返回值, 其实两种方法都有, function是直接返回, 而procedure是间接返回比如我定义一个函数 function add(a, b: Integer): Integer; //最后的Integer就是返回值在函数里面有专门的Result 来传递这个返回值而procedure没有直接返回值, 如果想要procedure返回某个数值可以在过程里面定义变量, 然后借助这个变量来返回数值楼主你问到怎么从输出我举个例子, 就举加法的例子function add1(a, b: Integer): Integer;begin Result := a + b;end; procedure add2(a, b: Integer);var Res: Integer;begin Res := a + b; Writeln(Res);end; 调用的时候看清楚了我先调用函数形式的var a, b: Integer;begin Readln(a, b); Writeln(IntToStr(add1(a, b))); //这个直接调用函数, 直接返回 Readln;end. 这个是过程的var a, b, Res: Integer;begin Readln(a, b); add2(a, b); //函数里面间接输出了, 并不需要在主程序里面再次输出了 Readln;end.

查看完整回答
反对 回复 2019-07-14
?
慕斯709654

TA贡献1840条经验 获得超5个赞

package 是包 和JAVA包一个概念 分包头和包体 包头中创建procedure(存储过程)
包体中将存储过程实现 存储过程就是你预先定义好的一些数据操作语句 function是函数是对数据库中一些数据的处理 和JAVA中的方法有点像

查看完整回答
反对 回复 2019-07-14
  • 4 回答
  • 0 关注
  • 1789 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信