| Код | #include <cstdlib> #include <iostream> #include <cmath>
using namespace std;
float CalcArea(float x, float y, float z); // Функция для расчета площади bool ExistRectangle(float x, float y, float z); // Определение сущепствования треугольника
int main(int argc, char *argv[]) { setlocale(0,""); // Включаем кириллицу float a, b, c, d; // Заданные параметры (отрезки) int i = 0; // Счетчик cout << "Введите параметр a: "; cin >> a; cout << endl << "Введите параметр b: "; cin >> b; cout << endl << "Введите параметр c: "; cin >> c; cout << endl << "Введите параметр d: "; cin >> d; /*Из четырех отрезков можно получить 4 комбинации для треугольника, исходя из базовых знаний комбинаторики (число сочетаний из 4 по 3). Эти сочетания: a, b, c a, b, d a, d, c b, d, c. Перестановка в данном случае не играет роли (на нахождение пложащи никак не влияет). */ // Алгоритм поиска возможных вариантов: cout << endl << "Возможные вариаенты треугольников:" << endl << endl; if(ExistRectangle(a, b, c)) cout << "Вариант №" << ++i << ": a(" << a << "), b(" << b << "), c(" << c << ");" << endl << "Площадь: " << CalcArea(a, b, c) << endl << endl; if(ExistRectangle(a, b, d)) cout << "Вариант №" << ++i << ": a(" << a << "), b(" << b << "), d(" << d << ");" << endl << "Площадь: " << CalcArea(a, b, d) << endl << endl; if(ExistRectangle(a, d, c)) cout << "Вариант №" << ++i << ": a(" << a << "), d(" << d << "), c(" << c << ");" << endl << "Площадь: " << CalcArea(a, d, c) << endl << endl; if(ExistRectangle(b, d, c)) cout << "Вариант №" << ++i << ": b(" << b << "), d(" << d << "), c(" << c << ");" << endl << "Площадь: " << CalcArea(b, d, c) << endl << endl; if(i == 0) cout << "Из данных параметров невозможно составить треугольник!" << endl << endl;
system("pause"); return 0; }
bool ExistRectangle(float x, float y, float z) { // Условие существование треугольника - сумма любых двух сторо больше третьей. if((x + y > z) && (z + x > y) && (y + z > x)) return true; else return false; }
float CalcArea(float x, float y, float z) // Расчет площади - по формуле Герона { float p = (x + y + z)/2; float S = sqrt(p*(p-x)*(p-y)*(p-z)); return S; }
|
|