task1.cpp 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. #include <cmath>
  2. #include <cstdlib>
  3. #include <iostream>
  4. #include <algorithm>
  5. #include <string>
  6. auto xuo3(double xa, double ya, double xb, double yb, double xc, double yc)
  7. {
  8. auto dis = [](double x1, double y1, double x2, double y2) { return std::sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));};
  9. double AB = dis(xa, ya, xb, yb);
  10. double BC = dis(xb, yb, xc, yc);
  11. double CA = dis(xc, yc, xa, ya);
  12. double sides[3] = {AB, BC, CA};
  13. std::sort(sides, sides + 3);
  14. double a = sides[0];
  15. double b = sides[1];
  16. double c = sides[2];
  17. if (a * a + b * b == c * c) {
  18. return "Прямоугольный треугольник";
  19. } else if (a * a + b * b < c * c) {
  20. return "Тупоугольный треугольник";
  21. } else {
  22. return "Остроугольный треугольник";
  23. }
  24. }
  25. void xuo2( int x1, int x2, int x3)
  26. {
  27. int Pethagor = x1^2 + x2^2;
  28. if (Pethagor == (x3^2))
  29. {
  30. std::cout << "Прямоугольный треугольник";
  31. }
  32. else if (Pethagor < x3^2)
  33. {
  34. std::cout << "Тупоугольный треугольник";
  35. } else {
  36. std::cout << "Остроугольный треугольник";
  37. }
  38. }
  39. void xuo(double x1, double x2, double x3)
  40. {
  41. if (x1 == x2 == x3)
  42. {
  43. std::cout << "Равносторонний треугольник";
  44. }
  45. else if (x1 == x2 || x1 == x3 || x2 == x3)
  46. {
  47. std::cout << "Равнобедренный треугольник";
  48. }
  49. else if (x1 != x2 && x1 != x3 && x2 == x3)
  50. {
  51. std::cout << "Разносторонний треугольни";
  52. }
  53. else {
  54. std::cout << "никакой";
  55. }
  56. }
  57. bool xuo4(int x1, int x2, int x3)
  58. {
  59. if (x1 <= 0 || x2 <= 0 || x3 <= 0)
  60. {
  61. return false;
  62. }
  63. return (x1 +x2 > x3) || (x1 +x3 > x2) || (x2+x3 > x1);
  64. }
  65. bool xuo6(int a, int b, int c, int r, int s) {
  66. // Проверяем все возможные грани кирпича
  67. return (
  68. (a <= r && b <= s) || (a <= s && b <= r) || // Грань a x b
  69. (a <= r && c <= s) || (a <= s && c <= r) || // Грань a x c
  70. (b <= r && c <= s) || (b <= s && c <= r) // Грань b x c
  71. );
  72. }
  73. bool xuo7(int r, int p, int q) {
  74. int diameter = 2 * r;
  75. return diameter <= std::min(p, q);
  76. }
  77. int main()
  78. {
  79. int ui;
  80. double a,b,c;
  81. std::cout << "Введите стороны треугольника\n";
  82. std::cin >> a >> b >> c;
  83. std::cout << "Выберите режим (task1: 1 task2 :2 task3: 3 task4: 4 task6: 5 task7: 6 \n";
  84. std::cin >> ui;
  85. switch (ui) {
  86. case 1:
  87. xuo(a, b, c);
  88. break;
  89. case 2:
  90. xuo2(a, b, c);
  91. break;
  92. case 3:{
  93. double xa, ya, xb, yb, xc, yc;
  94. std::cout << "Введите координаты вершин треугольника (A, B, C):\n";
  95. std::cout << "A(xa, ya): \n";
  96. std::cin >> xa >> ya;
  97. std::cout << "B(xb, yb): \n";
  98. std::cin >> xb >> yb;
  99. std::cout << "C(xc, yc): \n";
  100. std::cin >> xc >> yc;
  101. std::string result = xuo3(xa, ya, xb, yb, xc, yc);
  102. std::cout << result << "\n";
  103. break;
  104. }
  105. case 4:{
  106. auto x = xuo4(a,b,c);
  107. if (x)
  108. {
  109. std::cout << "Является Трегольником";
  110. }
  111. else {
  112. std::cout << "Не является";
  113. }
  114. break;
  115. }
  116. case 5:{
  117. int a, b, c, r, s;
  118. std::cout << "Введите размеры кирпича (a, b, c): ";
  119. std::cin >> a >> b >> c;
  120. std::cout << "Введите размеры отверстия (r, s): ";
  121. std::cin >> r >> s;
  122. if (xuo6(a, b, c, r, s))
  123. {
  124. std::cout << "Кирпич пройдет через отверстие." << std::endl;
  125. } else
  126. {
  127. std::cout << "Кирпич не пройдет через отверстие." << std::endl;
  128. }
  129. case 6:
  130. int r1, p, q;
  131. std::cout << "Введите радиус шара (r): ";
  132. std::cin >> r1;
  133. std::cout << "Введите диагонали ромба (p, q): ";
  134. std::cin >> p >> q;
  135. if (xuo7(r1, p, q)) {
  136. std::cout << "Шар пройдет через ромбообразное отверстие." << std::endl;
  137. } else {
  138. std::cout << "Шар не пройдет через ромбообразное отверстие." << std::endl;
  139. }
  140. }
  141. }
  142. }