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

C++で八面体の表面積を計算するプログラムの作成方法


八面体(オクタヘドロン)とは?

「Octahedron(八面体)」という言葉はギリシャ語に由来しています。「Octa」は「8」を、「hedron」は「面」を意味します。幾何学における八面体とは、8つの面を持つ3次元の正多面体(プラトンの立体)のことです。

他の立体図形と同様に、八面体にも以下のような特徴的な性質があります。

  • 頂点の数:6個
  • 辺の数:12本
  • 面の数:8個(すべて正三角形)

以下は八面体の図です。

C++で八面体の表面積を計算するプログラムの作成方法

問題設定

一辺の長さが与えられたとき、その八面体の表面積を求めるプログラムを作成します。表面積とは、図形のすべての面が占める空間の総面積のことです。

八面体の表面積を計算するには、次の公式を使用します。

C++で八面体の表面積を計算するプログラムの作成方法

ここで、a は八面体の一辺の長さを表します。つまり、表面積は 2√3 × a² で求められます。

入出力例

入力:side = 5
出力:86.6025

アルゴリズム

開始
ステップ1 → 八面体の表面積を求める関数を宣言する
    double surface_area(double side)
        return (2 * (sqrt(3)) * (side * side))
ステップ2 → main() 内で処理を行う
    変数 double side = 5 を宣言する
    surface_area(side) の結果を出力する
終了

C++による実装例

#include <bits/stdc++.h>
using namespace std;

// 八面体の表面積を求める関数
double surface_area(double side){
    return (2 * (sqrt(3)) * (side * side));
}

int main(){
    double side = 5;
    cout << "八面体の表面積は : " << surface_area(side);
}

実行結果

八面体の表面積は : 86.6025

コードの解説

このプログラムでは、surface_area() 関数が公式「2√3 × a²」に基づいて表面積を計算しています。sqrt(3) はルート3の値を返す標準ライブラリ関数で、<cmath> ヘッダー(bits/stdc++.h に含まれる)によって提供されます。main 関数内で一辺の長さを 5 として渡すと、計算結果である約 86.6025 が出力されます。

一辺の長さを変更すれば、任意のサイズの八面体に対して表面積を簡単に求められるため、幾何学計算の学習や実践的なプログラミング練習に最適な題材です。


  1. C++で十二面体の表面積を計算するプログラム

    十二面体とは? 「十二面体(dodecahedron)」という言葉は、ギリシャ語に由来しています。「dodeca」は「12」、「hedron」は「面」を意味します。幾何学における十二面体とは、12枚の平面から構成される3次元の正多面体(プラトンの立体)のことです。 他の立体図形と同様に、十二面体にも以下のような特徴的な性質があります。 20個の頂点 30本の辺 12枚の正五角形の面(五角形は5つの辺を持つ多角形) 以下は十二面体の図です。 問題 一辺の長さが与えられたとき、その十二面体の表面積を求めるプログラムを作成します。ここでいう表面積とは、図形のすべての面が占める空間の総面積のこ

  2. C++で学ぶクイックソート(QuickSort)の仕組みと実装方法

    クイックソートとはクイックソート(Quicksort)は、比較に基づいて未ソートのリスト(配列)を並べ替えるソートアルゴリズムの一つです。「パーティション交換ソート(partition exchange sort)」とも呼ばれます。クイックソートは安定ソートではありません。これは、等しい値を持つ要素同士の相対的な順序が保持されないためです。ただし、配列に対してごくわずかな追加メモリだけで動作するため、メモリ効率に優れています。選択ソートと非常に似ていますが、常に最悪のパーティションを選んでしまうわけではない点が異なり、より洗練された形の選択ソートと捉えることもできます。クイックソートは最も効率