Advertisement
Caneq

lb1.5.8second

Oct 29th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.32 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6. /*
  7. Даны a, b, c, d, e, f, s, t, u – вещественные числа. Точки(a, b), (c, d), (e, f) не лежат на прямой l,
  8. заданной уравнением sx + ty + u = 0. Прямая l разбивает плоскость на две полуплоскости. Определить,
  9. принадлежит  ли треугольник с вершинами(a, b), (c, d), (e, f) одной полуплоскости.
  10. */
  11. int main() {
  12.     double a, b, c, d, e, f, s, t, u;
  13.     setlocale(LC_ALL, "rus");
  14.     cout << "Введите a, b, c, d, e, f, s, t, u" << endl;
  15.     cin >> a >> b >> c >> d >> e >> f >> s >> t >> u;
  16.     short errors = 0;
  17.     int funk = s*a + t*b + u;
  18.     bool checkPointAB, checkPointCD, checkPointEF;
  19.     if (funk > 0) checkPointAB = true;
  20.     else if (funk != 0) checkPointAB = false;
  21.     else {
  22.         cout << "Точка (" << a << "," << b << ") не удовлетворяет условию задачи, т.к она лежит на прямой " << s << "x + " << t << "y + " << u << "= 0" << endl;
  23.         errors++;
  24.     }
  25.     funk = s*c + t*d + u;
  26.     if (funk > 0) checkPointCD = true;
  27.     else if (funk != 0) checkPointCD = false;
  28.     else {
  29.         cout << "Точка (" << c << "," << d << ") не удовлетворяет условию задачи, т.к она лежит на прямой " << s << "x + " << t << "y + " << u << "= 0" << endl;
  30.         errors++;
  31.     }
  32.     funk = s*e + t*f + u;
  33.     if (funk > 0) checkPointEF = true;
  34.     else if (funk != 0) checkPointEF = false;
  35.     else {
  36.         cout << "Точка (" << e << "," << f << ") не удовлетворяет условию задачи, т.к она лежит на прямой " << s << "x + " << t << "y + " << u << "= 0" << endl;
  37.         errors++;
  38.     }
  39.     if(errors > 0) return 0;
  40.  
  41.     //если все вершины треугольника находятся в одной полуплоскости, то треугольник находится только в одной полуплоскости
  42.     if (checkPointAB == checkPointCD == checkPointEF) {
  43.         cout << "Треугольник находится в одной полуплоскости" << endl;
  44.         return 0;
  45.     }
  46.     else cout << "Треугольник находится в двух полуплоскостях" << endl;
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement