Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <cmath>
- using namespace std;
- /*
- Даны a, b, c, d, e, f, s, t, u – вещественные числа. Точки(a, b), (c, d), (e, f) не лежат на прямой l,
- заданной уравнением sx + ty + u = 0. Прямая l разбивает плоскость на две полуплоскости. Определить,
- принадлежит ли треугольник с вершинами(a, b), (c, d), (e, f) одной полуплоскости.
- */
- int main() {
- double a, b, c, d, e, f, s, t, u;
- setlocale(LC_ALL, "rus");
- cout << "Введите a, b, c, d, e, f, s, t, u" << endl;
- cin >> a >> b >> c >> d >> e >> f >> s >> t >> u;
- short errors = 0;
- int funk = s*a + t*b + u;
- bool checkPointAB, checkPointCD, checkPointEF;
- if (funk > 0) checkPointAB = true;
- else if (funk != 0) checkPointAB = false;
- else {
- cout << "Точка (" << a << "," << b << ") не удовлетворяет условию задачи, т.к она лежит на прямой " << s << "x + " << t << "y + " << u << "= 0" << endl;
- errors++;
- }
- funk = s*c + t*d + u;
- if (funk > 0) checkPointCD = true;
- else if (funk != 0) checkPointCD = false;
- else {
- cout << "Точка (" << c << "," << d << ") не удовлетворяет условию задачи, т.к она лежит на прямой " << s << "x + " << t << "y + " << u << "= 0" << endl;
- errors++;
- }
- funk = s*e + t*f + u;
- if (funk > 0) checkPointEF = true;
- else if (funk != 0) checkPointEF = false;
- else {
- cout << "Точка (" << e << "," << f << ") не удовлетворяет условию задачи, т.к она лежит на прямой " << s << "x + " << t << "y + " << u << "= 0" << endl;
- errors++;
- }
- if(errors > 0) return 0;
- //если все вершины треугольника находятся в одной полуплоскости, то треугольник находится только в одной полуплоскости
- if (checkPointAB == checkPointCD == checkPointEF) {
- cout << "Треугольник находится в одной полуплоскости" << endl;
- return 0;
- }
- else cout << "Треугольник находится в двух полуплоскостях" << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement