今回は、Scratch(スクラッチ)を使って、関数・サブルーチンの考え方をわかりやすく解説します。(MakeCodeでも考え方は同じです。)
- 関数・サブルーチンって何?
- スクラッチの「ブロック定義」ってどう使うの?
- 関数・サブルーチンを使うメリットは?
これらの疑問に、なるべく難しい言葉を使わずに答えます。
お子さんに説明する際の参考になればうれしいです。
関数・サブルーチンとは
関数・サブルーチンとは、命令をまとめて いつでも使えるようにしたものです。
何度も使う処理があったら、それらをまとめると便利です。
引数と戻り値
引数とは、関数を呼び出した時に引きわたされる値のことで、関数が処理するための材料です。
また、関数から返される結果のことを戻り値と言います。
このように値が返ってこない命令のまとまりをサブルーチンと呼び、関数と区別されています。
たとえば、ツルの折り方を知っている人に、「折り紙でツルを作って」と指示を出したら、その人は折り紙を受け取り、ツルを折ってくれます。
このとき「折り紙でツルを作って」という指示は関数の呼び出しに当たり、材料である折り紙は引数、ツルを折り方を知っている人は関数、完成したツルは、戻り値に当てはまります。
また、色や大きさがちがう折り紙をわたしても、色や大きさのちがうツルが出来上がりますよね。
関数も同じで、引数がちがっても同じ処理をすることができます。
スクラッチのブロック定義の使い方
スクラッチのブロック定義は、自分で命令をまとめて新しいブロックを作ることができる機能です。
ブロック定義を使ってみましょう。
ブロックを作る
1.ブロック定義のカテゴリにある「ブロックを作る」をクリック
2.必要な情報を入力し、「OK」をクリック
- ブロック名
ブロックの名前です。
何の処理をするブロックなのか分かりやすい名前をつけましょう。
- 引数を追加
テキストまたは数値、真偽値のデータ型を追加することができます。
引数を追加しないことも可能です。
- ラベルのテキストを追加
定義ブロックの最後に文字列を追加することができます。
これで何をするブロックなのかより分かりやすくなりますね。
- 再描画せずに実行する
チェックすると、処理中の状態を見せないで、最後の状態だけ表示されます。
3.ブロックができました
ブロックの中身を作る
ふつうにプログラミングする時と同じように、定義ブロックの下に命令ブロックを組み合わせていきます。
引数を使う場合は、引数をドラッグアンドドロップで移動させます。
ブロックを呼び出す
ブロック定義のカテゴリにできた自作のブロックを、ドラッグアンドドロップで移動させて使います。
引数の場所には、直接値を入れたり、変数を入れたりします。
数字を入力すると、その段の九九を言うプログラムができました。
関数・サブルーチンを使うメリット
ネコとイヌのスプライトを使って2パターンのプログラムを作りました。
どちらも大きさのちがう正方形を2つかくプログラムで、かく位置がちがう以外はやっていることは同じです。
プログラムの内容が分かりやすくなる
ネコとイヌのプログラムどちらが見やすかったでしょうか?
イヌの方はひとつひとつ処理を追わないと、何をしているのか分かりません。
しかし、ネコの方は「四角をかく」という名前をつけているので、四角形を2つかくプログラムだとすぐに分かります。
同じプログラムを何度も作らなくていい
関数・サブルーチンの呼び出しは何度でもできるので、同じプログラムを何度も作らなくていいです。
その分すっきりと見やすいプログラムになりますね。
また、修正がかんたんになります。
四角形ではなく六角形をかくプログラムに変えた場合、くり返しの回数と回す角度を変える必要があります。
ネコの場合は2ヵ所の修正で済みますが、イヌの場合は4ヵ所修正が必要になりますね。
まとめ
関数・サブルーチンとは、命令のまとまりのことです。
何度も使う処理があったら、それらをまとめると便利。
関数・サブルーチンを使うことで、すっきりと見やすいプログラムになり修正がかんたんになります。