С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Andrey26rus
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 113
1

Вывод интервалов для решения неравенства второй степени

07.06.2014, 15:01. Просмотров 313. Ответов 4
Метки нет (Все метки)

Здравствуйте, подскажите, пожалуйста, как в коде сделать вывод интервалов для неравенства второй степени
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
void CNeravenstvovtoroystepeniDlg::OnBnClickedButton1()
{
    // TODO: добавьте свой код обработчика уведомлений
UpdateData();
 
double a=m_A;
double b=m_B;
double c=m_C;
double  x1,x2,d;
CString VN=m_VN;
//MsgBox("a*x*x+b*x+c=CString VN");
if (a>0)
{
    //MsgBox(Ветви параболы направлены вверх);
     d=b*b-4*a*c;
if (d<0)
{
    CAboutDlg dlgAbout;
   dlgAbout.DoModal();
 
}
    //MsgBox(Квадратный трехчлен не имеет решений, а парабола не имеет общих точек с осью x);
else 
    {
    //MsgBox(Парабола имеет две общие точки с осью x);
    x1=(-b+ sqrt(d))/(2*a);
    x2=(-b- sqrt(d))/(2*a);
    m_X1=x1;   
    m_X2=x2;
}
 
if (d==0)
{
    //MsgBox(Парабола имеет одну общую точку с осью x);
    x1=(-b+ sqrt( d))/(2*a);
    x2=(-b- sqrt( d))/(2*a);
    m_X1=x1;   
    m_X2=x2;
}
}
if (a<0)
{
    //MsgBox(Ветви параболы направлены вниз);
     d=b*b-4*a*c;
if (d<0)
{
      CAboutDlg dlgAbout;
  dlgAbout.DoModal();
 
    //MsgBox(Квадратный трехчлен не имеет решений, а парабола не имеет общих точек с осью x);
}
else 
    {
    //MsgBox(Парабола имеет две общие точки с осью x);
    x1=(-b+ sqrt( d))/(2*a);
    x2=(-b- sqrt( d))/(2*a);
    m_X1=x1;   
    m_X2=x2;
}
if (d==0)
{
    //MsgBox(Парабола имеет одну общую точку с осью x);
    x1=(-b+ sqrt(d))/(2*a);
    x2=(-b- sqrt(d))/(2*a);
    m_X1=x1;   
    m_X2=x2;
}
}
UpdateData(false);
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2014, 15:01
Ответы с готовыми решениями:

Составить програму для решения неравенства
вот собственно неравенство x + b |x + a| &gt; c Есть кое какие наработки, но чет не очень получается

Написать код для решения системы тригонометрического неравенства с двумя неизвестными
Ссори, что морочу голову повторно, но там была ошипка которую я ещё до этого не заметил (ну...

Написать код для решения системы тригонометрического неравенства с двумя неизвестными
Написать консольное приложение, в котором пользователь вводит с клавиатуры две переменных - x и y,...

Написать программу для решения уравнения или неравенства в соответствии с вариантом задания с и
Помогите пожалуйста написать программу. В Dev C++ В коде программы должны использоваться: if,...

Написать программу для решения уравнения или неравенства с использованием условных операторов
Написать программу для решения уравнения или неравенства с использованием условных операторов...

4
Tchikh
50 / 70 / 20
Регистрация: 23.01.2013
Сообщений: 273
07.06.2014, 15:15 2
У вас есть два корня. Тогда в зависимости от знака коэффицента a и знака неравенства, будут либо подходить интервалы (-∞; x_2) и (x_1; +∞), либо (x_2; x_1)
0
Andrey26rus
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 113
07.06.2014, 16:44  [ТС] 3
В коде как это записать? Чтобы проверялся знак неравенства, коэффициент a
0
Tchikh
50 / 70 / 20
Регистрация: 23.01.2013
Сообщений: 273
07.06.2014, 16:51 4
Если a > 0 и знак неравенства > 0, либо a < 0 и знак неравенства < 0, то ответ такой: (-∞; x_2) и (x_1; +∞)
Иначе (x_2; x_1)
1
Andrey26rus
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 113
07.06.2014, 20:24  [ТС] 5
Ошибки синтаксические поможете исправить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
if(a>0 && VN>0)
{
    m_Otvet=otvet;
    otvet=((-в€ћ; x2) U (x1; +в€ћ));
}
else
{
    m_Otvet=otvet;
    otvet=(x2; x1);
}
m_Text=S;
UpdateData(false);
}
Добавлено через 1 минуту
А код имеет вид:
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
void CNeravenstvovtoroystepeniDlg::OnBnClickedButton1()
{
    // TODO: добавьте свой код обработчика уведомлений
    char S[80];
UpdateData(TRUE);
 
double a=m_A;
double b=m_B;
double c=m_C;
double  x1,x2,d,в€ћ,U,otvet;
CString VN=m_VN;
sprintf(S, "a*x*x+b*x+c");
if (a>0)
{
    sprintf(S, "Ветви параболы направлены вверх");
}
else
{
    sprintf(S, "Ветви параболы направлены вниз");
}
     d=b*b-4*a*c;
if (d<0)
{
    sprintf(S, "Квадратный трехчлен не имеет решений, а парабола не имеет общих точек с осью x");
}
    
else 
    {
    sprintf(S, "Парабола имеет две общие точки с осью x");
    x1=(-b+ sqrt(d))/(2*a);
    x2=(-b- sqrt(d))/(2*a);
    m_X1=x1;   
    m_X2=x2;
}
 
if (d==0)
{
    sprintf(S, "Парабола имеет одну общую точку с осью x");
    x1=(-b+ sqrt( d))/(2*a);
    x2=(-b- sqrt( d))/(2*a);
    m_X1=x1;   
    m_X2=x2;
}
if(a>0 && VN>0)
{
    m_Otvet=otvet;
    otvet=((-в€ћ; x2) U (x1; +в€ћ));
}
else
{
    m_Otvet=otvet;
    otvet=(x2; x1);
}
m_Text=S;
UpdateData(false);
}
Добавлено через 2 часа 42 минуты
Не удается вывести ответ в виде интервалов. Подскажете, что в коде не так?
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
void CNeravenstvovtoroystepeniDlg::OnBnClickedButton1()
{
    // TODO: добавьте свой код обработчика уведомлений
    char S[80];
UpdateData(TRUE);
 
double a=m_A;
double b=m_B;
double c=m_C;
double x1,x2,d,otvet,в€ћ;
if (a>0)
{
    sprintf(S, "Ветви параболы направлены вверх");
}
else
{
    sprintf(S, "Ветви параболы направлены вниз");
}
     d=b*b-4*a*c;
if (d<0)
{
    sprintf(S, "Квадратный трехчлен не имеет решений, а парабола не имеет общих точек с осью x");
}
    
else 
    {
    sprintf(S, "Парабола имеет две общие точки с осью x");
    x1=(-b+ sqrt(d))/(2*a);
    x2=(-b- sqrt(d))/(2*a);
    m_X1=x1;   
    m_X2=x2;
}
 
if (d==0)
{
    sprintf(S, "Парабола имеет одну общую точку с осью x");
    x1=(-b+ sqrt( d))/(2*a);
    x2=(-b- sqrt( d))/(2*a);
    m_X1=x1;   
    m_X2=x2;
}
CString VN=m_VN;
if(a>0 && VN>0)
{
    otvet=((-в€ћ,x2), (x1,+в€ћ));
    m_Otvet=otvet;
}
else
{
    otvet=(x2,x1);
    m_Otvet=otvet;  
}
m_Text=S;
UpdateData(false);
}
0
07.06.2014, 20:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2014, 20:24

Рекурсия. Найти решения неравенства (x^2+ y^2 <= n)
Новый учебный год, а задачки старые) Ребят, помогите рекурсивно решить задачку. Классическими -...

Составить алгоритм решения неравенства ax2+bx+c<0
Доброго времени суток! Ветвлением нужно. Используя только if и else. Помогите пожалуйста! С/С++ ...

Написать рекурсивную функцию для расчета степени а в степени х, х - любое число
Здравствуйте. Написать рекурсивную функцию для расчета степени а в степени х, х - любое число ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru