問題 No.1887
ある業務システムにおいて、1日の売上データを集計する処理のアルゴリズムを検討している。この処理において、未処理のデータがなくなるまで繰り返し処理を行い、有限のステップで確実に終了させるために、フローチャートや疑似言語を用いて論理的に手順を組み立てる作業として、最も適切なものはどれか。
【正解の解説】
処理の流れや条件分岐を順序立てて定義し、プログラムの設計図を作成することである。
料理のレシピに例えると、材料を切る順番や火加減、調理手順を最初から最後まで一つ残らず書き記した「レシピそのもの」に相当します。コンピュータがいきなり動き出すわけではなく、人間が「まずデータを読み込み、次に条件を判定し、最後に結果を出力する」という具体的な手順の設計図を組み立てる作業こそがアルゴリズムの核心です。
スポンサーリンク
【その他の選択肢の解説】
処理の実行速度を最大化するために、ハードウェアの性能をチューニングすることである。
初学者が混同しやすいポイントですが、アルゴリズムは「手順の論理」を指すのに対し、チューニングは「道具(ハードウェア)の性能を極限まで引き出す作業」を指します。どれだけ優れた料理のレシピ(アルゴリズム)を持っていても、コンロの火力調整(チューニング)とは別の話であるため、この選択肢は誤りとなります。
データの入力ミスや異常値を検出し、例外処理のルートを網羅的に検証することである。
エラー処理やデータ検証はプログラムの品質を高めるために極めて重要ですが、アルゴリズムという言葉の本質である「有限のステップで目的を達成するための全体の処理手順」そのものを指すわけではありません。枝葉のセキュリティや例外対応の検証を、アルゴリズムの組み立て全般と混同させようとする出題者の罠です。
ソースコードの冗長性を排除してメモリ使用量を削減し、実行効率を高めることである。
ソースコードを綺麗にしてメモリを節約することは、プログラムの効率を高める上で大切ですが、アルゴリズムそのものの構築作業とは異なるフェーズの話題です。料理のレシピを決める段階(アルゴリズム)と、調理器具を洗って効率よく片付ける段階(コード最適化)をごちゃ混ぜにしてしまう初学者の勘違いを狙った誤答です。