【子ども向け】関数とは?スクラッチ(Scratch)を使ってわかりやすく解説

プログラミングに少すこし慣なれてくると、関数(かんすう)とかサブルーチンっていう、ちょっとむずかしそうな言葉ことばが出でてきます。

スクラッチ(Scratch)では「ブロック定義ていぎ」という機能きのうがそれにあたります。

でも、はじめて聞きくと

  • えっ、なんでそんなことするの?
  • ブロックを作つくらなくても動うごくのに?

と、思おもうかもしれません。

実じつは「関数かんすう」や「サブルーチン」は、プログラムをもっと分わかりやすく、もっと使つかいやすくするための、とても便利べんりな仕組しくみなんです。

これから、スクラッチを使つかいながら「関数かんすうやサブルーチンってなに?」「どうやって使つかうの?」を、いっしょに見みていきましょう。

 

スポンサーリンク

関数・サブルーチンとは

関数かんすうやサブルーチンは、よく使つかう命令めいれいをまとめて名前なまえをつけた、「何回なんかいでも使つかえる部品ぶひん」のようなものです。

たとえば、スクラッチでキャラクターを「動うごかす→回まわす→音おとを鳴ならす」といった動うごきをよく使つかうとします。

そのたびに毎回まいかい同おなじブロックを並ならべるのは大変たいへんですよね。

そこで、「ダンス」という名前なまえのブロックを自分じぶんで作つくっておけば、
そのブロックをつなげる(呼よび出だす)だけで、中なかの動うごきをぜんぶまとめて実行じっこうしてくれるようになります。

このように、何度なんども使つかう処理しょりをひとまとめにしておくと、とても便利べんりです。

 

引数と戻り値

関数かんすうの中なかには、引数(ひきすう)と戻り値(もどりち)という、少すこしむずかしい言葉ことばも出でてきます。

  • 引数ひきすう:入力にゅうりょくするもの
    → 「ジャンプの高たかさ」や「回まわる角度かくど」など、関数かんすうにわたす情報じょうほうのことです。
  • 戻もどり値ち:結果けっかとして返かえってくるもの
    → たとえば、計算けいさんして答こたえを返かえすときなどに使つかいます。

 

スクラッチには戻もどり値ちを返かえす仕組しくみはありません。
値あたいが返かえってこない命令めいれいのまとまりをサブルーチンと呼よび、関数かんすうと区別くべつされます。

 

たとえば、ツルの折おり方かたを知しっている人ひとに「折おり紙がみでツルを作つくって」とお願ねがいするとします。
その人ひとは折おり紙がみを受うけ取とり、ツルを折おってくれます。

このとき、

  • ツルの折おり方かたを知しっている人ひと → 関数かんすう
  • 「折おり紙がみでツルを作つくって」という指示しじ → 関数かんすうの呼よび出だし
  • 材料ざいりょうである折おり紙がみ → 引数ひきすう
  • 完成かんせいしたツル → 戻もどり値ち

にあたります。

関数を例える

そして、色いろや大おおきさのちがう折おり紙がみをわたせば、ちがう色いろや大おおきさのツルができます。

関数かんすうも同おなじで、引数ひきすうがちがうと結果けっか(戻もどり値ち)も変かわることがあります。

 

スクラッチのブロック定義の使い方

ここでは、スクラッチ(Scratch)のブロック定義ていぎの使つかい方かたを説明せつめいします。

ブロックを作つくる → 中身なかみを作つくる → 呼よび出だす、という3つのステップで見みていきましょう。

ブロックを作る

1.ブロック定義ていぎのカテゴリにある「ブロックを作つくる」をクリック

ブロックを作るをクリック

 

2.必要ひつような情報じょうほうを入力にゅうりょくし、「OK」をクリック

Scratch ブロック定義

  • ブロック名めい
    ブロックの名前なまえです。
    何なにをするブロックなのか分わかりやすい名前なまえをつけましょう。
     
  • 引数ひきすうを追加ついか
    テキストまたは数値すうち、真偽値しんぎちのデータ型がたを追加ついかできます。
    今いまの処理しょりに引数ひきすうが必要ひつようだったら、追加ついかしましょう。
     
  • ラベルのテキストを追加ついか
    ブロックの名前なまえのあとに、説明せつめいの文字列もじれつをつけられます。
    例れい:スコアを(ブロック名めい) ○○(引数ひきすう) だけふやす(ラベル)
    これで、ブロックが何なにをするのかがもっと分わかりやすくなります。
     
  • 再さい描画びょうがせずに実行じっこうする
    チェックを入いれると、ブロックを実行じっこうしている間あいだの動うごく様子ようすを表示ひょうじせず、最後さいごの結果けっかだけすぐに表示ひょうじします。そのぶん動うごきが速はやくなります。
    キャラクターの動うごきを見みせたいときは、チェックを外はずしておきましょう。

 

ブロックを作る

 

3.ブロックができました

関数が作成された

 

ブロックの中身を作る

次つぎに、ブロックの中なかでどんな動うごきをするかを作つくっていきます。

ふつうにプログラミングする時ときと同おなじように、定義ていぎブロックの下したに命令めいれいブロックを組くみ合あわせていきます。

引数ひきすうを使つかう場合ばあいは、引数ひきすうをドラッグアンドドロップで移動いどうさせます。

関数の中身を作る

 

ブロックを呼び出す

中身なかみを作つくったら、いよいよそのブロックを使つかってみましょう。

作つくったオリジナルブロックは、ブロックカテゴリーに新あたらしく追加ついかされています。
あとは、そのブロックをコードエリアにドラッグしてつなげるだけです。

引数ひきすうの場所ばしょには、使つかいたい値あたい(数字すうじや変数へんすうなど)を入いれましょう。

これで、一度いちど作つくった動うごきをいろいろな場所ばしょで何回なんかいでも使つかえるようになります。

数字すうじを入力にゅうりょくすると、その段だんの九九を言いうプログラムができました。

Scratch 定義ブロックの呼び出し

スポンサーリンク

関数・サブルーチンを使うメリット

ネコとイヌのスプライトで、2つのプログラムを作つくりました。

どちらも大おおきさのちがう正方形せいほうけいを2つかくプログラムで、位置いちがちがうだけで やっていることは同おなじです。

関数を使って四角形を描くプログラム

 

プログラムの内容が分かりやすくなる

ネコとイヌのプログラム、どちらが見みやすかったでしょうか?

イヌの方ほうは、ひとつひとつの命令めいれいを追おわないと、何なにをしているのか分わかりづらいですね。

でも、ネコの方ほうは「四角しかくをかく」という名前なまえのブロックを使つかっているので、
見みただけで「四角形しかくけいを2つかくプログラムなんだな」と分わかります。

あとで見直みなおしたときも、「このブロックは何なにをするのか」がひと目めで分わかるので、
整理せいりされた、読よみやすいプログラムになります。

 

同じプログラムを何度も作らなくていい

関数かんすうやサブルーチンを使つかえば、同おなじ動うごきを何度なんども書かく必要ひつようがありません。
そのぶん、プログラムがすっきりして見みやすくなります。

さらに、修正しゅうせいもしやすいというメリットもあります。

たとえば、四角形しかくけいではなく六角形ろっかくけいに変かえたいとき、くり返かえしの回数かいすうと回まわす角度かくどを変更へんこうする必要ひつようがあります。

ネコのプログラムなら、ブロックの中なかを2か所しょだけ直なおせばOK。

でも、イヌのように同おなじ処理しょりを何度なんども書かいていると、4か所しょすべて直なおさなければなりません。

このように、ブロックをまとめて名前なまえをつけておくことで、プログラムの見みた目めがスッキリし、まちがいやエラーも減へらせます。

 

まとめ

関数かんすうやサブルーチンは、命令めいれいをまとめていつでも使つかえるようにしたものです。

よく使つかう命令めいれいをまとめて名前なまえをつけておくことで、同おなじ動うごきを何度なんどでもかんたんに呼よび出だせます。

関数かんすうやサブルーチンを使つかうと、プログラムがすっきり見みやすくなり、修正しゅうせいも楽らくちんです。

最初さいしょは少すこしむずかしく感かんじるかもしれませんが、「関数かんすう」を使つかいこなせるようになれば、プログラムがもっとかっこよく、きれいになりますよ。

少すこしずつで大丈夫だいじょうぶ。一歩ぽずつ、自分じぶんのペースで学まなんでいきましょう。

 

 

\【PR】オールカラー総ルビで読みやすい/
タイトルとURLをコピーしました