【連載】どれ使う?プログラミング教育ツール
プログラミングの基本をScratchでおさらいしよう(反復編)
ー「順次」「反復」「分岐」をわかりやすく
2022年8月12日 06:45
プログラミングの基本になる考え方に「順次」「分岐」「反復」があります。何かプログラムで実現したいことがあるときには、まず、その手順を「順次」「分岐」「反復」の3つの制御構造を使ってフローチャートのようにして考えます。
フローチャートや言葉で手順を考えるところまではイメージがわいても、いざ、その手順をもとに、コンピューターにわかる言葉でプログラムを作るとなると、急に難しく感じてしまうのが初心者にとっての一つ目のハードルになります。前回記事では、子ども向けプログラミングツールとして有名な「Scratch(スクラッチ)」で、「順次」の構造でプログラムを作りましたが、今回は「反復」をやってみましょう。
Scratchでやってみよう!
さっそくScratchでやってみましょう。Scratchは無料で利用できる子ども向けのプログラミング環境で、ウェブブラウザでアクセスできます。
前回の記事で作ったプログラムは、ネコのキャラクターを中央から右端まで歩かせるというもの。このプログラムをよく眺めてみると、プログラムの中に同じパターンが見つかりました。パターンAとパターンBの2種類がそれぞれ2回ずつ登場しています。
パターンAとパターンBの違いは、ネコのポーズを決める[コスチュームを*にする]ブロックのコスチューム名です。ネコのコスチュームは2個あり、順に切り替えているので、[コスチュームを*にする]の代わりに、[次のコスチュームにする]ブロックを使うことができます。
同じパターンは「反復」処理をしよう!!
最初に確認したプログラムの、[コスチュームを*にする]ブロックを[次のコスチュームにする]ブロックに置きかえると、次の図の通りになります。2種類あったパターンが1種類になりました。
このように同じパターンが複数出てきたときに、ひたすら同じプログラムブロックをつなぎ続けるのは大変です。4回ぐらいだったら頑張れても、100回分だったらどうでしょう? そんな単純作業は途中で嫌になってしまいますし、ミスも起きやすいし、なにか修正したいときには100回分書き換えなければなりません。こんなときには「反復」を使います。
Scratchでは[*回繰り返す]ブロックを使うと、指定した回数に達するまで同じ処理のパターンを繰り返すことができます。[*回繰り返す]を使ってみましょう。
プログラムの長さがとても短くなって、すっきりしましたね!
パターンを見つける目を養おう
このように「反復」を使うと、プログラムの効率が上がり、メンテナンス性も上がります。100回分300個のブロックを並べる根性よりも、やりたいことの中に同じ処理のパターンを見つけ出す力の方が、プログラミングでは重要です。少し工夫すれば反復のパターンに落とし込めそうな場合、その工夫をするのも大切です。
ネコの動きのパターンを反復で処理するというのは、見た目にもわかりやすい例ですが、興味を持っていろいろなプログラムの例をみていくと、え?そんなことも反復の仕組みでやってるんだ……!と意外に思うことがたくさんあります。プログラムの例を見るときにはどんなところで反復を使っていているのか、ぜひ意識してみてください。
長く複雑そうに見える手順の中にある一定のパターンを見抜く力や、反復できるパターンを使って一定の処理をさせるような視点がプログラミングは大切なんだな、というイメージを持って、少しずつ慣れていきましょう!