Форум программистов, компьютерный форум CyberForum.ru

Условный оператор - C++

Восстановить пароль Регистрация
 
Lampas
0 / 0 / 0
Регистрация: 01.07.2016
Сообщений: 9
01.07.2016, 17:39     Условный оператор #1
Добрый день,нужна помощь в написании кода по заданию.
Составить систему неравенств на основании графической схемы:

Пока что получилось это:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include "math.h"
#include <iostream>
using namespace std;
int _tmain()
{
 float x, y;
cout << "Vvedite X,Y\n";
cin >> x >> y;
if ((y >= -2 && y <= 3 && fabs(x)<3) || 
{
cout << "\nPopadaet\n";
}
else
{
cout << "\nNe popadaet\n";
}
system("pause");
return 0;
};
Проблема в том, что не могу составить правильное уравнение для эллипса.
Миниатюры
Условный оператор  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2016, 17:39     Условный оператор
Посмотрите здесь:

C++ Условный оператор if
условный оператор IF C++
C++ C (условный оператор)
Условный оператор. C++
C++ Условный оператор
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
avgoor
562 / 352 / 83
Регистрация: 05.12.2015
Сообщений: 1,137
01.07.2016, 18:01     Условный оператор #2
Цитата Сообщение от Lampas Посмотреть сообщение
Проблема в том, что не могу составить правильное уравнение для эллипса.
http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{{(x-{x}_{0})}^{2}}{{a}^{2}}+\frac{{(y-{y}_{0})}^{2}}{{b}^{2}}\leq 1
где x0, y0 - координаты центра, a и b - соответствующие полуоси.
Lampas
0 / 0 / 0
Регистрация: 01.07.2016
Сообщений: 9
03.07.2016, 14:06  [ТС]     Условный оператор #3
Насколько я понял,введенные координаты не должны попадать в заштрихованную область

Добавлено через 29 минут
if ((y >= -2.5 && y >= 3 && x>= -2.5 && x<= 3) || (((x)*(x)/16)+(y)*(y)/9) <=1 && y<=-1.5)
и если можно подредактируйте уравнение, мне уже кажется что и с треугольником косяк
Armatus
 Аватар для Armatus
50 / 50 / 28
Регистрация: 24.03.2016
Сообщений: 360
Завершенные тесты: 4
03.07.2016, 14:21     Условный оператор #4
У меня похожая задача, кто шарит объясните что такое е? И как все это дело считать
Миниатюры
Условный оператор  
avgoor
562 / 352 / 83
Регистрация: 05.12.2015
Сообщений: 1,137
03.07.2016, 14:48     Условный оператор #5
Цитата Сообщение от Armatus Посмотреть сообщение
кто шарит объясните что такое е
Ну это вообще за гранью. e - основание натурального логарифма https://ru.wikipedia.org/wiki/E_(%D1...81%D0%BB%D0%BE)
Armatus
 Аватар для Armatus
50 / 50 / 28
Регистрация: 24.03.2016
Сообщений: 360
Завершенные тесты: 4
03.07.2016, 15:03     Условный оператор #6
avgoor, получается это вся задача?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
 
using namespace std;
int main()
{
    setlocale(0, "");
    const float e = 2.71828;
    float x, y;
    cout << "Введите координату х: ";
    cin >> x;
    cout << "Введите координату у: ";
    cin >> y;
    if (y<pow(e, x) && y > pow(x, 2))
        cout << "Точка лежит в заштрихованой части плоскости" << endl;
    else
        cout << "Точка НЕ лежит в заштрихованой части плоскости" << endl;
    return 0;
}
Lampas
0 / 0 / 0
Регистрация: 01.07.2016
Сообщений: 9
03.07.2016, 15:08  [ТС]     Условный оператор #7
мне сможет кто-то подсказать?
Armatus
 Аватар для Armatus
50 / 50 / 28
Регистрация: 24.03.2016
Сообщений: 360
Завершенные тесты: 4
03.07.2016, 15:18     Условный оператор #8
Lampas, кидайте свой код полностью
Lampas
0 / 0 / 0
Регистрация: 01.07.2016
Сообщений: 9
03.07.2016, 15:21  [ТС]     Условный оператор #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include "math.h"
#include <iostream>
using namespace std;
int _tmain()
{
 float x, y;
cout << "Vvedite X,Y\n";
cin >> x >> y;
if ((5*x-3*y+9>=0 && 5*x+3*y-9<=0 && y+2>=0) || // Треугольник
    (((x)*(x)/16)+(y)*(y)/9) <=1 && y>=-2) // Эллипс
{
cout << "\nPopadaet\n";
}
// Точка с координатами (х,у) попадает в заштрихованную область
else
{
cout << "\nNe popadaet\n";
}
// Точка не попадает в заштрихованную область
system("pause");
return 0;
};
Вот что получилось, ошибка в том, что точка попадает в не заштрихованную область(треугольник)
Armatus
 Аватар для Armatus
50 / 50 / 28
Регистрация: 24.03.2016
Сообщений: 360
Завершенные тесты: 4
03.07.2016, 15:33     Условный оператор #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Lampas, Вот накидал, проверьте.

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
#include <iostream>
#include "stdafx.h"
#include "math.h"
using namespace std;
int _tmain()
{
    setlocale(0, "");
    /*Реализация - считаются произведения (1, 2, 3 - вершины треугольника, 0 - точка):
    (x1 - x0) * (y2 - y1) - (x2 - x1) * (y1 - y0)
    (x2 - x0) * (y3 - y2) - (x3 - x2) * (y2 - y0)
    (x3 - x0) * (y1 - y3) - (x1 - x3) * (y3 - y0)*/
 
    float x, y;
    cout << "Введите точку х:";
    cin >> x;
    cout << "Введите точку y:";
    cin >> y;
 
    float t1_x1 = 0, t1_y1 = 3, t1_x2 = -2.5, t1_y2 = -1.5, t1_x3 = 3, t1_y3 = -1.5;
    float a = (t1_x1 - x) * (t1_y2 - t1_y1) - (t1_x2 - t1_x1) * (t1_y1 - y);
    float b = (t1_x2 - x) * (t1_y3 - t1_y2) - (t1_x3 - t1_x2) * (t1_y2 - y);
    float c = (t1_x3 - x) * (t1_y1 - t1_y3) - (t1_x1 - t1_x3) * (t1_y3 - y);
 
    if ((a >= 0 && b >= 0 && c >= 0) || (a <= 0 && b <= 0 && c <= 0))
    {
        cout << "Не принадлежит заштрихованой части" << endl;
    }
    
    else if ((((x)*(x) / 16) + (y)*(y) / 9) <= 1 && y >= -2) {
        cout << "Принадлежит заштрихованой части" << endl;
    }
    
    else 
        cout << "Не принадлежит заштрихованой части" << endl;
 
    system("pause");
    return 0;
};
avgoor
562 / 352 / 83
Регистрация: 05.12.2015
Сообщений: 1,137
03.07.2016, 15:39     Условный оператор #11
Цитата Сообщение от Armatus Посмотреть сообщение
avgoor, получается это вся задача?
только y<pow(e, abs(x)) - она у вас симметричная. Да и лучше y>x*x;
Armatus
 Аватар для Armatus
50 / 50 / 28
Регистрация: 24.03.2016
Сообщений: 360
Завершенные тесты: 4
03.07.2016, 15:41     Условный оператор #12
avgoor, понял, принял. Спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2016, 15:43     Условный оператор
Еще ссылки по теме:

УСЛОВНЫЙ ОПЕРАТОР (IF) C++
C++ Условный оператор
Условный оператор IF C++

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

Или воспользуйтесь поиском по форуму:
Lampas
0 / 0 / 0
Регистрация: 01.07.2016
Сообщений: 9
03.07.2016, 15:43  [ТС]     Условный оператор #13
Armatus, Спасибо большое,помог
Yandex
Объявления
03.07.2016, 15:43     Условный оператор
Ответ Создать тему
Опции темы

Текущее время: 01:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru