Можете помочь решить задачу по программированию. - Компьютерные вопросы

Вопрос Можете помочь решить задачу по программированию.

Регистрация
18 Фев 2013
Сообщения
60
Репутация
-3
Спасибо
0
Монет
0
Нельзя использовать if else. Только через флаги, тру и фолс

291393254_9c837bce458f91236fcfd1c126a0f166_800.png

 

Jop

Capitan

Jop

Capitan
Регистрация
28 Дек 2013
Сообщения
96
Репутация
0
Спасибо
0
Монет
0
x >= -2 && x <=4 && y <= 0 && y >= -4 || x * x + y * y <= 16
может даже так... если уж совсем без if else

upd: x >= -2 && x <=4 && y <= 0 && y >= -4 || x * x + y * y <= 16 && x >= 0 && y >= 0
 
Регистрация
28 Ноя 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
С сектором окружности ничего не поделать, а вот проверку прямоугольника можно сделать иначе - если сдвинуть пересечение координатных осей в центр прямоугольника:

abs(y + 2) <= 2 && abs(x - 1) <= 3 || x >= 0 && y >= 0 && x * x + y * y <= 16
 
Регистрация
14 Окт 2013
Сообщения
97
Репутация
0
Спасибо
0
Монет
0
#include <iostream>
#include <cmath>
using namespace std;
double real(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
double radius(const double x, const double y) {
return sqrt(x * x + y * y);
}
int main() {
const auto x = real("x: ");
const auto y = real("y: ");
const auto m = (x >= 0 && y >= 0 && radius(x, y) <= 4)
|| (y <= 0 && y >= -4 && x >= -2 && x <= 4);
cout << boolalpha << m << '\n';
system("pause > nul");
}
 
Регистрация
10 Фев 2013
Сообщения
72
Репутация
0
Спасибо
0
Монет
0
double xx,yy;

cout << "Введите xy= "; cin >> xx; cin >> yy;

double R= xx*xx+yy*yy;

((xx>=0.0 && xx<=4.0 && yy>=0.0 && R<=16.0) || (yy<=0.0 && xx<=4.0 && xx>=-2.0)) ? cout << 1 : cout << 0;
 
Сверху Снизу