みなさんはプログラミングでも使う「関数」をご存知でしょうか?
関数はプログラミングを学んでいくうえで、一番最初につまづきやすい考え方です。
そこで今回は関数について分かりやすく説明しながら、実際の変数の使い方や具体例などを紹介しようと思います!
中学の数学をおさらい、もしくは、予習してプログラミングに活かしましょう!
今回、プログラミング講師で普段子供たちに教えている私が数学やプログラミングを知らない人でも分かるように詳しく説明するので気軽にぜひご覧ください!
関数とは?子供でも分かりやすいように簡単説明!
関数(かんすう)とは、
二つの変数x、yがあって、xの値が決まれば、それに伴ってyの値がただ一つ決まるとき、yはxの関数であるという。(日本大百科全書(ニッポニカ))
辞書にも例を用いて、説明しています。文章にすると、
関数とは、入力を受け取り、出力を返す計算のことです。特定の処理を繰り返し使用することができ、また、入力に対して必ず同じ出力を返すように設計されるもの。
そして、プログラミングでは、関数を自分で定義する(決める)ことができます(一部例外を除く)。
文章だと難しいと思いますが、関数≒自動販売機(じはんき)をイメージをすると分かりやすいです。
関数は自販機の「100円を入れたら缶コーヒー、150円を入れたらジュース」などのように何度も同じ処理をすることができます。
*値(あたい)とは
簡単に数の大きさなどのデータと思ってもらえれば大丈夫です。
実際に使おう!関数の使い方
関数が上手く使えるようになると簡潔にプログラミングをすることができます。
関数を実際に使えるように使い方や特徴を学んで、プログラミングに活かしていきましょう!
使い方や特徴
大まかな使い方や特徴は下記の通りです。
・まとまった処理をいつでも使える
・計算に使える
・一緒に処理に必要な値を使える
実際に詳しい説明を見ていきましょう!
まとまった処理をいつでも使える
上記で関数は自分で定義する(決める)ことができるということを説明しました。
例えば、500円入れたら高級な生絞りオレンジジュースが出てくるというオリジナルのプログラムを作ったとします。
そのプログラムを作ったら、100台自販機を用意することになっても、1つのプログラムでオレンジジュースが出てくるように作ることができます。
そして、オレンジジュースの値段を1,000円に変えようと思ったら数字を変えるだけですぐに1,000円のスーパーオレンジジュースを売ることができます。
まとまった処理をいつでも使えることにより、何度も同じことを書かずに済みます!
計算に使える
みんなが数学で習う「x=y」です。上記で説明した辞書と一緒で、xの値が決まった時にyの値が1つに決まるとき、yはxの関数といいます。
「y=2x」や「y=2x+1」などいろんな式を作ることができます。これにより、自販機の仕組みができあがります。詳しくは下記を見ましょう!
一緒に処理に必要な値を使える
関数の特徴で一緒に処理に必要な値を使うことができます。この時の値を引数(ひきすう)といいます。
加えて、その結果出た値を戻り値(もどりち)といいます。
これが関数を文章で説明した引数が入力、戻り値が出力ということになります。
「関数(引数)」のようにあらわすこともでき、こちらを入力すると結果として「戻り値」が出てきます。
特徴や使い方のまとめ
そして、自販機の完成です。自販機を例にいままでの特徴をおさらいしましょう!
まず「まとまった処理をいつでも使える」と「計算に使える」で下記になります。
お水が110円だとすると、
お金を入れる(x円)→自販機(関数)→お水とおつり(お水+y円)となります。
「“お水がもらえる”+y=x-110」
自販機に150円入れたました(x=150)。
お水と40円のおつりが返ってきました(“お水がもらえる”+「y=40」)。
自販機に200円入れたました(x=200)。
お水と90円のおつりが返ってきました(“お水がもらえる”+「y=90」)。
そして、引数と戻り値に当てはめると、引数が200円「自販機(200円)」で戻り値が90円です。
このように自販機にお金を入れると水とお金に応じたおつりが返ってきます。このような仕組みで動く自販機の計算を関数といいます。
まとめ
今回は、プログラミングでも必要となり、数学でも学ぶ「関数」を説明しました。関数は変数と同様につまづきやすい部分なので、この記事で意味を押さえて、実際に使ってみながら覚えていきましょう!
基本をしっかりと学ぶことによって、自分がやりたいプログラミング(ゲームやweb制作、ロボット制御など)の近道になります。
基本もしっかり学びながらプログラミングライフを楽しみましょう!
このサイトではプログラミングの教育に関わることを発信しているので、プログラミングに興味を持った学生の子やその親御さんもぜひ参考にしてください!
コメント