プログラミングって難しいイメージがあります。
スクラッチなどのビジュアルプログラミングはプログラミング習得に役立つのでしょうか。
プログラミング技術の習得は奥が深いですが、基本構造はかなりシンプルです。プログラミングの基本構造を理解すれば、ビジュアルプログラミングの意図も理解できると思います。
プログラミングの基本「順次・分岐・反復」とは何か
プログラミングの歴史として、
「構造化プログラミング」
「オブジェクト指向プログラミング」
「関数型プログラミング」と様々な手法が出てきています。
ここでは、構造化プログラミングで提唱されていた
「順次」「分岐」「反復(繰り返し)」について説明します。
この技術の適用範囲は、構造化プログラミングだけではないため、理解しておいて損はないです。
構造化プログラミング
「構造化プログラミング」は、オランダ人の学者であるダイクストラ氏によって提唱されました。
考え方は、
正しく動作するプログラムを作成するには、わかりやすい構造にすることが重要
という考え方に沿っています。
わかりやすい構造にするために、
「順次」「反復」「分岐」の3つの構造だけで表現することを提唱しています。
- 構造化プログラミングには、この基本三構造以外の工夫もありますが、割愛します.
- 複雑な処理をプログラミングする際には「設計」が非常に重要になります。
構造化プログラミングの後にオブジェクト指向設計が出てきていますが、こちらについても割愛します。
順次
順次は、処理を順番に実行していくことです。
上図のアクティビティ図通り、処理Aを実行し、その次に、処理Bを実行します。
分岐
条件に従って、処理が分岐します。
条件を満たした場合、処理Aへ進み、
満たさなければ、処理Bに進みます。
処理結果によって、処理が変わる分岐です。
反復
反復は、一定回数、あるいは、条件を満たすまで処理を繰り返します。
上図では、処理をさかのぼっていますが、
フローチャートでは、台形のような形で書かれることが多いです。
プログラミングとのマッピング
ビジュアルプログラミングとの対応
ビジュアルプログラミングには、いくつかのタイプがありますが、
その中でも Scratch のようなブロックタイプとの対応を行います。
ブロックタイプというのは、ブロックを組み合わせてプログラミングを行うものです。
以下、Scratchを例に対応をとります。
順次
分岐
反復
分岐や反復のブロックは他にも用意されていますが、
基本的な考え方としては、
これらの組み合わせで、プログラムが出来上がっていることがお分かりいただけると思います。
様々なプログラミング言語が出てきていますが、
どういう風にプログラムを組み立てればよいかの考え方は同じです。
テキストプログラミングとの対応
一般的にプログラミングといえば、こちらになるのですが、
最近では、Scratchなどのビジュアルプログラミングをされている方もいらっしゃると思うので、
あえて、テキストプログラミングという記述にしています。
カテゴリ | 対応 |
---|---|
順次 | 省略。以下、例ですが、 1の後に2の処理を順番に処理することをいいます。 変数iを定義した後に、iをインクリメント(1増やす)する。 1: int i = 0; 2: i++; |
分岐 | if, switch |
反復 | for, while |
文法は、プログラミング言語によって若干の違いがありますが、
上述したように、基本的な考え方は同じです。
まとめ
以上、プログラミングの基本「順次」「分岐」「反復」の紹介でした。