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

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

Восстановить пароль Регистрация
 
Andrey26rus
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 80
07.06.2014, 15:01     Вывод интервалов для решения неравенства второй степени #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
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);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2014, 15:01     Вывод интервалов для решения неравенства второй степени
Посмотрите здесь:

Вывод степени C++
отрицательные элементы массива А уменьшить в три раза, другие преподнести ко второй степени C++
C++ Рекурсия. Найти решения неравенства (x^2+ y^2 <= n)
Составить алгоритм решения неравенства ax2+bx+c<0 C++
C++ Задача на вывод целочисленного массива размера N,содержащей степени двойки от первой до N
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tchikh
50 / 70 / 11
Регистрация: 23.01.2013
Сообщений: 253
07.06.2014, 15:15     Вывод интервалов для решения неравенства второй степени #2
У вас есть два корня. Тогда в зависимости от знака коэффицента a и знака неравенства, будут либо подходить интервалы (-∞; x_2) и (x_1; +∞), либо (x_2; x_1)
Andrey26rus
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 80
07.06.2014, 16:44  [ТС]     Вывод интервалов для решения неравенства второй степени #3
В коде как это записать? Чтобы проверялся знак неравенства, коэффициент a
Tchikh
50 / 70 / 11
Регистрация: 23.01.2013
Сообщений: 253
07.06.2014, 16:51     Вывод интервалов для решения неравенства второй степени #4
Если a > 0 и знак неравенства > 0, либо a < 0 и знак неравенства < 0, то ответ такой: (-∞; x_2) и (x_1; +∞)
Иначе (x_2; x_1)
Andrey26rus
0 / 0 / 0
Регистрация: 17.05.2014
Сообщений: 80
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);
}
Yandex
Объявления
07.06.2014, 20:24     Вывод интервалов для решения неравенства второй степени
Ответ Создать тему
Опции темы

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