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

正六角形に内接する円に内接する正方形の面積を求めるC++プログラム

本記事では、正六角形に内接する円、さらにその円に内接する正方形の面積を求める方法を解説します。各記号は以下のように定義します。

  • 正方形の一辺:a
  • 円の半径:r
  • 正六角形の一辺:A

位置関係を図にすると、最も外側に正六角形があり、その内部に円、さらに円の内部に正方形が収まる構造になります。

面積の導出手順

ステップ1:六角形に内接する円の半径

一辺がAの正六角形に内接する円の半径は、次の式で表されます。

r = (√3 / 2) × A

ステップ2:円と正方形の関係

円に内接する正方形では、円の半径は正方形の対角線の半分に等しくなります。対角線の長さは a√2 なので、次の関係が成り立ちます。

r = a / √2 ⇔ a = r × √2

ステップ3:両者の関係を整理

上記2つの式から、正方形の一辺aを六角形の一辺Aで表すと、次のようになります。

a = (√3 / 2) × A × √2 = A × √(3/2)

ステップ4:正方形の面積

面積は一辺の2乗なので、最終的に次のシンプルな公式が得られます。

面積 = a² = (3/2) × A²

このように、六角形の一辺Aさえ分かれば、正方形の面積を直接計算できることが分かります。

C++での実装例

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

float area(float A) { // Aは六角形の一辺
    if (A < 0) // 負の値は無効として扱う
        return -1;
    float area = (A*A) * float(3.0/2.0);
    return area;
}

int main() {
    float side = 5;
    cout << "Area is: " << area(side);
}

出力結果

Area is: 37.5

コードの解説

このプログラムでは、六角形の一辺を引数として受け取り、導出した公式 (3/2) × A² を用いて面積を計算しています。入力値が負の場合は幾何学的に無効であるため、-1を返してエラーを示す設計になっています。

実行例では一辺を5としており、(3/2) × 5² = 37.5 となるため、出力結果も一致します。

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

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

  2. C++で正方形の外接円の面積を求める方法

    本記事では、正方形の一辺の長さが与えられたときに、その正方形の外接円の面積を求める方法について解説します。まず、理解を深めるために基本的な定義をおさらいしましょう。 基本用語の定義 正方形:すべての辺の長さが等しい四角形のことです。 外接円:多角形のすべての頂点に接する円のことです。 面積:二次元図形の広がりの大きさを数量的に表したものです。 外接円の面積の求め方 正方形の外接円の面積を計算するには、円と正方形それぞれのパラメータの間にある関係を見つける必要があります。 下の図のように、正方形のすべての頂点が円に接しています。この図から読み取れる重要な性質は、正方形の対角線の長さが円の直径