システム創造事業部
アーキテクト
赤木 邦雄

みなさん、こんにちは。
プログラム(Java)を始めて、まだあまり経験を積んでいない人に知って欲しいことなどを
私なりに書いていこうと思います。
第1回目は、擬似コードプログラミングのご紹介です。
こんな風なメソッドを作りたいがどうすればよい分からなくなったり、プログラミングしているうちに、
何だかよく分からなくなってしまったことはないでしょうか?
こんな時は、いきなりプログラムを書くのではなく、
まず何をするのか整理することが大切。
そこで、今回おすすめするのが「擬似コードプログラミング」です。
大したことはありません。
ただ日本語で書いてからプログラムするだけです。
これだけで、きっとよいプログラムになるでしょう。
細かいところは置いておき、簡単な使い方はこんな感じです。
1.処理内容の擬似コード(日本語)をわかりやすい文章で書く。
2.擬似コードを確認する。
3.コメントにする。
4.プログラムを書く。
たった、これだけです。
では、
「3つの整数値から中央値を取得する」メソッドを例にちょくら、やってみましょう。
1.処理内容の擬似コード(日本語)をわかりやすい文章で書く。
------------------------------------------------------------ このメソッドは、渡された3つの整数値(a, b, c)の中から 中央値を求め、その値を返します。 if a が b より大きい if c が a より大きい (c, a, b) aを返す。 if b が c より大きい (a, b, c) bを返す。 if それ以外 (a, c, b) cを返す。 if a が c より大きい (b, a, c) aを返す。 if b が c より大きい (b, c, a) cを返す。 if それ以外 (c, b, a) bを返す。 ------------------------------------------------------------
2.擬似コードを確認する。
1を見直してみる。うーむ。合ってそうだ。
3.コメントにする。
------------------------------------------------------------ /** * このメソッドは、渡された3つの整数値(a, b, c)の中から * 中央値を求め、その値を返します。 * @param a 整数値 * @param b 整数値 * @param c 整数値 * @return 中央値 **/ // if a が b より大きい // if c が a より大きい (c, a, b) // aを返す。 // if b が c より大きい (a, b, c) // bを返す。 // if それ以外 (a, c, b) // cを返す。 // if a が c より大きい (b, a, c) // aを返す。 // if b が c より大きい (b, c, a) // cを返す。 // if それ以外 (c, b, a) // bを返す。 ------------------------------------------------------------
簡単ですね。
4.プログラムを書く。
------------------------------------------------------------
/**
* このメソッドは、渡された3つの整数値(a, b, c)の中から
* 中央値を求め、その値を返します。
* @param a 整数値
* @param b 整数値
* @param c 整数値
* @return 中央値
**/
public static int getMedian(int a, int b, int c) {
// if a が b より大きい
if (a > b) {
// if c が a より大きい (c, a, b)
if (c > a)
// aを返す。
return a;
// if b が c より大きい (a, b, c)
if (b > c)
// bを返す。
return b;
// if それ以外 (a, c, b)
else
// cを返す。
return c;
// if a が c より大きい (b, a, c)
} else if (a > c)
// aを返す。
return a;
// if b が c より大きい (b, c, a)
else if (b > c)
// cを返す。
return c;
// if それ以外 (c, b, a)
else
// bを返す。
return b;
}
------------------------------------------------------------
最初に擬似コードを書いているので、何も迷わすプログラミングできました。
擬似コードは無駄にならず、コメントとして残っているのもいいですね。
不要なコメントがあると感じたら、削除してもいいです。↓こんな感じ。
------------------------------------------------------------
/**
* このメソッドは、渡された3つの整数値(a, b, c)の中から
* 中央値を求め、その値を返します。
* @param a 整数値
* @param b 整数値
* @param c 整数値
* @return 中央値
**/
public static int getMedian(int a, int b, int c) {
// if a が b より大きい
if (a > b) {
// if c が a より大きい (c, a, b)
if (c > a)
return a;
// if b が c より大きい (a, b, c)
if (b > c)
return b;
// if それ以外 (a, c, b)
else
return c;
// if a が c より大きい (b, a, c)
} else if (a > c)
return a;
// if b が c より大きい (b, c, a)
else if (b > c)
return c;
// if それ以外 (c, b, a)
else
return b;
}
------------------------------------------------------------
◆ 今回のポイント
- 最初に擬似コードを書いているので、アルゴリズムを考える作業とプログラミングをする作業が別々になり、混乱することなくプログラミングができる。
- 擬似コードを書くことで、出来上がったプログラムが綺麗である。
- 的確なコメント(擬似コード)が付いているので、後でプログラムを見たときや、他の人が見ても、何をしているかが分かり易い。
気に入ったら、試してみてください。
それでは、まだ今度。