コンピュータを利用するとき,アルゴリズムは重要である。アルゴリズムの説明として,適切なものはどれか。
平成25年度 春期 ITパスポート試験 問53
この問題の解説と、これまでの解答の記録です。
問 53
不正解ア
「コンピュータが直接実行可能な機械語にプログラムを変換するソフトウェア」は、コンパイラやアセンブラなどの言語プロセッサ (翻訳プログラム) の説明である。アルゴリズムは頭の中で考える処理手順そのものであってソフトウェア (製品) ではないので、当てはまらない。
- イ
正解 正解は イ。アルゴリズムとは、ある特定の目的を達成するための処理手順のことをいう。たとえば「データを小さい順に並べ替える」「目的のデータを探し出す」といった目的に対して、どの順序でどんな処理を行えば必ず結果が得られるかを、あいまいさなく有限のステップで書き表したものがアルゴリズムである。コンピュータは指示された手順どおりにしか動けないため、まず解き方の手順 (アルゴリズム) を考え、それを流れ図 (フローチャート) などで整理し、最後にプログラム言語で書き表してプログラムにする、という流れになる。イ の「コンピュータに、ある特定の目的を達成させるための処理手順」は、この定義をそのまま述べたものなので適切である。同じ目的でも手順は何通りも作れるため、処理時間や使用メモリの少ない良いアルゴリズムを選ぶことが重要になる、という点も押さえておきたい。
不正解ウ
「コンピュータに対する一連の動作を指示するための人工言語の総称」は、プログラム言語 (プログラミング言語) の説明である。プログラム言語はアルゴリズムを記述するための道具であり、アルゴリズム自体とは別物である。同じアルゴリズムをどのプログラム言語で書いても内容は変わらない、という関係を押さえておくとよい。
不正解エ
「コンピュータを使って、建築物や工業製品などの設計をすること」は CAD (Computer Aided Design、コンピュータ支援設計) の説明である。コンピュータの応用分野の一つを述べているだけで、処理手順を表すアルゴリズムの定義にはなっていない。
- アルゴリズム=ある特定の目的を達成するための、有限で明確な処理手順。流れ図 (フローチャート) などで表現され、順次・選択・繰返しの三つの基本構造を組み合わせて構成される。
- 紛らわしい用語を区別する: 機械語へ変換するソフトウェアは言語プロセッサ (コンパイラ/アセンブラ)、指示を書くための人工言語はプログラム言語、コンピュータによる設計は CAD であり、いずれもアルゴリズムではない。