Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
paradox_1326
0 / 0 / 3
Регистрация: 17.12.2014
Сообщений: 111
1

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

11.01.2015, 15:30. Просмотров 490. Ответов 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
Ответы с готовыми решениями:

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

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

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

if геометрия (Переменной К присвоить номер четверти, в которой находится точка с коэффициентами x,y)
Переменной К присвоить номер четверти, в которой находится точка с...

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

2
Гоблин-инженер
113 / 110 / 65
Регистрация: 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 / 3
Регистрация: 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

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

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

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


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

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

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