C++で正七角形の対角線の長さを求める方法
正七角形(すべての辺と角度が等しい7つの辺を持つ多角形)の対角線の長さは、次の公式を使って求めることができます。
対角線 = 2 × 辺 × sin(900° ÷ 14)
ここで、sin(900° ÷ 14) = sin(64.29°) の値はおよそ 0.9 となるため、この式は「2 × 辺 × 0.9」と簡略化できます。つまり、正七角形の対角線の長さは、辺の長さの約1.8倍になるということです。
例
それでは、辺の長さから正七角形の対角線を求めるC++の実装例を見てみましょう。
#include <iostream>
using namespace std;
int main(){
float side = 12;
if (side < 0)
return -1;
float diagonal = 2*side*0.9;
cout << "The diagonal of the heptagon = " << diagonal << endl;
return 0;
}出力
上記のコードを実行すると、次のような出力が得られます。
The diagonal of the heptagon = 21.6
このコードでは、まず負の値が入力されていないかをチェックし、問題がなければ「2 × 辺 × 0.9」という式で対角線を計算しています。辺の長さが12の場合、対角線は 2 × 12 × 0.9 = 21.6 となります。
-
C++で行列の上三角と下三角を入れ替える方法
このチュートリアルでは、C++のコードを使って3×3の正方行列(対角配列)の上三角部分を下三角部分と入れ替える方法を解説します。この操作は、いわゆる「行列の転置」と同じ処理であり、対角配列を入力として与えたとき、期待される結果は以下のようになります。具体的な手順は、以下のアルゴリズムにまとめられます。アルゴリズムステップ1:対角配列を入力する ステップ2:Swap()メソッドに渡す ステップ3:外側のループを3回まで繰り返す ステップ4:内側のループで j = i + 1 から3まで増加させる ステップ5:配列の値を一時変数tempに退避させる ステップ6:arr[i][j] = arr[j]
-
C++で対角行列・スカラー行列を判定するプログラムの書き方
行列 M[r][c] が与えられたとき、「r」は行数、「c」は列数を表し、r = c のとき正方行列となります。本記事では、与えられた正方行列が対角行列であるか、スカラー行列であるかを判定し、該当する場合には「yes」を出力する方法を解説します。 対角行列とは 正方行列 m[][] が対角行列であるのは、主対角線以外の要素がすべてゼロである場合、かつその場合に限ります。 下図のように、赤色で示された要素が主対角成分(非ゼロ)であり、それ以外の要素はすべてゼロになっているため、この行列は対角行列です。 入出力例 Input: m[3][3] = { {7, 0, 0}, {0, 8, 0}