HinhTamGiac

/* Bài 15(lthdtbai15.cpp): Tính diện tích và chu vi hình tam giác có 3 cạnh a,b,c.
 Ba cạnh a,b,c có thể nhập vào từ bàn phím hoặc từ tệp văn bản. */
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <math.h>
using namespace std;
// Khai bao lop doi tuong tam giac
class HinhTG
{
private:
    float a, b, c;

public:
    void nhap();
    void docTep(const char *tenTep);
    float tinhDT();
    float tinhCV();
};
//===chuong trinh chinh===
int main()
{
    // Tao 1 doi tuong tam giac
    HinhTG tg;

    cout << "Chuong trinh tinh dien tich va chu vi tam giac co 3 canh a,b,    c\n\n";
    // tg.nhap();
    tg.docTep("tamgiac.txt");
    printf("Dien tich tam giac la: %0.1f", tg.tinhDT());
    printf("\nChu vi tam giac la: %0.1f", tg.tinhCV());

    cout << endl;
    return 0;
}
//===dinh nghia ham===
void HinhTG::nhap()
{
    do
    {
        cout << "Nhap vao 3 canh tam giac: ";
        cin >> a >> b >> c;

        if (a + b <= c || a + c <= b || b + c <= a)
            cout << "3 so da nhap khong phai 3 canh tam giac. Nhap lai!\n";
    } while (a + b <= c || a + c <= b || b + c <= a);
}

void HinhTG::docTep(const char *tenTep)
{
    // Tao doi tuong tep doc vao
    ifstream fin(tenTep);

    // Doc 3 canh tam giac tu tep
    fin >> a >> b >> c;

    if (a + b <= c || a + c <= b || b + c <= a)
    {
        printf("3 so tren tep %s khong phai 3 canh tam giac. Kiem tra la    i!\n", tenTep);
        a = b = c = 0;
    }
}

float HinhTG::tinhDT()
{
    if (a + b > c && a + c > b && b + c > a)
    {
        float p = (a + b + c) / 2;
        return sqrt(p * (p - a) * (p - b) * (p - c));
    }

    return 0;
}

float HinhTG::tinhCV()
{
    if (a + b > c && a + c > b && b + c > a)
        return a + b + c;

    return 0;
}

```

Last updated