pulpul 日本の試験

基本情報技術者 概念書 · アルゴリズムとプログラミング

プログラミングの基本構造と状態管理

要点と定義

プログラムは、データと、そのデータを処理する手順を組み合わせて作ります。データ型は値の種類や扱い方を示します。整数型、実数型、論理型、文字型、文字列型などがあり、型に応じて可能な演算や値の表し方が異なります。変数は値を名前で扱うためのもので、代入は変数に値を設定する処理です。たとえば、単価と個数を掛けた結果を合計額の変数に代入すれば、後の処理でその値を使えます。

プログラムの基本的な流れには、順次、選択、繰返しがあります。選択は条件に応じて実行する処理を分け、繰返しは条件が成り立つ間、または決めた回数だけ処理します。繰返しでは、初期値、継続条件、更新方法をそろえて考えます。手続や関数に処理を分けると、役割を明確にできます。関数は引数で値を受け取り、戻り値で結果を返す形にでき、局所変数はその処理の中で使う値を扱います。責務を分けたモジュールや手続は、変更箇所を探しやすくし、保守性を支えます。

データ構造も処理の意味を左右します。スタックは後から入れた値を先に取り出す構造です。電卓の例では、入力中の値が三で、新たに七を入力するとき、値を十倍して七を加える規則なら三十七になります。保留中の演算や入力値を順番に追うと、表示結果を判断できます。

オブジェクト指向のカプセル化は、データと、そのデータを操作する手続を一つにまとめ、内部の詳細を外部から隠す考え方です。利用側は必要な操作を通じて対象を扱えるため、内部表現の変更が他の処理へ及ぼす影響を抑えられます。継承や汎化とは異なる概念です。

適用条件と例

従業員番号順のマスタと、順不同で届く更新データを照合する例を考えます。更新データは番号順に整列してから照合します。結果ファイルの先頭レコードは従業員データではなく、今回の受診日を持つ情報です。したがって、読み込んだ受診日を後で履歴の先頭に設定するための変数へ保存し、二件目以降の従業員データを整列処理へ渡します。この区別をしないと、日付情報を従業員データとして扱ったり、更新日を失ったりします。

整列後の更新対象とマスタを照合するときは、マスタ番号が対象番号より小さい間はマスタを読み進め、番号が一致した時点で更新します。今回のデータを履歴の先頭に置くには、既存の履歴を後ろへ一つずつ移します。十件の履歴なら、九番目から一番目へ逆順に移すと、移動元を先に上書きせずに済みます。今回の日付と測定値を先頭へ設定した後、比較では更新後の一番目を今回、二番目を前回として扱います。未受診者を表示する処理は、受診者との照合が終わってから残ったマスタを読む位置に置きます。表示文字列を組み立てる位置カウンタも、各従業員の処理前に初期化します。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む