コンテンツにスキップ

正多角形をスクラッチ(Scratch)を使ってかく - 小学校プログラミング教育に関する研修教材

はじめに

今回は 「小学校プログラミング教育に関する研修教材」 にある「正多角形をプログラムを使ってかく」 をスクラッチ(Scratch)で実践します。

線を引いてみよう

まずは線を引けるようにしましょう。

ペンを使えるように準備する

線を引くには「ペン」の拡張機能が必要です。

左下の「拡張機能の追加」をクリックして、追加できる拡張機能一覧を開きます。

拡張機能の追加

開いたら、「ペン」を選びます。

ペン

これでペンが使えるようになりました。

ペン

線を引いてみる

ペンが使えるようになったので線を引いてましょう。

線を引くには、キャラクター(スプライト)に次の動作をさせます。

  • キャラクターがペンをおろす
  • キャラクターが(ペンをおろしたまま)移動する

これをスクラッチでプログラミングしてみましょう。

ブロックを下の図のように組み立てます。

線を引く

ブロックをクリックして動かしてみましょう。

結果

線を引くことができました。

戻すのもプログラミング

もし、キャラクターが変なところにいってしまったり、間違って線を引いてしまったりしてやり直したいな、と思ったらそれもプログラミングしてしまいましょう。 下のようなブロックを作ってクリックすれば、最初の状態に戻すことができます。

初期化

これで線を引くことができたので、次は正四角形を書いてみます。

正四角形を書いてみる

線を引くことができたので、あとはキャラクターを回転させながら正四角形を引いてみましょう。

ブロックを組み立てると下のようになります。 底辺から順に描いていきます。 キャラクターが移動したことがわかりやすいように 1 秒まってますが、なくても問題ないです。

正四角形

プログラムを動かすと下のようにキャラクターが線を引いてくれます。

結果

正四角形は引けましたが、動かしただけでありこれでは本当のプログラミングではありません

整理してシンプルにしてみましょう。

整理(1) 同じ動きを整理する

組み立てたブロックを見ると

  1. 動く(歩く)
  2. 次の辺を書くために回転しておく
  3. 休憩する

の動きを 4 つの辺で繰り返していることに気が付くでしょう。

整理

繰り返しのブロックを使ってまとめてしまいましょう。 4 セットの動きを整理して 1 つのまとまったブロックに整理することができスッキリしましたね。

繰り返し

繰り返しはロボットのキホン

繰り返しはロボットのキホンです。

工場のロボットも人の代わりに繰り返し同じ動作を繰り返しています。 これによってパンなどの製品を安く大量に作り出すことができます。

そのような工場のロボットも、今回のプログラムのように繰り返しの動作をプログラミングされているのです。

整理(2) 違う動きを整理する

次に正三角形を書いてみましょう。 正四角形で繰り返しを使って整理できたので、同じように正三角形のブロックを作ってみます。

下の図の右側が正三角形のブロックです。

alt text

正四角形と正三角形の違いを整理してみましょう。

違いは

  1. 繰り返し回数 : 正四角形なら 4、正三角形なら 3
  2. 回転する角度 : 正四角形なら 90 度、正三角形なら 120 度

ですね。

2 の回転する角度は小学 5 年生で習う「多角形の内角の和」で求められますね。

「□ 角形の内角の和 = 180°×(□-2)」

であり、正多角形なのですべての角度は同じなので、

「正 □ 角形の 1 つの内角 = 180°×(□-2)÷ □」

です。 ただし、キャラクターに指示するのは回転する角度なので、水平(180°)から内角を引く必要があります。

「正 □ 角形を引くためにキャラクターが回転する角度 = 180° - 180°×(□-2)÷ □」

ここまでを整理すると、正 □ 形の線を引く時の違いは、

  1. 繰り返し回数 : □ (回)
  2. 回転する角度 : 180° - 180°×(□-2)÷ □ (度)

となります。

このときの □ をプログラミングでは変数と言います。

変数を使って正三角形、正四角形、・・・に対応したプログラムにしてみましょう。

答え

変数の数字を 4 にすれば正四角形を書くことができます。 同じように正五角形、正六角形・・・も書くことができます。

いろんな種類に対応したロボット

工場のロボットもパンの種類によって、パンの中に詰めるものを「こしあん」や「クリーム」にしたり、量を変えたりします。 このように変数によって動作を変えることもロボットを動かすプログラミングで重要です。

カイゼン : さらに使いやすくする

さらにつかいやすくしてみましょう。

次は例です。 自分のアイデアでプログラムをより使いやすくしてみましょう。

  1. 最初の状態に戻す
  2. 何角形を書くか毎回変えれる
  3. 図形を見たいので、書き終わったらキャラクターを消す
  4. 角が多くなるとはみ出るので歩数を徐々に小さく
  5. 角が多くなると時間がかかるので待つ時間を徐々に小さく

使いやすく

角の数を大きくすれば、円も描けるようになりました。

結果

回答例

私が作成したスクラッチのプログラムを公開しています。

スクラッチ : 正多角形をプログラムを使ってかく