復習;制御構造命令
・制御構造命令を中心とした簡単な復習
簡単なプログラムの流れ、変数、代入命令、簡単な計算などはだいじょうぶでしょうか?
これらがきちんと分かっていないと、残念ながら次のステップは理解ができません。
不安な部分があれば何回でもその部分戻って確認及びしっかりと理解をしましょう。
まずは、どこがわかっていないかをきちんと自分で見つけることがとってもとっても大切です。
また、配列変数についても少しは理解できましたか?
また、乱数の使い方、グラフィックスの座標系と、コントロールの移動についても、正しく理解しておきましょう。
必要に応じて参照すればよいので、これらについては正確に覚えておく必要はないとおもいます。
○プログラムの基本的な構造
- プログラムは1行1行順次実行される。大原則として、書かれている上から順番に実行される。これが基本です。
- この授業では、ボタンを作り、この中にプログラムを書いていくというのを原則としています。
- プログラムは、まず自分がコンピュータにさせたいことが何であるかをきちんと論理的に組み立てます。
- これをVBの命令で表現し、文法に従って、上から順に書いていきます。
- 変数は、何らかの数字などを記憶しておく場合に利用します。
- 「=」は代入命令で、右側の結果を左側の変数などに記憶させる、つまり代入する命令です。
- 変数は、代入するだけでなく、現在記憶している数値などを参照することもできます。
- 加減乗除の計算は、+-*/で表現します。これは通常の算数と殆ど同じです。
- x=1 : y=2 : z=x+y の3行のプログラムは、変数xに1が代入され→変数yに2が代入され、変数xとyが記憶している内容を足し算した結果を変数zに代入されることになります。
- 変数は、自由にいくつでも使うことができます。どのような時にどのように変数を使うのかは、ある程度の慣れが必要かもしれません。少なくとも何らかの数値を次々と計算するなどして扱っていく場合には、変数にすべきです。
○制御構造命令
- プログラムは1行1行順次実行される。大原則として、書かれている上から順番に実行される。これが基本です。
- 制御構造命令とは、単純に上から下へという順番ではなくなるプログラム命令です。
- Visual Basicにおける制御構造命令は、If文、For文、Do文などがあります。この3つについては、それぞれきちんと理解しておきましょう。
- If文とSelect文は条件分岐といわれる命令です。
つまり、特定の条件によって、プログラムの実行先が分岐します。よって実行はプログラムの下の方の行に飛んでいきます。但しいずれも分岐が終了するところは一箇所で、戻ってきます。
- For文、Do文はループ(繰り返し)といわれる命令です。
つまり、特定のプログラムを繰り返し処理する際に利用され、実行が上に戻ってきます。
特にループ処理のFor文、Do文において、一行一行実行されるというのを忘れてしまう人がいますので注意しましょう。
- いずれの制御構造でも、ブロックと呼ばれる部分があります。分岐した先の処理や、繰り返し処理をする部分などをブロックと呼ぶことがあります。
ブロックは単に一塊のプログラムを意味し、何もしたくなければ何も書かなくてもOKです。一方で、したいことでかつ正しい命令であれば、何行書いてもどのような命令を書いてもOKです。
これにより、例えばFor文の中にFor文を書くなどの二重ループといったプログラムを書くことができます。勿論For文の中にIf文やDo文を書いてもよいし、それらのブロックの中で更にSelect文やFor文を書いてもOKです。
- 制御構造命令を理解するには、一行一行どの順番で実行されていくのかをきちんと自分で追っていく必要があります。自分がコンピュータになったつもりで、「ここでこのように計算されて変数に代入されるでしょ、次に今この変数にはXXXが入っていて、このIf文ではこれと比べるのだから、条件にあっていて、ここに分岐するよね」などと追っていくわけです。ループでも同じですし、二重ループでも全く同じです。ブロックがどこかをきちんと把握しておけば、二重ループも理解できるようになるはずです。
- 制御構造命令を使ったプログラムを作成するのは、慣れが必要です。よって間違いも多くなりますので、作成したら必ず上記のように自分で一行一行追っていきましょう。
- 制御構造命令は、基本的に全て条件を設定します。
If文、Do文においては同じ形式によって条件式を書きます。
一方For文では、To部分に同様の条件式を書きますが、初期値を書いたり、少し書き方が違います。またSelect文では、条件の書き方がかなり違ってCase部分に場合のみを書きます。
- 一般的な条件式は非常に簡単で、等しい(=)とか大きい、小さいなどです。
注意すべきは、比較演算子(=,<,>など)の左右に書く二つの物しか比較できないことです。
複雑な条件にする場合は、複数の単純な条件を、And、Orなどでつないでいく必要があります。
- 具体的には、駄目な例として「0<a<10」などがあります。これは「0<a And a<10」と二つの条件式に分割して、これをAndでつなげてあげる必要があります。比較演算子は左右二つしか比べられない決まりですので。
制御構造命令は複雑に見えますが、一つ一つは実は非常に単純です。
文法をきちんと確かめながら、基本に忠実に!
○配列変数
- 配列変数とは、横に並んだ変数で、一つの変数名で複数の要素(いわゆる箱)があるものです。
- 実際に配列変数を利用する場合には、どれか一つの要素を通常の変数と同じように用いればよいが、
特定の要素(箱)を示すのに、インデックス値と呼ばれるものが必要になり、カッコ内に指定します。
インデックス値は、背番号、添え字などのようなものです。
- 配列変数の便利なところは、インデックス値に変数が利用できることです。
これにより制御構造命令などと組み合わせたりするとプログラムが簡単になったりすることがあります。
勿論利用方法は工夫次第です。
- 配列変数の宣言には、配列の大きさを指定しておく必要があります。
利用する要素の数より大きい値にしておくのは構わないが、小さくてはいけない。
配列変数は、通常の変数がきちんと理解でき、色々と利用できるようになっていることが必要です。
後は、インデックス値をうまく指定できるように考えれば難しいものではありません。
○グラフィックス
- 座標系が通常の数学と少し違いますので、注意しましょう。
- 原点が左上で、下方向にY軸正方向です。X軸は通常と同じです。
- コントロール(PictureBoxなど)には、LeftやTopプロパティと言う、フォームウィンドウ内での位置を示すものがあります。
- このプロパティを変更すると、位置が変わります(移動します)。
- 例えば、PictureBox1.Left=0とすると、このピクチャーボックスはウィンドウの左に移動します。
- また、これらのプロパティを参照すると、現在の位置が分かります。
- 例えば、x=PictureBox1.Leftとすると、xには、このピクチャーボックスの位置(フォームウィンドウ左端から、ピクチャーボックス左側までの距離)が代入されます。
- これらのプロパティを少しずつ変化させると、あたかも移動するように見せることができます。
いずれにしてもプログラムは、一つ一つは難しくありません。
しかし、一つ一つを適当に理解していると、全くプログラムは書けません。
何が理解できていて何が理解できていないのか、それを自分で早く知ることが一番大事です。
また、プログラムの作成においては、どのように処理すればよいのか、じっくりと考えて工夫し、アイデアを産み出すことが必要です。そしてこの際に以下に論理的にきちんと考えられるかが重要となります。感覚的になんとなくというのでは絶対にプログラムは作成できません。
各種命令などが理解できていたとすれば、後は小さな問題を数多く自分の力のみでプログラムしてみると、プログラミング能力が身に付きます。是非たくさん練習してください。
[「C班」プログラミング基礎のTopに戻る]