構造化プログラミングについて~小学生のためのScratch入門(番外編)~
前回の記事で、同じ動作をさせる方法は一つではないことを書きました。
ただ動けば良いというのであれば、どんな方法でも良いでしょうが、読みにくいプログラムは、得てして、うまく動かない(バグがある)ことが多いです。しかも直しにくかったりもします。
そこで、先人の知恵である「構造化プログラミング」を理解してプログラミングすると、プログラムがキレイに書けるようになると思います。
「構造化プログラミング」は、今の時代、古いと言われ学校や新人研修でも教えてくれなくなっているようです。
ただ、長年プログラムを作っている経験からすれば、やはり「構造化プログラミング」を理解している方が良いと思います。(特に複数メンバーでプログラムを作成したりする場合は)
ですので、今回は、「構造化プログラミング」の基本的なことについて書こうと思います。
構造化プログラミングの目的は、「良いプログラムを書けるようにする」ことです。
良いプログラムとは、「正しく動く」のはもちろん、「プログラムが正しく動くことを証明する」ということです。
「プログラムが正しく動くことを証明する」とは、実際にプログラムを動かして確認(テスト)するのではなく、プログラム自体が正しく動くことが理解される必要があるということです。
正しくプログラムを理解してもらうには、理解しやすいプログラムである必要があります。
要するに、「分かりやすい構造で、正しく動くプログラムを書きましょう」ということです。
では、どうしたら分かりやすい構造になるのでしょう。
「構造化プログラミング」では、「順次(じゅんじ)」、「分岐(ぶんき)」、「反復(はんぷく)」の3つの構造でプログラムを書けば、分かりやすい構造になるとしています。
この3つの構造を順に説明します。
ただ動けば良いというのであれば、どんな方法でも良いでしょうが、読みにくいプログラムは、得てして、うまく動かない(バグがある)ことが多いです。しかも直しにくかったりもします。
そこで、先人の知恵である「構造化プログラミング」を理解してプログラミングすると、プログラムがキレイに書けるようになると思います。
「構造化プログラミング」は、今の時代、古いと言われ学校や新人研修でも教えてくれなくなっているようです。
ただ、長年プログラムを作っている経験からすれば、やはり「構造化プログラミング」を理解している方が良いと思います。(特に複数メンバーでプログラムを作成したりする場合は)
ですので、今回は、「構造化プログラミング」の基本的なことについて書こうと思います。
構造化プログラミングの目的は、「良いプログラムを書けるようにする」ことです。
良いプログラムとは、「正しく動く」のはもちろん、「プログラムが正しく動くことを証明する」ということです。
「プログラムが正しく動くことを証明する」とは、実際にプログラムを動かして確認(テスト)するのではなく、プログラム自体が正しく動くことが理解される必要があるということです。
正しくプログラムを理解してもらうには、理解しやすいプログラムである必要があります。
要するに、「分かりやすい構造で、正しく動くプログラムを書きましょう」ということです。
では、どうしたら分かりやすい構造になるのでしょう。
「構造化プログラミング」では、「順次(じゅんじ)」、「分岐(ぶんき)」、「反復(はんぷく)」の3つの構造でプログラムを書けば、分かりやすい構造になるとしています。
この3つの構造を順に説明します。
順次(順構造)
「順次」は、プログラムの記述されている順番に処理が実行される構造です。
「処理1」「処理2」の順番に実行されます。
この「処理1」や「処理2」はスクラッチでいう「見た目」や「動き」などの1つのブロックに該当します。
分岐(判断)
「分岐」は、ある条件が成り立つ場合のみ、処理を実行する構造です。
上の場合は、判断条件が成り立つ場合に、処理1、成り立たない場合に、処理2が実行されます。
反復(繰り返し)
「反復」は、繰り返しの条件が満たされている間、処理を繰り返す構造です。
上の場合は、条件が成立している間、処理1を実行し、条件が成立しなくなったら、次の制御に移ります。
処理1の実行より先に条件の判定を行っている(前判定)ので、条件によっては、1度も処理1を実行しない場合があります。
上の場合は、処理1の実行の後に条件の判定(後判定)を行っているので、条件によらず、必ず1度は処理1を実行することになります。
以上の3つの構造でプログラムを書くと、分かりやすいプログラムになります。
スクラッチには、分岐、反復に対応したブロックが用意されているので、スクラッチでプログラムを作っていると、構造化プログラミングの基本が理解できるようになると思います。