第51回
アルゴリズムの基礎・1~カードを使って整列(ソート)を実感しよう

過程を考えることが大切

本コラムの第49回第50回で、実用的なユーティリティー(文字列置換プログラムと積算プログラム)を紹介しました。これらは、Cの基本をマスターしていれば、さほど難しくないものだと思います。しかし、何もないところからこれらのプログラムを作るとすれば、それなりの努力が必要となるはずです。

「文字列置換プログラム」の処理の流れ

本コラムの第49回で取り上げた「文字列置換プログラム」では、次のような処理の流れを作りました。

1.ファイル全体ではなく1行単位で処理する。
2.1行の文字列から『旧文字列』を見付けて、その先頭位置を文字列の終端とする。
3.『旧文字列」の後ろに『新文字列』を連結する。
4.さらにその後ろに『旧文字列』の後半部分を連結する。

「積算プログラム」のループ構造

また、第50回で取り上げた「積算プログラム」では、ユーザーが様々な数値や4種類の演算子など、何を入力するか分からない状況に対応するため、
whileによる入力待ちのループを作り
その中で有効な値が入力されたときだけループを抜ける
――という構造にしました。

クイズ形式で出題しましたが、ソースがまったく同じである必要はないという前提としました。文字列としてのソースそのものではなく、処理を考えるプロセスが大切と考えたからです。

プロセス――アルゴリズムを考えることは、物事の処理過程を考えることです。