
C/C++
Решение задач с использованием базовых алгоритмов.
Составить программу на C++, которая выдает одно из сообщений «Да», «Нет», «На границе» в зависимости от того, лежит ли точка внутри заштрихованной области, не заштрихованной области или на её границе. Области задаются графически следующим образом.

Чуток порезвился. :)
#include
#include
template
int check_into_area(const T x, const T y, BorderConditions... borders)
{
/*
Проверяет нахождение точки с координатами x, y
внутри области, задаваемой условиями границ.
Условия границ должны быть вызываемыми
объектами с сигнатурой int(Type, Type).
Возвращаемое значение вызова объекта интерпретируется так:
0 - точка находится вне границы
Возвращаемое значение:
-1, если точка находится внутри области
0, если точка находится на границе области
1, если точка находится вне области
*/
int res = -1;
for( auto& bordercheck : { std::function(borders)... } ) {
int check_on_border = bordercheck(x, y);
if(check_on_border > 0) return 1;
res = std::max(res, check_on_border);
}
return res;
}
template
int sgn(const T value, const U border = U(0))
{
return (border < value) ? 1 : (value < border) ? -1 : 0;
}
// Пример использования функции
#include
#include
int main()
{
float x, y;
std::cin >> x >> y;
std::cout int{ return sgn(x); },
[](auto x, auto y)->int{ return sgn(9, x*x + y*y); },
[](auto x, auto y)->int{ return sgn(x*x + y*y, 64); }
) + 1 ];
return 0;
}
double x, y;
cin >> x >> y;
double t = x * x + y * y;
cout 9 && t < 64 ? "Да" : x > 0 || t < 9 || t > 64 ? "Нет" : "На границе");
Раян Файзуллин
Спасибо!
Похожие вопросы
- Помогите с решением задачи на языке СИ
- Основы программирования. Решение задач. Обработка структур. Программа.
- Тренажеры по решению задач С++.
- Решите задачу на языке С++. Алгоритм проверки числа на простоту (переборный)
- Можете пожалуйста решить ещё задачу на с++. Письменно алгоритмом или код на с++.
- Решение задач по с++
- Помогите с решением задачи в С++.
- Помогите с решением задачи С++
- Visual Studio. Решение задач
- Решение задачи на языке С++
Посмотрит новичок на такой вариант решения и побежит сначала в "Красное и Белое", чтобы утихомирить ? разбушевавшиеся эмоции ?, а потом в соседнюю ветку, где вопросы про Python ?