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.
添加回答
舉報