プログラムを書くとき、趣味のプログラマーとしての私の理解では、ほとんどのことを達成するには 3 つの方法があります。
- ループを作成する
- 関数を作成して使用する
- オブジェクトを作成して使用する
約 2 ~ 3 週間前に JavaScript について学習したので、ここで JavaScript を使用して質問しています。大学のpythonやMatLabで慣れていたものと比べると少し奇妙ですが、それは重要ではありません。私はよく、特定のアプリケーションで 3 つの中でどれを選択するのが適切かを考えるので、あなたの提案を知りたいと思いました。
後でプロットに使用する配列のリストを作成したかったのです。プログラムは、方程式の係数、インクリメンタル ステップ、および x 値の境界を取得することになっています。以下はコードです (SO に合わせて変更するときに以下の何かを見逃していたら申し訳ありませんが、少し前に動作していました!):
function array_creator(input_coeff,inc, boundary){
var bound=boundary||[0,1];
var eqn_deg=input_coeff.length-1;
var increment=inc;
var x_init=bound[0];
var y_val=0;
var graph_array=[];
while (x_init<=bound[1]){
for(var i=0;i<input_coeff.length;i++){
y_val=y_val+input_coeff[i]*Math.pow(x_init,eqn_deg);
eqn_deg--;
}
new_arr=[x_init,y_val];
eqn_deg=input_coeff.length-1;
y_val=0;
graph_array.push(new_arr);
x_init=x_init+increment;
}
return graph_array;
}
上記のコードでは、while の内側に入れ子になったループが 1 つありますが、入れ子の深さが 3 ~ 4 を超えるコードを書くことに慣れており、1 週間後には自分のプログラムを掘り下げることができません。したがって、私の質問は、ネストするのではなく、別の関数を実装する時期であることをいつ知っておくべきか、オブジェクトを作成する時期を知る必要があるかということです。明確さと効率の観点から、1 つの大きなループ関数を複数の関数に分割することのメリットとデメリットは何ですか? どの時点でオブジェクトの作成が不可欠になるのか、それとも同じコードを再利用しなければならないときなのか。
道具が金槌しかないと、すべてが釘に見えてしまいます。MatLab の後に Python を学び始めたとき、OO アプローチに感銘を受け、必要かどうかに関係なくあらゆる状況でクラスを作成していました。多くの SO 初心者は、このプログラミングの基礎に関する体系的なアプローチを見つけて喜んでいると思います。