Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ หาพื้นที่สามเหลี่ยมใหญ่ที่สุดที่ลงในหกเหลี่ยม


เพื่อหาพื้นที่สามเหลี่ยมที่ใหญ่ที่สุดที่ลงในหกเหลี่ยม ต้องเข้าใจรูปทรงทั้งสองและวิธีการลงกัน

  • สามเหลี่ยม (Triangle) — รูปปิด 3 ด้าน อาจเท่าหรือไม่เท่ากัน
  • หกเหลี่ยม (Hexagon) — รูปปิด 6 ด้าน อาจเท่าหรือไม่เท่ากัน

สามเหลี่ยมที่ลงในหกเหลี่ยมมีมุมทั้ง 3 จุดสัมผัสกับมุมของหกเหลี่ยม ดังนั้นด้านของสามเหลี่ยมจึงเป็นเส้นทแยงมุมของ หกเหลี่ยมปกติ (regular hexagon) ทำให้สามเหลี่ยมที่ใหญ่ที่สุดเป็นสามเหลี่ยมด้านเท่า

การหาสูตร:

อ้างอิงภาพ (สมมติสามเหลี่ยม AGB) ใช้ทฤษฎีบทพีทาโกรัส:

(a/2)² + (s/2)² = a²
a = ด้านของหกเหลี่ยมปกติ
s = ด้านของสามเหลี่ยมด้านเท่า

a²/4 + s²/4 = a²
3a²/4 = s²/4
3a² = s²
a√3 = s
พื้นที่ = (3√3 × a²) / 4

ตัวอย่าง: ด้านหกเหลี่ยม = 6 → พื้นที่สามเหลี่ยม = 46.7654

ตัวอย่างโค้ด

#include <iostream>
#include <math.h>
using namespace std;

int main() {
    float a = 6;
    if (a < 0)
        cout<<"Wrong Input!";
    float area = (3 * sqrt(3) * pow(a, 2)) / 4;
    cout << "The area of the triangle is " << area;
    return 0;
}

ผลลัพธ์

The area of the triangle is 46.7654