Advertisement
Guest User

Untitled

a guest
Sep 27th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.05 KB | None | 0 0
  1. #include<cmath>
  2. #include<iostream>
  3. #include <string>
  4. #include <iomanip>
  5.  
  6. using namespace std;
  7.  
  8. int main() {
  9.     setlocale(LC_ALL, "rus");
  10.  
  11.     float a, b, c, h, m;
  12.     float gipotenuz;
  13.     double epsilon = 0.0001;
  14.  
  15.  
  16.  
  17.     cout << "Введите A: ";
  18.     cin >> a;
  19.     cout << "Введите B: ";
  20.     cin >> b;
  21.     cout << "Введите С: ";
  22.     cin >> c;
  23.  
  24.     string type("Разносторонний, ");
  25.     string osnovanie;
  26.  
  27.     float p = ((a + b + c) / 2); //периметр
  28.     float s = sqrt(p*(p - a)*(p - b)*(p - c)); //площадь
  29.  
  30.  
  31.     if (((a + b) > c) && ((a + c) > b) && ((b + c) > a)) { //условие существования треугольника
  32.                                                                                             //определение вида треугольника
  33.         if ((a == b) && (a == c) && (b == c)) (type = "Равносторонний, ");
  34.         else
  35.             if ((a == b) ^ (a == c) ^ (b == c))  (type = "Равнобедренный, ");
  36.  
  37.         if (((a*a) + (b*b) == (c*c)) || ((a*a) + (c*c) == (b*b)) || ((c*c) + (b*b) == (a*a))) (type = "Прямоугольный, ");
  38.  
  39.  
  40.  
  41.         if (type == "Равносторонний, ") {    
  42.             h = ((sqrt(3) / 2) * a);
  43.             (cout << type << "Высота - " << h << "\n");
  44.         }
  45.         //done
  46.         if (type == "Равнобедренный, ") {
  47.  
  48.  
  49.             if (a == b) {
  50.                 if ((abs(2 * a * a - (c * c)) < epsilon)) (type = "Равнобедренный и прямоугольный, ");  //проверка условия "равнобедренный и прямоугольный
  51.                 h = (a * b) / c;
  52.                 cout << type << a << " и " << b << " - боковые стороны, " << c << " - основание, " << "высота - " << h << "\n";
  53.             }
  54.             if (a == c) {
  55.                 if ((abs(2 * a * a - (b * b)) < epsilon)) (type = "Равнобедренный и прямоугольный, ");
  56.                 h = (a * c) / b;
  57.                 cout << type << a << " и " << c << " - боковые стороны, " << b << " - основание, " << "высота - " << h << "\n";
  58.             }
  59.             if (b == c) {
  60.                 if ((abs(2 * b * b - (a * a)) < epsilon)) (type = "Равнобедренный и прямоугольный, ");
  61.                 h = (b * c) / a;
  62.                 cout << type << b << " и " << c << " - боковые стороны, " << a << " - основание, " << "высота - " << h << "\n";
  63.  
  64.             }
  65.  
  66.  
  67.  
  68.  
  69.         }
  70.         //done
  71.         if (type == "Прямоугольный, ") {
  72.             if ((a > b) && (a > c)) {  //нахождение гипотенузы
  73.                 gipotenuz = a;
  74.                 h = (2 / a * sqrt(p*(p - a)*(p - b)*(p - c))); //вычисление высоты треугольника
  75.                 m = (sqrt(2 * c*c + 2 * b*b - a*a) / 2); // вычисление медианы
  76.                 (cout << type << b << " и " << c << " катеты, " << "Гипотенуза - " << gipotenuz << ", высота - " << h << ", медиана " << m << "\n");
  77.             }
  78.             if ((b > a) && (b > c)) {
  79.                 gipotenuz = b;
  80.                 h = (2 / b * sqrt(p*(p - a)*(p - b)*(p - c)));
  81.                 m = (sqrt(2 * a*a + 2 * b*b - b*b) / 2);
  82.                 (cout << type << a << " и " << c << " катеты, " << "Гипотенуза - " << gipotenuz << ", высота - " << h << ", медиана " << m << "\n");
  83.             }
  84.             if ((c > a) && (c > b)) {
  85.                 gipotenuz = c;
  86.                 h = (2 / c * sqrt(p*(p - a)*(p - b)*(p - c)));
  87.                 m = (sqrt(2 * a*a + 2 * b*b - c*c) / 2);
  88.                 (cout << type << a << " и " << b << " катеты, " << "Гипотенуза - " << gipotenuz << ", высота - " << h << ", медиана " << m << "\n");
  89.             }
  90.  
  91.  
  92.  
  93.         }
  94.  
  95.  
  96.  
  97.  
  98.  
  99.         if (type == "Разносторонний, ") {
  100.             cout << type << "\n";
  101.         }
  102.  
  103.         float r1 = sqrt(((p - a) * (p - b) * (p - c)) / p); //вписанная окружность
  104.         float r2 = ((a * b * c) / (4 * sqrt(p * (p - a) * (p - b) * (p - c)))); //описанная окружность
  105.         cout << "Площадь равна: " << s << "\n";
  106.         cout << "Радиус вписанной окружности: " << r1 << endl;
  107.         cout << "Радиус описанной окружности: " << r2 << endl;
  108.     }
  109.     else cout << "Треугольник не существует.\n";  
  110.  
  111.  
  112.     system("pause");
  113.     return 0;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement