Определите попадание произвольной точки в заштрихованную область - C (СИ)
Формулировка задачи:
определите попадание произвольной точки в заштрихованную область.
[ссылка удалена]
Я написал, но когда запускаю программу и ввожу числа то он ни как не реагирует, т.е ввожу допустим:
x=2
y=3 и он мне снова просит ввести "x", помогите найти ошибку
Листинг программы
- int _tmain(int argc, _TCHAR* argv[])
- {
- setlocale(LC_ALL, "Russian");
- setlocale(LC_ALL, "rus");
- double x, y;
- while (true)
- {
- cout << "x="; cin >> x;
- cout << "y="; cin >> y;
- if (x > -1.5 && x < 1.5 && y < 1 && y > -1)
- {
- if (sqrt(pow(y, 1.5) + pow(x, 1.5)) < 1 && (abs(y / x) > 0.5))
- cout << "Попал" << endl;
- else
- if (sqrt(pow(y, 1.5) + pow(x, 1.5)) > 1 && (abs(y / x) < 0.5))
- cout << "Попал" << endl;
- else
- cout << "Не попал" << endl;
- }
- }
- return 0;
- }
Решение задачи: «Определите попадание произвольной точки в заштрихованную область»
textual
Листинг программы
- if (x > -1.5 && x < 1.5 && y < 1 && y > -1)
- {
- if (sqrt(pow(y, 1.5) + pow(x, 1.5)) < 1 && (abs(y / x) > 0.5))
- cout << "Попал" << endl;
- }
- else
- {
- cout << "Не попал" << endl;
- }
Объяснение кода листинга программы
- В условии первого оператора if проверяется, попадает ли точка (x, y) в прямоугольник, ограниченный координатами (-1.5, 1.5) и (1.5, -1.5).
- Во втором условии проверяется, попадает ли точка (x, y) в область, заштрихованную с помощью функции sqrt(pow(y, 1.5) + pow(x, 1.5)), где 1.5 - это экспонента.
- Третье условие проверяет, попадает ли отношение y/x в интервал (0.5, 2), используя функцию abs(y/x) для получения абсолютного значения.
- Если все три условия выполняются, выводится сообщение
Попал
. - Если хотя бы одно из условий не выполняется, выводится сообщение
Не попал
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д