C++ программирование помогите

0 голосов
26 просмотров

C++ программирование помогите


image

Информатика (15 баллов) | 26 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

#include
#include
using namespace std;

int main()
{
double x,y;
cin>>x>>y;
if((y>expf(x))&(((x-1)*(x-1)+y*y)<=4)) cout<<"True";<br> else if ((y else cout<<"False";<br>}



(5.2k баллов)
0

Какая ошибка?

0

Написал код по новой:

0

#include
#include
using namespace std;

/*
* возращает минимально значение Y.
* Находится на пересечении меньшего круга и кривой
*/
//-----------------------------------------------------------------------------
bool isPointInTheCircle(const double& x, const double& y,
const double& xOffset, const double& yOffset,
const double& circleRadius)
//-----------------------------------------------------------------------------

0

{
/* Передаем аргументы по константной ссылке,
* что бы предотвратить их копирование при передаче
* и модификацию их значения внутри функции.
* Offset это смещение по горизонтали и вертекали,
* то есть в уровнении ниже это a и b.
* Уровнение круга: (x-a)^2 + (y-b)^2 = R^2

0

* Что бы определить, внутри ли окружности точка,
* нужно просто заменить знак равенства на знак меньше.
* Не будем тянуть "бороду" кода
* и напишем булевское значение сразу в return
*/
return (pow((x-xOffset), 2)+pow(y-yOffset,2) < pow(circleRadius, 2));
}

0

//-----------------------------------------------------------------------------
bool isPointUpperThenCurve(const double& x, const double& y)
//-----------------------------------------------------------------------------
{
/* Тут все вообще просто, всё что нужно,
* это забить формулу, и знак равенства заменить на знак меньше.
* M_E - это константа експоненты из библиотеки .
*/
return (y > pow(M_E, x));
}

0

const double bottomCircleOffsetByX = 1;
const double bottomCircleOffsetByY = 0;
const double bottomCircleRadius = 2;

const double upperCircleOffsetByX = 0;
const double upperCircleOffsetByY = 3;
const double upperCircleRadius = 2;

0

int main()
{
double xPos;
double yPos;

while (true)
{
cout << "Enter X pos: ";<br> cin >> xPos;

cout << "Enter Y pos: ";<br> cin >> yPos;

0

/* Если посмотреть на риссунок, у нас две области:
* 1. Нижний круг и область выше кривой.
* 2. Верхний круг и область ниже кривой.
* Ну и нас интересует точка попадающая в обе,
* для этого составим два условия,
* причем одновременно они быть равны не могут.
* Либо точка попадает в область первого, либо второго.
* Играйся, вот тебе некоторые входные данные:
* Точки что входят:
* 1.3; 2.8
* 1; 1.6
* 0.3; 1.6
* -0.3; 1.3
* -0.7; 0.8
*/

0

bool isPointInFirstArea = isPointInTheCircle(xPos, yPos,
bottomCircleOffsetByX,
bottomCircleOffsetByY,
bottomCircleRadius)
&& isPointUpperThenCurve(xPos, yPos);

bool isPointInSecondArea = isPointInTheCircle(xPos, yPos,
upperCircleOffsetByX,
upperCircleOffsetByY,
upperCircleRadius)
&& !isPointUpperThenCurve(xPos, yPos);

bool isPointInArea = isPointInFirstArea || isPointInSecondArea;

cout << "Point in current area: ";<br> cout << isPointInArea << endl;<br>
}
return 0;
}