
これまでに、三角形を描くプログラムを作って、簡単なプログラミングを覚えました。
これからいろいろなプログラムを作っていきたいと思います。
でも、その前にプログラムの基本的な機能を覚えていきましょう。
少し退屈な内容になってきますが、プログラムの基礎編ということで学んでいきましょう。


繰り返し(ループ)処理って何?
プログラミングの技法で繰り返し(ループ)処理というのがあります。
今回はどのような処理なのかを学びます。
繰り返し(ループ)処理というのは、同じ動作を繰り返し何回か行うことを指します。
指定した回数の10回同じ動作を繰り返すとか、永遠(無限)に同じ処理を繰り返すなどです。
前回の正三角形を描くプログラムを思い出してみましょう。
同じパターンの動作を何回か繰り返していることに気づくでしょうか。

・線を引く
・回転する
という動作を3回繰り返して三角形が描けていることに気づいたでしょうか。
(3回目の回転は無くてもよいですけどね)

繰り返し(ループ)処理のプログラムを作ってみよう
これを繰り返し(ループ)処理を使わずにプログラムにすると次のようになります。

これに繰り返し(ループ)処理を使ってみましょう。

・100歩動かす
・120度回す
を3回組み合わせていたのを1回に短縮することができました。
代わりに「3回繰り返す」という部品が増えています。
これでは、あまり楽になった気がしませんが、5角形や10角形などの多角形を描く場合は断然手間が減ります。
試しに5角形を作ってみましょう。
ループを使わない場合このようになります。

同じ動作を5回組み合わせました。
このプログラムの実行結果はこのようになります。

では、これをループを使って作り直してみましょう。

いかがでしょうか。
繰り返しの回数と回転する角度が変わっただけです。
ループ処理を使えば同じプログラムを少し変えるだけです。
作成する手間も変わりませんね。
応用編:多角形が描けるプログラムに改造してみよう
さらに応用編をやってみましょう。
これまでの手順では、「何回繰り返すか?」と「何度回転するか?」を多角形を描くごとに考える必要があります。
〇角形を作りたいと入力することで角度などを自動計算して描いてくれるプログラムにしてみましょう。
変数と演算の利用
汎用的に多角形を描くプログラムを作るためには「変数」と「演算」という部品を新たに使います。
変数
変数というのは数字を入れておく入れ物です。
例えば「n角形」という名前の入れ物を作り、そこに4という数字を入れていきます。
プログラムの中で「n角形」という名前を書くと「4」という数字に置き換えて処理してくれます。
中学校で習う
x = 4のとき
x + 2 = 6
のような関数(x)と全く同じ考え方です
演算
演算というのは計算式のことです。
例えば、〇角形を自動で描くプログラムを作ろうと思ったら、〇角形という情報から回転する角度を計算で求めます。
多角形の外角(回転する角度)を求める式は
360 ÷ 角の数(〇角形) = 多角形の外角
このような数式を表現する機能を演算といいます。
〇角形を描くプログラム実践
では、実際にプログラムを作ってみましょう。
完成形はこのようになります。
「n角形を〇にする」の〇の数字を変更することで何角形でも描くことができます。

では、このプログラムの作り方を解説します。
このプログラムに新しく出てきた「変数」と「演算」について説明します。
変数の作り方
変数の作り方を説明します。
このプログラムでは変数は3か所で使われています。

では、変数の作り方を説明します。

コードの一覧から「変数」のグループから「変数を作る」を押してください。
すると、変数名を入力する画面が出ます。

新しい変数名という欄に何か変数名を入力します。
今回は「n角形」としましょう。
入力したら「OK」を押してください。
すると、もとの画面に戻ります。

先ほど作成した「n角形」に関係する部品が追加されています。
これを使って変数を利用します。

追加された部品を配置します。
図の赤四角で囲った部品を使います。
変数に数字を代入したい場合は「n角形を0にする」n部品を使います。
「0」のところに代入したい数字に書き換えて使います。
8角形を作りたい場合は「8」を入力します。
入力した数値(変数)を利用したい場合は「n角形」の部品を使います。
演算の使い方
演算は「演算」グループの部品です。

足し算、引き算などの四則演算をする部品があります。
そのほかにも「〇かつ〇」「〇または〇」のような論理計算もあります。
あまり身近ではありませんがプログラムではよく使います。
また別の機会に条件分岐の説明をしますので、その時に説明します。
今回は割り算を使います。

割り算は「〇/〇」という部品を使います。
プログラムの世界では「÷」という記号がありません。
そこで「/」の記号を使うのが慣例になっています。
コメント