Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
paradox_1326
0 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 111
#1

Определить номер четверти прямоугольника, в которую попала точка - C++

11.01.2015, 15:30. Просмотров 459. Ответов 2
Метки нет (Все метки)

Не могу разобраться с условием.
Буду благодарен запомощь.
Есть задача.
Ввести координаты точки (x, y) и координаты прямоугольника. Определить номер четверти прямоугольника, в которую попала эта точка. Считать, что верхняя и левая сторона четверти прямоугольника в нее входят, а правая и нижняя сторона нет.
Расположение четвертей см. на рисунке.
II I
III IV

Написал код врезультате получается так.
программа считает только 1-ю 2-ю четверть, или (если условие перепистать) только 3-ю 4-ю.
я в растеренности.((((
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <cmath>
using namespace std;
void main()
{
    double x1, x2, y1, y2, xt, yt, xv, yv, xp, yp, xn, yn, xl, yl, xc, yc;
    cout << "Koordinati pramougolnika : " << '\n';
    cout << "input Koordinati pramougolnika x1 = x3: ";
    cin >> x1;
    cout << "input Koordinati pramougolnika x2 = x4: ";
    cin >> x2;
    cout << "input Koordinati pramougolnika y1 = y2: ";
    cin >> y1;
    cout << "input Koordinati pramougolnika y3 = y4: ";
    cin >> y2;
    xv = (x1 + x2) / 2;
    yv = (y1 + y1) / 2;
    xp = (x2 + x2) / 2;
    yp = (y1 + y2) / 2;
    xn = (x1 + x2) / 2;
    yn = (y2 + y2) / 2;
    xl = (x1 + x1) / 2;
    yl = (y1 + y2) / 2;
    xc = (xl + xp) / 2;
    yc = (yv + yn) / 2;
 
    cout << "Koordinati Tochki : " << '\n';
    cout << "input x = : ";
    cin >> xt;
    cout << "input y = : ";
    cin >> yt;
 
    if (xt >= xv && xt <= x2 && yt >= yp && yt <= y1)
        cout << "Tochka v 1-oy chetverty pramougolnika " << '\n';
    else if (xt >= xl && xt <= xc && yt >= yl && yt <= y1)
        cout << "Tochka vo 2-oy chetverty pramougolnika " << '\n';
    else if (xt <= xn && xt > x1 || yt <= y2 && yt <= yl)
        cout << "Tochka vo 3-oy chetverty pramougolnika " << '\n';
    else if (xt >= xn && xt <= x2 || yt >= y2 && yt <= yc)
        cout << "Tochka vo 4-oy chetverty pramougolnika " << '\n';
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2015, 15:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Определить номер четверти прямоугольника, в которую попала точка (C++):

Определить номер координатной четверти, в которой находится данная точка - C++
Даны координаты точки, не лежащей на координатных осях OX и OY. Определить номер координатной четверти, в которой находится данная ...

Определить, попала ли произвольно заданная точка с координатами (х,у) в заштрихованную область - C++
Определить,попала ли произвольно заданная точка с координатами (х,у) в заштрихованную область. представить решение графически.маштабы...

if геометрия (Переменной К присвоить номер четверти, в которой находится точка с коэффициентами x,y) - C++
Переменной К присвоить номер четверти, в которой находится точка с коэффициентами x,y (х,у не равны нулю )

Вывести на экран номер четверти, которой принадлежит точка с заданными координатами - C++
СПС.... Где уменя ошибка тут??? помогите пож #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;iomanip&gt; ...

Ввести с клавиатуры координаты точки (x,y). Определить попала ли точка в заштрихованную область - C++
Язык С++

Ввести координаты точки на плоскости, и определить, попала ли эта точка в заштрихованную область - C++
Напишите программу, которая вводит координаты точки на плоскости и определяет, попала ли эта точка в заштрихованную область.

2
Гоблин-инженер
113 / 110 / 32
Регистрация: 18.09.2014
Сообщений: 337
11.01.2015, 16:27 #2
paradox_1326,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
using namespace std;
 
int main(int argc, const char * argv[]) {
    double x1, y1, x2, y2, x, y;
    cout << "Input point coordinates (x y):" << endl;
    cin >> x >> y;
    cout << "Input square top left coordinates (x y):" << endl;
    cin >> x1 >> y1;
    cout << "Input square bottom right coordinates (x y):" << endl;
    cin >> x2 >> y2;
    if (y > y1 || x < x1 || y <= y2 || x >= x2) cout << "Point not enter in square" << endl;
    else {
        double centerX = (x2-x1)/2.0+x1;
        double centerY = (y2-y1)/2.0+y1;
        if (x < centerX) {
            if (y > centerY) cout << "Top left" << endl;
            else cout << "Bottom left" << endl;
        } else {
            if (y > centerY) cout << "Top right" << endl;
            else cout << "Bottom right" << endl;
        }
    }
    return 0;
}
1
paradox_1326
0 / 0 / 0
Регистрация: 17.12.2014
Сообщений: 111
13.01.2015, 10:34  [ТС] #3
Окончательный вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <cmath>
using namespace std;
void main()
{
    double x1, x2, y1, y2, x, y, centerX, centerY;
    cout << "Koordinati pramougolnika : " << '\n';
    cout << "input Koordinati pramougolnika x1 = : ";
    cin >> x1;
    cout << "input Koordinati pramougolnika x2 = : ";
    cin >> x2;
    cout << "input Koordinati pramougolnika y1 = : ";
    cin >> y1;
    cout << "input Koordinati pramougolnika y2 = : ";
    cin >> y2;
    cout << "Koordinati Tochki : " << '\n';
    cout << "input x = : ";
    cin >> x;
    cout << "input y = : ";
    cin >> y;
        centerX = ((x2 - x1) / 2.0 + x1);
                            centerY = ((y2 - y1) / 2.0 + y1);
        if (x<x1||y<y1||x>x2||y>y2)
            cout << "Tochka ne popadaet v granici pramougolnika" << '\n';
        else
            cout << "Tochka popadaet v granici pramougolnika" << '\n';
        if (x < centerX && y > centerY && x > x1 && y<y2)
        cout << "Tochka vo 2-oy chetverty pramougolnika " << '\n';
        else if (x < centerX && y < centerY && x > x1 && y>y1)
        cout << "Tochka v 3-oy chetverty pramougolnika " << '\n';
        else if (x > centerX && y > centerY && x <x2 && y<y2)
        cout << "Tochka v 1-oy chetverty pramougolnika " << '\n';
        else if (x > centerX && y < centerY && x <x2 && y>y1)
        cout << "Tochka v 4-oy chetverty pramougolnika " << '\n';
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2015, 10:34
Привет! Вот еще темы с ответами:

Определить номер координатной четверти. - C++
Даны координаты точки, не лежащей на координатных осях OX и OY. Определить номер координатной четверти, в которой находится данная точка.

Определить в каком секторе прямоугольника расположена точка - C++
Приветствую всех, помогите решить задачу, с оператором - if !!! Пользователь вводит высоту и ширину одно прямоугольника, а так же...

Определить лежит ли точка внутри заданного прямоугольника - C++
Даны стороны прямоугольника a и b, Составить программу, определяющую лежит ли точка с координатами (x, y) внутри прямоугольника.

Определить, попадает ли точка с вводимыми координатами (x,y) внутрь прямоугольника, заданного уравнениями - C++
Здравствуйте. Помогите пожалуйста написать задачи. 3)Определить, попадает ли точка с вводимыми координатами (x,y) внутрь...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru