サブルーチン: プロシージャと関数 - 2



関数とプロシージャの操作に関する最後の注意: プログラム内の関数とプロシージャの数には制限がありません。さらに、1 つのサブルーチンは別のサブルーチンやそれ自体を呼び出すこともできます。
 

関数とは、結果(数値、文字列など)を返すサブルーチンです

オンライン ストアで商品を注文したとします。プログラミングの観点からは、特定のサブルーチンを呼び出しました。プロシージャとは異なり、このサブルーチンは結果を返す必要があります。つまり、注文した製品を配達します。これらのサブルーチンは関数と呼ばれます。
関数はプロシージャとほぼ同じ方法でフォーマットされます。 <プレ> function <関数名> (<変数名>:<その型> セミコロンで区切られたパラメータのリスト): <戻り値の型>; 始める <関数本体> 終了;
関数とプロシージャの違いは、関数は値を返さなければならないことです。これを行うには、関数名を変数または特殊変数として使用する必要があります。 結果: <プレ> 関数 Sum(a, b:integer): 整数; 始める 合計:= a + b; 終了; また <プレ> 関数 Sum(a, b:integer): 整数; 始める 結果:= a + b; 終了;
2 つの整数の算術平均を返す関数は次のようになります。 <プレ> 関数 Average(a, b: 整数): 実数; 始める  平均:= (a + b) / 2; 終わり; メインプログラムでこの関数を呼び出す方法を理解する必要があります:
プロシージャを呼び出すのと同じ方法で関数を呼び出さないでください: <プレ> 平均 (10, 5); 関数によって返された値は失われます。オンラインストアの商品が誰にも渡されずに捨てられたようなものです。お客様に気に入ってもらえる可能性は低いです。

結果を変数に保存 (または 画面に出力) する方が正しいです: <プレ> a := 平均(10, 5);

または

<プレ> writeln(average(10, 5));

多くの場合、プログラマはブール値を返すブール関数を使用します: true または false (True または False)
このような関数は、  に役立ちます。いくつかの物件をチェックして
ください。 数値の偶数をチェックする論理関数を作成する 2 つの例を考えてみましょう。 <テーブル align="center" border="1" cellpadding="1" cellpacing="1" style="width:75%"> <本体>
1)  より良い方法:
式の結果
n % 2 == 0
真(True)か偽(False)になります
条件文を書く必要はありません!
2) それはやめてください。
このように書いてもいいですが、記録が長くなるのでやめたほうがいいです
<プレ> bool isEven(int n) { 戻り値 (n % 2 == 0); } <プレ> bool isEven(int n) { if (n % 2 == 0) true を返します。 それ以外 False を返します。 }