Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

геометрическая программа (С++)

40K
19 сентября 2010 года
mego4el
30 / / 19.09.2010
Добрый день ув. форумчане от студентов первого курса. Недавно преподаватель дал задание по программированию, но его толком никто не понял, когда начинаются первые прояснения, то это выходит в неправильную запись кода программы, и в целом ничего не получается(. Пожалуйста, нужно развязать задание, и написать правильный код программы на С++, используя Microsoft Visual C++ 6.0. Просто очень трудно писать программу после двух лекций программирования, и изучения его основ, многое не понятно(((.

Условие:

Дано действительные числа a, b, c, d, e, f, g, h. Известно, что точки (e, f) и (g, h) - разные. Так же известно что точки (e, f) и (g, h) не лежат на прямой 1, которая задана уравнением y=ax+b. Прямая 1 разбивает координатную плоскость на две полуплоскости. Определить: принадлежат ли точки (e, f) и (g, h) разным полуплоскостям.
2.1K
19 сентября 2010 года
Norgat
452 / / 12.08.2009
элементарно же...

делаете функцию с сигнатурой:

 
Код:
float func_y(float a, float b, float x);


которая будет вам вычислять значение y(x)=ax+b.
это ваша прямая.

ну а чтобы опр. принадлежат ли точки разным полуплоскостям надо использовать условие(школьная геометрия):

 
Код:
if(((f > func_y(a,b,e)) && (h > func_y(a,b,g)) || ((f < func_y(a,b,e)) && (h < func_y(a,b,g)))
{
     // лежат на одной полуплоскости
}
else
{
     // лежат на разных полуплоскостях
}


т.е. просто проверяем если (e, f) и (g, h) одновременно выше прямой 1 или ниже прямой 1,
то они лежат на одной полуплоскости, иначе - на разных.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог