関数の書き方(三平方の定理)【C言語】

三平方の定理 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つ目の書き方が最適。

コメントを残す

あなたのメールアドレスは公開されません。必須項目には印がついています *