【 全体の目次 】

【 ←前に戻る この章の目次 次に進む→ 】


大きい数を選択する関数


次のプログラムは、「2つのデータa,bのうち大きい方を選択し、表示するプログラム」です。このプログラムでは、2数a,bのうち大きい数を選択するmax関数を作って、実際に3と4のどちらの数が大きいかを求めるのにmax関数を利用してあります。 

 

<引数>

 

最初に、ユーザ関数の定義(ユーザ関数の作成)について説明する前に、引数について説明します。

まず、main関数の中の呼び出し元と、ユーザー関数との間でのデータのやりとりを行うには引数(ひきすう)を用います。

呼び出し側で指定する引数は、実引数(じつひきすう)と呼びます。実引数には、実際のデータを入れます。()内にカンマ「,」で区切って、データを並べます。---例)shinchou(3,6,8)

また、ユーザ関数で指定する引数は、仮引数(かりひきすう)と呼びます。仮引数は、実引数からの実際のデータを受け取る器のような役目を果たします。これも、()内にカンマ「,」で区切って、データを並べます。---例)int shinchou(int x,int y,int z)

ただし、注意しなければならないのは、実引数と仮引数はデータのやりとりを行うのですから、実引数のデータ数と仮引数のデータ数は同じように対応していけなければなりません。

 

<ユーザ関数の作成>

私達が独自に作る関数はユーザ関数と言いますが、実際にユーザ関数を使用するには、まずユーザ関数を定義(ユーザ関数を作成)しなければなりません。ユーザ関数の定義のポイントは、次の5つです。

(1)ユーザ関数の名前
(2)ユーザ関数に渡すデータの入れ物(仮引数)の型と名前
(3)ユーザ関数からmain関数に戻る値(戻り値)の型
(4)ユーザ関数本体の処理方法の記述
(5)結果(戻り値)を呼び出し元に戻すための記述

上のプログラムを使って説明すると、次のようになります。

(1)ユーザ関数の名前は、その処理内容に合わせてユーザが自由に付けることが可能です。(しかし、ユーザ関数名も変数名と同様、既に用意されている関数、制御文などの名前をつけることはできません。)

(2)次に、main関数から実際のデータを受け取る部分(仮引数)の型宣言をします。

(3)戻り値(結果の数字)の型宣言をします。

(4)ユーザ関数の処理を記述をします。

(5)ユーザ関数の処理結果をreturn文を使って、呼び出し元のmain関数に返します。
return 戻り値(処理結果);
と記述することによって、呼び出し元に処理結果を返すことができます。

※ ユーザ関数の変数型宣言ですが、ユーザ関数の処理の中ではa,b,mが使われているのに、上のプログラムで見て分かるように、int m;となっています。これは、a,bは既に仮引数の型宣言がされているため、int m,a,b;とする必要はないためです。

 

「ユーザ関数の定義の決まり文句(引数、戻り値あり)」

main関数では、ユーザ関数名(実引数,実引数,…)と書いて利用する。

※ ユーザ関数では、引数や戻り値のない関数を作ることも出来ますが、この章では引数と戻り値が必ずあるプログラムを作ることにします。

 

<関数の仕様(プロトタイプ)を前もって書く>

また、関数を作ったときは、その仕様を先頭部分(main関数より前)に書くようにします。それが2行目の
int max(int a,int b);

です(これを関数プロトタイプと呼ぶ)。これは、ユーザ関数の先頭行(11行目)の

int max(int a,int b)

をそっくり持ってきて「最後に;を付加したもの」です。

 

関数プロトタイプを書いておくと、このプログラムで

big=max(3);  …引数が1つしかない

といった誤った利用をしたときにコンパイラが警告してくれます。

<プログラムの流れ>

フローチャートは、次のようになります。

 

新しい記号が出てきました。ここで確認しましょう。

では、別のユーザ関数のプログラムを次に見てみましょう。

次へ!