4 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
procedure 就是純運(yùn)行的過程(可以不命名),function則是函數(shù),是有值的,有時(shí)可以直接輸出
procedure多用于深搜,function多用于遞歸,
比較(以下都是正確打法):
①procedure;
②procedure dfs(x:longint);//(此處dfs只能調(diào)用,不能以ans:=dfs(x)或writeln(dfs(x))的形式出現(xiàn))
③function a:(x:boolean):longint;//(此處a被賦為longint,可以直接輸出或作為longint使用,如ans:=a(x),當(dāng)然,每次都會(huì)重新算一遍,boolean則是變量x'的定義,如果a被賦為boolean,是不可以輸出的,但同樣能作為boolean使用)

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
其實(shí) 過程-procedure 和 函數(shù)-function本質(zhì)差不多樓上說的返回值, 其實(shí)兩種方法都有, function是直接返回, 而procedure是間接返回比如我定義一個(gè)函數(shù) function add(a, b: Integer): Integer; //最后的Integer就是返回值在函數(shù)里面有專門的Result 來傳遞這個(gè)返回值而procedure沒有直接返回值, 如果想要procedure返回某個(gè)數(shù)值可以在過程里面定義變量, 然后借助這個(gè)變量來返回?cái)?shù)值樓主你問到怎么從輸出我舉個(gè)例子, 就舉加法的例子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; 調(diào)用的時(shí)候看清楚了我先調(diào)用函數(shù)形式的var a, b: Integer;begin Readln(a, b); Writeln(IntToStr(add1(a, b))); //這個(gè)直接調(diào)用函數(shù), 直接返回 Readln;end. 這個(gè)是過程的var a, b, Res: Integer;begin Readln(a, b); add2(a, b); //函數(shù)里面間接輸出了, 并不需要在主程序里面再次輸出了 Readln;end.
添加回答
舉報(bào)