階層構造プログラミングの進め方          トップ | ←前 | 次→
抽出コマンドも使用したプログラム例(エラーでは無い)

先ず生徒コード>月> 順に並べておく。
B  While(Not(End Selection))
 A  While(月<=12)
     年間合計点数合計A=年間合計点数合計A+年間合
 ル   計点数
ル    SAVE RECORD
 |   NEXT RECORD
     月=月+1
 プ  End while

|   If(教室=A)
     年間合計点数合計B=年間合計点数合計B+年間合計
     点数合計A
    EndIf
プ  End while

階層構造型プログラミングでは、ネストをまたがる割り込み処理や、エラー処理、例外処理等がプログラム段階で発生しないよう極力設計段階で解決しておく。

3. デ−タベ−ス言語によるプログラミング作業の進め方

プログラミング作業では、ほぼ下記の手順を辿る。

1)プログラミングしようとする処理のル−プ(繰り返し)部分を、大きなル−プ部分から小さなル −プ部分へと、順に各処理の反復サイクルの規則性に注目しながら探し出して行く。これがいわゆるトップダウンによって処理全体構造を階層化して従属構造へ掘り下げていく手法である。

ex. ファイルの始めから終りまで1レコ−ドずつ読んでは処理して行くル−プ

 プロセデュア内で他のプロセデュア(サブル−チン)を実行する(入れ子)
  上位プロセデュア名 xxxxx
     下位プロセデュア名 xxxxx

 (プロセデュア内で他の値を返すル−チン(ファンクション)を実行する場合も在る)

2)各ル−プを階層的に把握する際、各ル−プ間でネストしない様、入れ子に納まるよう、処理を分解、 合成する。
反復処理単位(反復処理が1プログラム(サブルーチン)になる場合もある)の先頭で、データ内容や、スイッチの識別によって当該単位を実行するか否かを判定する。

3)ル−プ階層構造を大きいル−プから順に、While 〜  End While で表現する。

 事務処理プログラムの多くはファイルのレコードを1件ずつ処理して行く構造を持ち、
 下記の例の様なループ構造を持つ。
 While(Not(End Selection))
  フィールドA:=Current Date
  SAVE RECORD
  NEXT RECORD
 End While

4)実際のデ−タを頭やフローチャートで想定しながら、処理順に辿らせてみて、目的通り流れるかを、2件目、3件目と、実行させてみる。

(注。別のプログラミングアプロ−チもある。込み入った処理の場合、取り敢えず分かる所からコマンドを記述し、プログラム化して行くというやり方である。しかし、上記のようになるべく類似のモデルパタ−ンを思い浮かべながら、トップダウンでル−プ階層構造を明らかにしていく方が、プログラムの全体構造をしっかりした骨組みで構築出来る。)