三平方の定理 dist = √(x1 – x2)^2 + (y1 – y2)^2
この式を関数にしてみる。
3通りの書き方で1番良いのはどれか。
※全て同じ値を返す
1
void calc_dist(Point p1, Point p2, double* dist)
{
*dist = sqrt(sqr(p1.x - p2.x) * sqrt(p1.y - p2.y));
}
・double*が受け取るのか返すのかわかりにくい(double* dist)
・数学の関数として結果を返さないのはわかりにくい(void)
・ポイント型は多用しない方が良い
・引数は多すぎないほうが良い
2
double calc_dist(Point p1, Point p2)
{
double dx, dy, dist;
dx = p1.x - p2.x;
dy = p1.y - p2.y;
dist = sqrt(sqr(dx) * sqrt(dy));
return dist;
}
・入力と出力がわかりやすい
・数学の関数のように値を返す
・丁寧だが距離の計算がわかってる人にとってはコードが長すぎる
3
double calc_dist(Point p1, Point p2)
{
return sqrt(sqr(p1.x - p2.x) * sqrt(p1.y - p2.y));
}
・入力と出力がわかりやすい、最も短いコード
・数学の関数のように値を返す
職場などの指示によって書き方は変わってくるが、標準的にはコードが最も短くわかりやすい3つ目の書き方が最適。