Задать вопрос
Vitalianskiy
@Vitalianskiy
Student

Задача на С про точки на координатной площади?

Даны действительные числа а, b, с, d, e, f, g. h. Известно, что точки (а, b) и (с, d) не лежащие на прямой, проходящей через точки (е, f) и (g.h). Прямая I разбивает координатную плоскость на две полуплоскости. Выяснить, принадлежат точки (а, b) и (С, d) одной и той же полуплоскости. Для решения этой задачи необходимо знать, что уравнение прямой, проходящей через две различные Точки (е, f) и (g.h). имеет вид:
(x-e)*(h-f)-(y-f)*(g-e)=0

Использовать только стандартные библиотеки, только С без С++

Если есть энтузиасты готовые решить задачу, пишите в ответы буду очень благодарен
Либо кто практичнее - пишите в телеграм vitalianskiy_79
  • Вопрос задан
  • 191 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
Vitalianskiy
@Vitalianskiy Автор вопроса
Student
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	float a,b,c,d,e,f,g,h,f1,f2;
	printf("a,b,c,d,e,f,g,h,\n");
	scanf("%f%f%f%f%f%f%f%f", &a,&b, &c, &d, &e, &f, &g, &h);
f1=(a-e)*(h-f)-(b-f)*(g-e);
      scanf ("(a-e)*(h-f)-(b-f)*(g-e)=%f", f1 );
	f2=(c-e)*(h-f)-(d-f)*(g-e);
    	 scanf("(c-e)*(h-f)-(d-f)*(g-e)=%f", f2 );

	
	if ((f1>0) && (f2>0)) 
	{printf("Yes");}
	  else if ((f1<0) && (f2<0))
	 {printf("Yes");}
	    else   
	    {printf("NO");}
	   

	return 0;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
wisgest
@wisgest
Не ИТ-специалист
Подставляешь координаты точек в левую часть уравнения прямой. Если получаются значения одного знака, то точки в одной полуплоскости, если разных, то в разных.
Ответ написан
Комментировать
CityCat4
@CityCat4 Куратор тега C
//COPY01 EXEC PGM=IEBGENER
Чувак, ты с "Фрилансим" не попутал ли?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы