Форум программистов, компьютерный форум CyberForum.ru

Принадлежность точки заштрихованной области - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.84
hotkep
 Аватар для hotkep
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 21
23.02.2012, 00:20     Принадлежность точки заштрихованной области #1
создать программу, которая проверяет принадлежность точки заштрихованной области. помогите кому не трудно.
[IMG]http://s018.***********/i512/1202/d5/82b2190b05ec.png[/IMG]
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikola-BLR
42 / 42 / 3
Регистрация: 27.12.2011
Сообщений: 54
23.02.2012, 01:56     Принадлежность точки заштрихованной области #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Чёрный 4-х угольник ограничен 4-мя прямыми.
Запишем их уравнения.
Левая грань: у=-3х+6 . Чтобы точка попадала в нашу фигуру, она должна лежать правее левой грани, т.е. должно выполняться условие: у+3х>=6
Нижняя грань: у=-0.4х+3.4 . Чтобы точка попадала в нашу фигуру, она должна лежать выше нижней грани, т.е. должно выполняться условие: у+0.4х>=3.4
Правая грань: у=6х-35 . Чтобы точка попадала в нашу фигуру, она должна лежать левее правой грани, т.е. должно выполняться условие: у-6х>=-35
Верхняя грань: у=х/7+6 . Чтобы точка попадала в нашу фигуру, она должна лежать ниже верхней грани, т.е. должно выполняться условие: у-х/7<=6
Уравнение окружности: (х-3.5)^2 + (y-2.5)^2 = 1.5^2 . Чтобы точка не попадала в неё, она должна лежать снаружи окружности, т.е. должно выполняться условие: (х-3.5)(х-3.5)+(у-2.5)(у-2.5)>=2.25
В итоге имеем:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"rus");//чтобы русский алфавит не выводился в консоль кракозябрами
    float x, y;
    cout << "Введите X: "; cin >> x;
    cout << "Введите Y: "; cin >> y;
 
    if ((y+3*x)>=6 and//левая грань
        (y+0.4*x)>=3.4 and//нижняя грань
        (y-6*x)>=-35 and//правая грань
        (y-x/7)<=6 and//верхняя грань
        ((x-3.5)*(x-3.5) + (y-2.5)*(y-2.5))>=2.25)//окружность
        cout << "Точка принадлежит заданной области.";
        else cout << "Точка не принадлежит заданной области.";
    return 0;
}
hotkep
 Аватар для hotkep
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 21
23.02.2012, 02:09  [ТС]     Принадлежность точки заштрихованной области #3
Благодарю Вас!

Добавлено через 9 минут
Только у меня много ошибок. Компилятор маты гнет)
что-то исправил. но не помогает.
Принадлежность точки заштрихованной области
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
23.02.2012, 02:43     Принадлежность точки заштрихованной области #4
Mikola-BLR, Переделал ваш код! В С++ нет and!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"rus");//чтобы русский алфавит не выводился в консоль кракозябрами
    float x, y;
    cout << "Введите X: "; cin >> x;
    cout << "Введите Y: "; cin >> y;
 
    if ((y+3*x)>=6 &&//левая грань
        (y+0.4*x)>=3.4 &&//нижняя грань
        (y-6*x)>=-35 &&//правая грань
        (y-x/7)<=6 &&//верхняя грань
        ((x-3.5)*(x-3.5) + (y-2.5)*(y-2.5))>=2.25)//окружность
        cout << "Точка принадлежит заданной области.";
        else cout << "Точка не принадлежит заданной области.";
        system("pause >> null");
    return 0;
}
hotkep
 Аватар для hotkep
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 21
23.02.2012, 03:29  [ТС]     Принадлежность точки заштрихованной области #5
Спасибо!
gustav21
20 / 20 / 2
Регистрация: 23.10.2009
Сообщений: 139
24.02.2012, 07:38     Принадлежность точки заштрихованной области #6
Если это задание в институте, то с помощью уравнений, наверное, правильнее будет, а вообще можно с помощью полигонов сделать, будет меньше кода
hotkep
 Аватар для hotkep
0 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 21
24.02.2012, 13:57  [ТС]     Принадлежность точки заштрихованной области #7
а код больше будет?
Mikola-BLR
42 / 42 / 3
Регистрация: 27.12.2011
Сообщений: 54
25.02.2012, 02:27     Принадлежность точки заштрихованной области #8
В С++ нет and!
Странно. В Code::Blocks компилировал вышеприведенный мной файл в формате .cpp с использованием оператора and, всё работало.
Проверил и в Bloodshed Dev-C++ - работают операторы and и or наравне с && и ||
Хотя, соглашусь, использовать их некошерно, т.к. в стандартах они не описаны. Везде приведены && и ||. Да и сам их обычно использую.
Ещё ради интереса в Вижуал Студии 2010 можно проверить, но пока руки не доходят установить (ибо последний раз, помню, сие действо заняло много времени).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2012, 05:08     Принадлежность точки заштрихованной области
Еще ссылки по теме:

C++ Проверить принадлежность точки области
C++ Определить принадлежность точки заштрихованной области
Принадлежность точки с заданными координатами заштрихованной области C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
thick_int
Заблокирован
25.02.2012, 05:08     Принадлежность точки заштрихованной области #9
В Visual Studio 2010 эта фича работает.
Надо только добавить вот такую директиву
C++
1
#include <iso646.h>
Yandex
Объявления
25.02.2012, 05:08     Принадлежность точки заштрихованной области
Ответ Создать тему
Опции темы

Текущее время: 04:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru