2005年11月30日

プログラミングの構想

今回は、便利な呼び出し技の話をしようと思ったんだけど、これは次回にして、どんな風にプログラムを組み立てるのか話をしてみます。

ここでは、あまり堅いことは言いません。一般的って言うより私流ですので、あまり捕われないでくださいね。

まず、コンピューターにどんな処理をさせたいのかを明確にしなくてはいけません。例えば、プロフィールデータから 「背の高い人を選ぶ」 という条件では曖昧で、プログラムには向きません。「170cm 以上」 とか、「全体の平均よりも高い人」 というように、判断基準を明確にしましょう。

これが決まったら処理の流れを構想していきます。一般には 「フローチャート」 などと呼ばれるものを作成したりしますが、要は目的の結果を得るまでに行う作業が明確になればいいのです。私は手作業で行う場合にどうするかを追求していきます。

必要なデータは何か?、どのような手順で、どのような判断基準で、どのように処理して目的の結果を得ているのか、作業を細かく分割していきます。普段から行っている作業を自動化する場合に適した方法ですね。

「+Lhaca でサブホルダ毎に圧縮処理」 の例がこれにあたります。「指定したホルダの中にサブホルダがあれば、それを順番に +Lhaca に渡して圧縮処理を行う」 ということを行っている訳です。

逆に、欲しい結果だけが明確だった場合、それを得るために必要なものを追求し、容易に得られるデータにまで結びつけることもありますが、こちらはプログラムでどのような処理が出来るのかが判ってくれば必然的に出来るようになるでしょう。

基本的に、この作業まで出来ればプログラムに落としていくことは可能です。必要な処理を全て書いていけばいいのですから・・・

でも、コンピュータが最も得意とするのは繰り返し作業なんです。なので、同じ処理を繰り返している部分に注目していきます。「+Lhaca でサブホルダ毎に圧縮処理」 の場合でも、「順番に +Lhaca に渡して」 っていう部分は、ホルダ名こそ違うけれども、同じ処理を繰り返している訳ですよね。ソースを参照してみてください。この部分は for ループ でホルダ名を変数に取って処理しています。なので、例え 1000 個のサブホルダがあったとしても、わずか数行のコードで処理出来てしまうのです。便利でしょ〜 (^^

単純作業をプログラムで自動化する醍醐味はやっぱりこの辺りですよね。わずか数行のテキストを書き込むだけで、何時間もかけていた作業を自動でやってくれちゃうんですからね。ぜひ、挑戦してものにしてみてくださいね。

for ループ などは、入れ子状にして、2段階、3段階といった処理を行うことが出来、とっても便利ですが、深さの決まっていない場合に困ってしまうことがあります。例えば、「あるホルダ以下の全てのホルダを処理したい」 なんていう場合、その下にどれだけ深くまでホルダがあるか決まっていませんよね。100階層ぐらいあるかもしれません。全て書くんじゃ大変ですよね。

冒頭でで触れた 「便利な呼び出し技」 っていうのは、これを解決するものです。「再帰呼び出し」 と言われているものですが、最初はチョッと理解し難いかもしれませんが、次回、じっくりやっていきますね。


応援ポチ  お願いしま〜す。

posted by Woody at 00:05 | 静岡 ☀ | Comment(0) | TrackBack(0) | プログラム一般
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。