カテゴリー
C言語

関数について知ろう

この章では関数について説明します。
関数とは入力したデータ(引数)に基づいて、決められた処理を行い、戻り値という結果を返す機能を持っています。
関数の仕組みはエクセルの関数の仕組みと意味は同じです。111 この章以前の関数は「組み込み関数」と言いまして、C言語によって始めから用意されている関数です。
例えばprintf関数は文字列を出力する関数ですが、C言語でそのような働きを作ってくれています。
組み込み関数の他にC言語では自分で好き勝手に1を作ることができます。
これを「ユーザー定義関数」と言いますが、この関数の作成方法をこの章で説明していきます。
例えば消費税額を自動で計算する関数を自分で作りたいとします。その場合、商品のお金を関数に渡すと関数は商品金額に消費税額を掛けた処理をして、その金額を返すという関数を作ることになります。
関数の構文は以下の通りですが、これを「関数の定義」と呼びます。1 〇引数とは関数が利用するデータのことを言います。
〇関数の中の引数は左端から第1引数,第2引数と順番に数えていきます。
また1個以上の引数を記述する場合はカンマで区切ってください。引数がない場合には1を入れます。
〇returnを記述するときは1という形で書きます。
またreturnは省略できます。returnの詳細は後ほど説明します。
main関数も関数の一種ですが、他にも色々な関数を作ることができます。
main関数は特別で他にどんな関数を作っても一番初めに実行される関数です。
次に関数の実行方法について説明します。
関数はmain関数を除いて関数を定義しただけでは何も動きません。
関数を実行させるためには関数を呼び出す必要があります。
そして、呼び出すことによって関数の中身が実行されます。1 では1番簡単な例から、見てみましょう。1 初めに、プログラムの流れから見てみます。
① main関数とhello関数がありますが、初めに実行されるのはmain関数です。
main関数の中では上から順にプログラムは流れていきます。
ですので、初めに1が実行されます。
②次にhello();を実行します。
関数名に「()」を付け、hello関数を呼び出しています。
hello関数内では1を実行して「こんにちは」を出力します。

③hello関数を実行し終えたのならばmain関数に戻ってきて、プログラムを終了します。1
では関数の構文を詳しく説明します。
初めに「戻り値の型」について説明します。11 関数とは入力したデータ(引数)に基づいて決められた処理を行い、戻り値という実行結果を返す機能を持っていますと説明しましたが、その戻り値の型を関数名の左側に書きます。
戻すための値がない場合には1と書きます。1次に引数について説明します。11 void hello(void)の2つ目のvoidは引数が無いと言う意味です。
つまり、関数の呼び出し元から渡されてくる引数が無いということです。
この例の場合は1の箇所でhello関数を呼び出していますが、引数がカラです。

次は関数名について説明します。
関数名には「hello」と名前が付いていますが、名前の付け方にもルールがあります。
1つ目は1文字目は数字で始めることはできません。
つまり、3nという名前はつけることはできません。
1文字目は
「アンダースコア(_)」
「aからz」
「AからZ」のどれかで書きます。
2つ目は2文字目からは
「アンダースコア(_)」
「aからz」
「AからZ」
「数字」が使えます。
3つ目は31文字まで名前を付けることが出来ます
4つ目は予約語を使うことができません。
5つ目は基本的には小文字で書いてください。

次は関数についての注意点について説明します。
関数の定義は関数の呼び出しよりも前に定義しなければいけません。
つまり、先ほどの例で説明すると1はmain関数の中にあるので、main関数よりhello関数を後ろに書いてはいけないということです。
以下の書き方はエラーです。1
次は引数のある関数についての説明をします。11 プログラムの流れをみてみましょう。
①初めに実行されるのはmain関数です。
「int a=2,b=3;」で変数の宣言と初期化を行っています。
次に1を実行します。

②次に「tashizan(a,b);」の箇所でtashizan関数を呼び出します。
初めの例では1のようにカッコの中の引数はカラでしたが、この例ではtashizan関数に渡す値をa,bという引数で設定しています。
この呼び出し側のカッコの中の引数を実引数と言います。

③次にtashizan関数を実行します。
この関数の中の引数を仮引数と言います。
tashizan関数が呼び出されたのならば1のaの部分がtashizan関数の1の部分にセットされ、1のbの部分がtashizan関数の1の部分にそれぞれセットされます。
つまり、2が1に入り、3が1に入ります。
その後に関数内部のプログラムが実行されます。1 tashizan関数を実行し終えたのならばmain関数に戻ってきて,1でプログラムを終了します。
1111しかし、実引数と仮引数の型が違う場合には型変換の規則に従って自動的に変換されます。
型変換の規則については説明済みですが転載します。11
次は戻り値のある例を見てみましょう。1111111 tashizan関数の中で足し算の計算がされて、変数zにその結果を代入しています。11 このようにreturnは関数の呼び出し元に戻り値を返す役割があります。
では、どのような時に戻り値を返すのか?
それは呼びだし側であるmain関数内でその値を活用したい場合に戻り値を返します。1 この例の場合はreturnで返されるzはint型なのでtashizan関数の戻り値の型もintにしてください。1

カテゴリー
PHP

ユーザー定義関数内の変数の影響範囲を知ろう

この章では変数の影響範囲について説明します。
ユーザー定義関数内で作成した変数はローカル変数と呼ばれ、その関数内でしか使用することはできません。11
また、関数外の変数(関数外の変数をグローバル変数と言います)も関数内で使用することが出来ません。
以下のように使用しますとエラーになります。11 どうしても、グローバル変数を関数内で使用したい場合には関数内の変数に「global」を付けてください。11 もう1つ、グローバル変数をローカル変数内で使用する方法があります。
それはスーパーグローバル変数と呼ばれる$GLOBALを使います。
$GLOBALはグローバル変数をプログラムのどこでも使えるようにする連想配列ですが、グローバル変数の変数名がキーになります。
$garlicを関数内で使いたい場合には1と、記述します。
このように書くことにより$garlicの値である290を使うことが出来ます。1 では例をみてみましょう。11

カテゴリー
PHP

関数の仮引数に配列を渡そう

この章では関数の仮引数に配列を渡す方法について説明します。
ユーザー定義関数の仮引数には配列も渡すことが出来ます。
配列(array(3,8,4,8))を仮引数の$numberに代入して、その配列の個々の要素をforeachで取り出して合計を算出しています。1 結果は以下の通りです。
「合計は23です」
次の例は呼び出し元に配列を返す例を紹介します。1 この例は戻り値が配列になっていまして、$resultに戻り値を代入しています。
そして、配列$resultの要素をforeachですべて取り出しています。
これにより足し算と引き算の結果を同時に呼び出し元に返すことが出来ます。
結果は以下の通りです。
15 
9

カテゴリー
PHP

ユーザー定義関数について知ろう

この章ではユーザー定義関数について説明します。
関数とは入力したデータに基づいて決められた処理を行い、戻り値を返す機能を持っていますと説明しました。
これまで説明した関数はPHPによって始めから用意されている関数です。
例えば1は配列の1番上に要素を追加する関数ですが、初めからPHPの内部機構でそのような働きを作ってくれています。
ユーザー定義関数では自身で好きなように、ある働きを持った関数を作ることができます。例えば消費税を自動で計算する関数を自分で作りたいとします。
その場合、商品の代金を関数に渡すと関数は商品金額に消費税額を掛けた処理をして、その結果を返すという機能を持った関数を作ります。
商品金額に消費税額を掛けた処理を関数として自身で作成するということです。関数の基本構文は以下の通りです。
この構文の中の引数とは関数内で使われるデータの事です。
この引数の箇所にデータを入れて関数を処理していきます。1 関数名の付け方は変数名の付け方と基本的には同じですが、変数と違って関数は大文字と小文字は区別しません。
例えばdepositと言う関数とDepositと言う関数は同じ関数を意味します。
関数の中の引数は左端から第1引数、第2引数と、使う分だけ設定します。
では関数の説明をしていきます。
関数を使わないで国語、算数、英語の平均を求めるプログラムを書きますと、以下のように書くことが出来ます。1 これを関数で書き換えますと以下のようになります。1 実はAverage関数はこのままでは何も動きません。
この関数を使用するためには関数を呼び出す必要があります。
呼び出すことによって初めて関数が実行されます。
関数の呼び出しの基本構文は以下の通りです。
この関数の呼び出しで引数のデータを関数に渡します。1
関数の呼び出し場所は以下のように関数の前でも後でも問題ありません。1 もしくは1
ではこのプログラムを順を追って詳しく見てみましょう。
1で関数を呼び出します。
引数である変数にはそれぞれ56、45、99が代入されています。

〇関数を呼び出した後は$kokugonの値が$eに、$sansuuの値が$fに、$eigoの値が$gに代入されます。
実引数と仮引数の変数名が同じでなくても問題ありません。
つまり$kokugoと$e, $sansuuと$f, $eigoと$gが同じ変数名である必要はありません。

〇仮引数$e,$f,$gの部分にそれぞれ値が代入されましたが、仮引数$eはfunction内部の$eの部分に、仮引数$fはfunction内部の$fの部分に、仮引数$gはfunction内部の$gの部分に代入され計算が実行されます。

〇 function内部の処理が終わったら、呼び出し部分の1に戻ります。
これで関数の実行は終わりです。
結果は以下の通りです。1 では次の例をみてみましょう。11 結果は以下の通りです。
会計は1333.5です
会計は1333.5です
会計は1333.5です
この例では3回関数を呼び出していますが、関数はこのように何回呼び出しても問題ありません。
次に仮引数にデフォルト引数を設定する方法について説明します。
デフォルト引数とはあらかじめ仮引数に設定する値です。
以下がデフォルト引数を使った例です。11
仮引数内に1と書いてありますが、これがデフォルト引数です。
デフォルト引数を1つ記述しましたので、実引数は1のように1つ減らして2つでOKです。
デフォルト引数を設定する上で注意してほしいことはデフォルト引数は右端から設定していくことです。
ですので、以下の例のように左端だけ指定、他にも真ん中だけ指定、左端と真ん中だけ指定もダメです(紙面の都合でfunctionとshoppingを違う段に書いていますが通常は横一列で書いてください)11 もう一例みてみましょう。
デフォルト引数を複数設定する場合には右端から指定します。
この例では真ん中と右端の仮引数を設定しています。
またデフォルト引数を2つ設定したので、呼び出し側の実引数は1つになっています。

11
次は戻り値のある関数についての説明をします。
戻り値とは呼び出し元に返す値のことです。
関数の説明をする時に戻り値については以下のように説明しました。
関数とは入力したデータに基づいて決められた処理を行い、戻り値という結果を返す機能を持っています。1 上の図を参考にしていただくと分かりますが、呼び出し元に値を返すにはreturnを使います。
そして、呼び出し元に戻った戻り値は変数や配列に代入されて、printなどで出力されることになります。
では例をみてみましょう。1 「return $i;」の$iには1と言う値が入っていますので、この値をreturnで呼び出し元に返します。
そして、その戻り値は$qwに代入され、最終的には1で出力されます。1