こんにちは!みらびの準備室の「さん」です。
高校で数学と情報を教えています!
「プログラミング準備室」では、共通テスト情報Ⅰで出題される「プログラミング」について学べます。
今回は「関数」について解説していきます!

関数?数学でもやったけど…プログラミングでも出てくるの?

出てくるよ!でも意味がちょっと違うから、一緒に学んでいこうね!
関数とは?
関数とは、
「何かの処理をひとまとめにして、あとで何度でも呼び出せる仕組み」 のことです。

うーん… いまいちピンとこないなあ。

じゃあ、「自動販売機でジュースを買う」場面を想像してみよう。
- お金を入れる。
- ボタンを押す。
- ジュースを取り出す。
- お釣りを取り出す。
「自動販売機でジュースを買う」ときは、毎回この4つの処理を行わなければいけません。
そこで、これらの処理をひとまとめにして、4つの処理を1度に実行できるようにします。
この仕組みを関数といいます。

同じ処理を何度も記述しなくても済むってことか!

そうだね。関数は「複数の処理をひとまとめにしたもの」なんだ!
関数:表示する()
ここまでずっと使ってきた 「表示する()」 も、関数なんです。
(1) 表示する(“こんにちは!”)

そういえば、これも関数だったね。第1回で学んだね。

画面に表示するための複雑な処理を、ひとまとめにしてくれているんだ。
関数:あいさつ()

挨拶をしてくれる関数を作ってみよう。
変数 name に与えられた名前に対して、「こんにちは〇〇さん!」と挨拶をするプログラムを考えてみました。
(1) name = “タロー”
(2) 表示する(“こんにちは、”, name, “さん!”)
こんにちは、タローさん!

この2つの処理をまとめた関数「あいさつ()」を作ったよ。

その関数はどうやって使うの?
関数「あいさつ()」を使って、タローさんとハナコさんに挨拶をしてみます。
(1) あいさつ(“タロー”)
(2) あいさつ(“ハナコ”)
こんにちは、タローさん!
こんにちは、ハナコさん!
引数とは?

「あいさつ(“タロー”)」って書いてあるけど、( )の中の“タロー”ってなに?

いい質問だね!その“タロー”のことを 引数(ひきすう) って呼ぶんだよ。
引数とは、
「関数に渡す情報」のことです。
関数は、引数を受け取って、その値を使って処理をします。
(1) あいさつ(“タロー”)
このように書くと、「タロー」という文字列が 関数「あいさつ」に渡されて、
こんにちは、タローさん!
このようなメッセージが表示されます。

関数の処理を変えたいときには引数を変えるだけでOKなんだ!

たしかに、「あいさつ(“ハナコ”)」にすれば、ハナコさんって呼んでくれるんね!
(1) あいさつ(“ハナコ”)
こんにちは、ハナコさん!
「値を返す関数」と「値を返さない関数」
共通テスト用プログラム表記の例示では、次のように書かれています。


値を返す関数?値を返さない関数?なんのこと?

関数は大きく分けて「値を返す関数」と「値を返さない関数」の2種類があるんだ。具体例で説明していくね。
「値を返す関数」と「値を返さない関数」の違いは、関数を使ったあとに「結果(値)」が返ってくるかどうかです。
値を返す関数
値を返す関数は、関数を使うと「結果」が返ってきて、それを変数などに代入できます。
例として 関数「要素数()」が使われています。
要素数(配列)•••引数として「配列」が与えられ、その配列に含まれる要素の個数が戻り値となる関数。
(1) Data = [1, 2, 3, 4, 5]
(2) kazu = 要素数(Data)
(3) 表示する(kazu)
5
引数の配列「Data」には 5つ の要素が入っているので、関数「要素数(Data)」を実行すると「5 」という「結果」を返します。
この返す「結果」のことを「戻り値」といいます。

なるほどね。関数が実行された結果を、プログラムの中で使うことができるんだ。

別の例でも説明するよ。
関数「整数()」と関数「乱数()」についても説明します。
整数(値)•••引数として「値」が与えられ、その値の小数部分を切り捨た整数が戻り値となる関数。
(1) seisu = 整数(1.98)
(2) 表示する(seisu)
1
引数の値は「1.98」なので、小数部分を切り捨てた「1」が戻り値になります。
乱数()•••引数を必要としない、0以上1未満のランダムな小数が戻り値となる関数。
(1) a = 乱数()
(2) b = 乱数()
(3) c = 乱数()
(4) 表示する(a)
(5) 表示する(b)
(6) 表示する(c)
0.3816
0.7924
0.1037
0以上1未満のランダムな小数を戻り値とします。使うたびに別の結果になります。

引数がいらない関数もあるんだ!

そうなんだ。逆に引数が複数必要な関数も作ることができるんだよ。
値を返さない関数
値を返さない関数は「結果」は返さず、その場で何かを実行するだけの関数です。
(1) 表示する(“こんにちは!”)
こんにちは!
このように、画面に文字や数値を出力するだけで、何かを返してはいません。

あ、これまでいっぱい使ってきた 関数「表示する()」も、値は返してなかったのか!

うん。「出力はするけど、返り値はない」っていう関数なんだよ。
関数の補足
共通テスト用プログラム表記の例示では関数について、2つの補足ポイントがあります。
※「表示する」関数はカンマ区切りで文字列や数値を連結できる。
※「表示する」関数以外は基本的に問題中に説明あり
(1) tensu = 82
(2) 表示する(“情報の点数は”, tensu, “です”)
情報の点数は 82 です

関数は問題文で説明があるんだね。それなら安心だ。

「この関数はどんなことができるのか」を理解する力が必要になるんだ。
練習問題
次のプログラムを実行したときに、表示されるものを答えなさい。ただし、関数「乱数()」の戻り値は「0.7012」とする
整数(値)•••引数として「値」が与えられ、その値の小数部分を切り捨た整数が戻り値となる関数。
乱数()•••引数を必要としない、0以上1未満のランダムな小数が戻り値となる関数。
(1) saikoro = 整数(乱数() * 6) + 1
(2) 表示する(saikoro)

関数の引数に関数がある•••

1つずつ考えれば大丈夫だよ。頑張ってみよう!
5
まとめ
今回は「関数」について解説しました。
- 関数とは、「処理をひとまとめにして、あとで呼び出せる仕組み」
- 関数には 引数 を渡して、処理内容を変えることができる
- 関数には 値を返す関数 と 値を返さない関数 の2種類がある
- 「表示する()」のように、返り値はないけど動作だけする関数もある
- 共通テストでは、「表示する」以外の関数は 問題中で説明される

今回で、共通テストを解くための知識は揃ったよ。必要な知識はこれだけ!あとは実践あるのみだね!

これだけの知識でいいのか!思ったより簡単かも!本屋さんで問題集買ってこようかな。
次に進む → 第10回 まとめ
コメント