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使用)
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.
添加回答
举报