Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

【C++】ひし形に内接する円の面積を求めるプログラム

この記事では、ひし形に内接する円の面積の求め方をわかりやすく解説します。ひし形の2本の対角線の長さをそれぞれ ab とし、内接円の半径を r とします。

公式の導出

ひし形の2本の対角線は互いに垂直に交わり、ひし形を4つの同一の直角三角形に分割します。

各直角三角形の直角を挟む2辺の長さは a/2 と b/2 になるため、1つの三角形の面積は次の式で表せます。

三角形の面積 = (a × b) ÷ 8

また、ひし形の一辺はこの直角三角形の斜辺に相当するため、三平方の定理(ピタゴラスの定理)から次のように求められます。

一辺の長さ = √(a² + b²) ÷ 2

さらに、「ひし形の面積 = 周の長さ × 内接円の半径 ÷ 2」という関係を利用すると、内接円の半径 r は次の通りです。

r = (a × b) ÷ (2 × √(a² + b²))

したがって、ひし形に内接する円の面積は、以下の公式で求められます。

円の面積 = π × a² × b² ÷ (4 × (a² + b²))

C++による実装例

上記の公式を使い、対角線の長さから内接円の面積を計算するプログラムがこちらです。

#include <iostream>
#include <cmath>
using namespace std;

float area(float a, float b) {
    if (a < 0 || b < 0) // 負の値が入力された場合は無効
        return -1;
    float area = (3.1415 * (a*b * a*b)) / (4 * (a*a + b*b));
    return area;
}

int main() {
    float a = 8, b = 10;
    cout << "Area is: " << area(a, b);
}

実行結果

Area is: 30.6488

コードの解説

この例では、対角線 a = 8、b = 10 を与えています。公式に代入すると、

面積 = 3.1415 × 80² ÷ (4 × (64 + 100)) = 3.1415 × 6400 ÷ 656 ≒ 30.6488

となり、プログラムの出力結果と一致します。

なお、area関数では引数に負の値が渡された場合に -1 を返すことで、不正な入力を検知できるようにしています。幾何学的な長さは必ず正の値になるため、実用的なプログラムではこのような入力チェックを入れておくと安心です。

  1. 半円に内接する長方形に内接する円の面積の求め方

    半径 R の半円が与えられているとします。この半円の中に、長さ l、幅 b の長方形が内接しており、さらにその長方形の中に半径 r の円が内接しています。本記事では、この内側の円の面積を求める手順を、数式の導出からC++による実装例までわかりやすく解説します。 半円に内接する最大の長方形 半円に内接する長方形は、底辺が半円の直径上にあり、上側の2つの頂点が半円周上にあります。このとき、三平方の定理(ピタゴラスの定理)より、l と b の間には次の関係が成り立ちます。 (l / 2)2 + b2 = R2 長方形の面積 A = l × b を最大化する条件を求めると、微分計算により次の値が

  2. 正方形に内接する円の面積を求めるC言語プログラム

    正方形に内接する円とは、正方形の四つの辺すべてに接する円のことです。このとき、内接円の直径は正方形の一辺の長さと等しくなります。内接円の面積は、次の公式で計算できます。面積 = (π / 4) × a × aここで「a」は正方形の一辺の長さです。これは、内接円の半径が「a / 2」になるため、一般的な円の面積の公式「π × r2」に代入すると「π × (a/2)2 = (π/4) × a2」となることに基づいています。プログラムのロジック内接円の面積は、公式「((π / 4) × a × a)」を用いて計算します。そのために、数学的に 22/7 すなわち 3.14 とされる円周率(π)の値をあ