実行制御の構造
- プログラムの構築
- 実行の基本単位
Pascal では、(1)式を評価して値を計算する (2)値を変数へ代入する。
式を評価した結果は代入のほかに、CASE 構文での選択値、IF, WHILE 構文における
条件 (true/false) などに使われる。
C では、代入も演算の一種であることに注意。
一般に式の評価によって変数値が変化することがありうる。これを副作用と呼ぶことがある。
- プログラム構築の方法
- トップダウン
- おおまかなプログラムの制御構造から先に作り、
実際の処理をその中に作り込んでいく。
- ボトムアップ
- 使用する処理を部品として作成し、最後にそれらの
集合体としてのプログラムを完成させる。
- 実行制御の構造
- 逐次構造
- 選択構造 if-then-else, if-then, case
例題:3つの数 x,y,z の最大値を m へ代入する。
解1
- if x > y
- then if x > z
- then m:=x
- else m:=z
- else if y > z
- then m:=y
- else m:=z
解2
- m:=x
- if y > m then m:=y;
- if z > m then m:=z;
例題:変数 d の値は 0,1,2,3 のどれかである。これに対応して
N,E,S,W を表示する。
解1
- if d = 0
- then write('N')
- else
- if d = 1
- then write('E')
- else
- if d = 2
- then write('W')
- else
- if d = 3
- then write('W')
解2
- case d of
- 0: write('N');
- 1: write('E');
- 2: write('S');
- 3: write('W');
- end
- 反復構造 for, while, repeat (do-while)
- 制御構造の組み合わせ
- 入れ子構造
- 多重反復
- 反復と選択 構造の内外を交換できることがある。
練習問題
- ある鉄道の運賃が、(1)10km までは一律200円、(2)10〜30kmまでは、10km を越す分に
ついて km あたり 10円増し、(3)30km以上は、30kmを越す分についてさらに km あたり5円
増しとなっている。目的駅までの距離 k(km) から運賃を求めるプログラムを作れ。
解答例
- 4個の変数 x,y,z,w の最大値を印刷(表示)するプログラムを作れ。但し x,y,z,w 以外の
変数は用いてはいけない。
- 上の問題で、一時的な変数 m の利用が許されるとしてプログラムを作れ。