Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- using namespace std;
- int main()
- {
- float x1, y1, x2, y2, x3, y3, a, b, c, xf1, yf1, xf2, yf2, xf3, yf3, kf1, kf2, kf3, KOEF;
- cout << "x1="; cin >> x1;
- cout << "y1="; cin >> y1;
- cout << "x2="; cin >> x2;
- cout << "y2="; cin >> y2;
- cout << "x3="; cin >> x3;
- cout << "y3="; cin >> y3;
- cout << "a="; cin >> a;
- cout << "b="; cin >> b;
- cout << "c="; cin >> c;
- //По формулам координат середины отрезка находим x и y середин отрезков, на которые опускаются медианы (подробнее - http://www.treugolniki.ru/koordinaty-serediny-otrezka-formula/)
- xf1 = (x2 + x3) / 2;
- xf2 = (x1 + x3) / 2;
- xf3 = (x1 + x2) / 2;
- yf1 = (y2 + y3) / 2;
- yf2 = (y1 + y3) / 2;
- yf3 = (y1 + y2) / 2;
- //далее находим коэффициент наклона прямых, на которых лежат медианы, перед этим проверив правильность координат
- //проверка 1
- if (y1 > yf1)
- {
- if (x1 > xf1)
- {
- kf1 = (y1 - yf1) / (x1 - xf1);
- }
- else
- {
- kf1 = (y1 - yf1) / (xf1 - x1);
- }
- }
- else
- {
- if (x1 > xf1)
- {
- kf1 = (yf1 - y1) / (x1 - xf1);
- }
- else
- {
- kf1 = (yf1 - y1) / (xf1 - x1);
- }
- }
- //проверка 2
- if (y2 > yf2)
- {
- if (x2 > xf2)
- {
- kf2 = (y2 - yf2) / (x2 - xf2);
- }
- else
- {
- kf2 = (y2 - yf2) / (xf2 - x2);
- }
- }
- else
- {
- if (x2 > xf2)
- {
- kf2 = (yf2 - y2) / (x2 - xf2);
- }
- else
- {
- kf2 = (yf2 - y2) / (xf2 - x2);
- }
- }
- //проверка 3
- if (y3 > yf3)
- {
- if (x3 > xf3)
- {
- kf3 = (y3 - yf3) / (x3 - xf3);
- }
- else
- {
- kf3 = (y3 - yf3) / (xf3 - x3);
- }
- }
- else
- {
- if (x3 > xf3)
- {
- kf3 = (yf3 - y3) / (x3 - xf3);
- }
- else
- {
- kf3 = (yf3 - y3) / (xf3 - x3);
- }
- }
- //kf1 = (y1 - yf1) / (x1 - xf1);
- //kf2 = (y2 - yf2) / (x2 - xf2);
- //kf3 = (y3 - yf3) / (x3 - xf3);
- //выводим получившиеся значения просто для наглядности
- cout << "kf1=" << kf1<<"\n";
- cout << "kf2=" << kf2<<"\n";
- cout << "kf3=" << kf3 <<"\n";
- //поскольку коэффициент наклона прямой в уравнении вида y=kx+b — это k, то нужно привести ax+by+c=0 к виду y=-(a/b)*x-c/b, -(a/b) — это и есть искомое k
- KOEF = -(a / b);
- //точно так же для наглядности выведем коэффициент наклона заданной прямой
- cout << "KOEF=" << KOEF<<"\n";
- //сравниваем, совпадают ли коэффициенты наклона медиан с коэффициентом наклона заданной прямой
- if (KOEF == kf1 || KOEF == kf2 || KOEF == kf3)
- {
- cout << "Заданная прямая параллельна одной из медиан треугольника\n";
- }
- else
- {
- cout << "Прямая не параллельна ни одной из медиан треугольника\n";
- }
- }
Add Comment
Please, Sign In to add comment