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

Квадратный трехчлен - C++

Восстановить пароль Регистрация
 
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
10.10.2010, 14:38     Квадратный трехчлен #1
Ай, я не знаю(...бьюсь, бьюсь, а не выходит...больше не могу((Помогите пожалуйста!

Ввести коэфициенты квадратного уравнения a,b,c.Вывести a*x*x+b+x+c.При этом ,если а=1 ,выводится только х*х ,если а=-1 ,то выводить -х*х ,если а=0 ,то первый одночлен вообще не выводить.Аналогично для b.Не выводиться также нулевое значение с.
Желательно через switch.
Помогите пожалуйста!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2010, 14:38     Квадратный трехчлен
Посмотрите здесь:

Уравнение на c++ (не квадратный корень) C++
Квадратный корень C++
C++ Квадратный корень
C++ Квадратный корень из 5
квадратный корень от интеграла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
10.10.2010, 15:21     Квадратный трехчлен #2
Вроде всё так...

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <stdio.h>
 
int main()
{
    int a;
    int b;
    int c;
    int key1;
    int key2;
 
    printf("Enter a: ");
    scanf("%d", &a);
    printf("Enter b: ");
    scanf("%d", &b);
    printf("Enter b: ");
    scanf("%d", &c);
 
    key1 = 0;
    key2 = 0;
 
    switch (a)
    {
        case -1:
            printf("-x^2");
            break;
        case 0:
            key1 = 1;
            break;
        case 1:
            printf("x^2");
            break;
        default:
            printf("%dx^2", a);
            break;
    }
 
    switch (b)
    {
        case -1:
            printf("-x");
            break;
        case 0:
            key2 = 1;
            break;
        case 1:
            if (key1 == 0)
                printf("+x");
            else
                printf("x");
 
            break;
        default:
            if (b < 0)
                printf("%dx", b);
            else
            {
                if (key1 == 0)
                    printf("+%dx", b);
                else
                    printf("%dx", b);
            }
 
            break;
    }
 
    switch (c)
    {
        case 0:
            break;
        default:
            if (c < 0)
                printf("%d", c);
            else
            {
                if (key1 == 1 && key2 == 1)
                    printf("%d", c);
                else
                    printf("+%d", c);
            }
 
            break;
    }
 
    getch();
    return 0;
}
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
10.10.2010, 17:43  [ТС]     Квадратный трехчлен #3
а key2 и key1 это просто название переменных?...тоесть их можно и по другому назвать?
Спасибо.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
10.10.2010, 17:47     Квадратный трехчлен #4
Конечно. Как и a, b, c.
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
10.10.2010, 19:41  [ТС]     Квадратный трехчлен #5
...у меня такое чувство ,что я не понимаю, зачем нужны key2 и key1?...как они работают....не очень понятна 75 строка и 27.Обьясните пожалуйста.Хочется понять...
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
10.10.2010, 19:54     Квадратный трехчлен #6
barlog, key1, key2 соответственно определяют как выводить.
C++
1
2
3
        case 0://Если a=0
            key1 = 1;//присваиваем key1 1
            break;
C++
1
2
3
        case 0://Аналогично только для b
            key2 = 1;
            break;
C++
1
2
                if (key1 == 1 && key2 == 1)//Если обе переменные равны 1, т.е. a и b были равны 0
                    printf("%d", c);//Пишем просто c
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
10.10.2010, 20:10     Квадратный трехчлен #7
Вообще a и b определяют, нужно ли выводить знак +. Т.е. если у нас нет первого слагаемого, то у второго + не нужен по правилам арифметики. Аналогично для третьего.
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
10.10.2010, 20:13  [ТС]     Квадратный трехчлен #8
silent_1991 , точно!!!!для +!!!Поняла!!!Спасибо огромное!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2010, 22:52     Квадратный трехчлен
Еще ссылки по теме:

C++ Квадратный корень
C++ Вычислить корень квадратный
C++ Квадратный корень

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

Или воспользуйтесь поиском по форуму:
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
17.10.2010, 22:52  [ТС]     Квадратный трехчлен #9
Оооо!!!оказалось что программу надо усовершенствовать.типа чтобы можно было вводить много a,b,c и появлялось много уравнений до тех пор пока все a,b,c не равны нулю.
Я вот что думаю-
C++
1
2
3
4
while(1)
        {cin>>a>>b>>c;
        if(a==0 && b==0 && c==0) break;
        }
Но почему-то не работает....да и без цикла почему-то тоже...Помогите пожалуйста!

Добавлено через 1 час 44 минуты
Помогите ПОЖАЛУЙСТА!!!(((

Добавлено через 53 минуты
Вот что у меня получается....Но в таком случае он по-любому чего-то выходит из цикла...помогите подправить пожалуйста!!!
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
#include<conio.h>
#include<iostream.h>
#include<math.h>
#include <vcl.h>
#pragma hdrstop
 
 
 
#pragma argsused
int main()
{ int  a,b , c , f1 , f2 ;
  while(1)
 { cout<<"Enter a: " ;
  cin>>a ;
   cout<<"Enter b: " ;
  cin>>b ;
   cout<<"Enter c: " ;
  cin>>c ;
 { if(a==0 && b==0 && c==0);break;}
  f1=0 ;
  f2=0 ;
 
  switch(a)
  { case -1:cout<<"-x*x";break;
    case 0: f1=1;break;
    case 1:cout<<"x*x" ;break;
    default:cout<<a<<"x*x"; break;
  }
 
   switch(b)
 { case -1:cout<<"-x";break;
    case 0: f2=1;break;
    case 1:  { if (f1==0)
              cout<<"+x";
              else
              cout<<"x";break;}
   default: { if(b<0)
             cout<<b<<"x";
 
             else
             {
             if(f1==0)
             cout<<"+"<<b<<"x";
              else
             cout<<b<<"x";
             }
             break;  }
 
  }
 
     switch(c)
 { case 0:break;
   default:{ if(c<0)
            cout<<c;
 
            else
            { if (f1==1 && f2==1)
              cout<<c;
 
              else
              cout<<"+"<<c;
 
            }
              break;  }
}
}
 cout<<"Exit";
getch();
return 0;
}
Добавлено через 16 минут
И так чего-то тоже неправильно делает.....Ну отзовитесь хоть кто-нибудь!!!
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
71
72
73
74
#include<conio.h>
#include<iostream.h>
#include<math.h>
#include <vcl.h>
#pragma hdrstop
 
 
 
#pragma argsused
int main()
{ int  a,b , c , f1 , f2 ;
do
 {
 cout<<"Enter a: " ;
  cin>>a ;
   cout<<"Enter b: " ;
  cin>>b ;
   cout<<"Enter c: " ;
  cin>>c ;
 
  f1=0 ;
  f2=0 ;
 
  switch(a)
  { case -1:cout<<"-x*x";break;
    case 0: f1=1;break;
    case 1:cout<<"x*x" ;break;
    default:cout<<a<<"x*x"; break;
  }
 
   switch(b)
 { case -1:cout<<"-x";break;
    case 0: f2=1;break;
    case 1:  { if (f1==0)
              cout<<"+x";
              else
              cout<<"x";break;}
   default: { if(b<0)
             cout<<b<<"x";
 
             else
             {
             if(f1==0)
             cout<<"+"<<b<<"x";
              else
             cout<<b<<"x";
             }
             break;  }
 
  }
 
     switch(c)
 { case 0:break;
   default:{ if(c<0)
            cout<<c;
 
            else
            { if (f1==1 && f2==1)
              cout<<c;
 
              else
              cout<<"+"<<c;
 
            }
              break;  }
}
 
}
 
while(a!=0 && b!=0 && c!=0);
 cout<<"Exit";
getch();
return 0;
}
Добавлено через 27 минут
ХААААААААААААА-ХАААААА-ХАААААА!!!У МЕНЯ ПОЛУЧИЛОСЬ!!!!!!ВОТ ВАМ!!!!!!А вы даже помочь не захотели...ВСЕ РАБОТАЕТ ТЕПЕРЬ!))
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
71
72
73
74
75
76
#include<conio.h>
#include<iostream.h>
#include<math.h>
#include <vcl.h>
#pragma hdrstop
 
 
 
#pragma argsused
int main()
{ int  a,b , c , f1 , f2 ;
  while(1)
 {
  cout<<"Enter a: " ;
  cin>>a ;
   cout<<"Enter b: " ;
  cin>>b ;
   cout<<"Enter c: " ;
  cin>>c ;
 
  f1=0 ;
  f2=0 ;
 if(!(a==0 && b==0 && c==0))
 {
  switch(a)
  { case -1:cout<<"-x*x";break;
    case 0: f1=1;break;
    case 1:cout<<"x*x" ;break;
    default:cout<<a<<"x*x"; break;
  }
 
  switch(b)
 { case -1:cout<<"-x";break;
    case 0: f2=1;break;
    case 1:  { if (f1==0)
              cout<<"+x";
              else
              cout<<"x";break;}
   default: { if(b<0)
             cout<<b<<"x";
 
             else
             {
             if(f1==0)
             cout<<"+"<<b<<"x";
              else
             cout<<b<<"x";
             }
             break;  }
 
  }
 
    switch(c)
 { case 0:break;
   default:{ if(c<0)
            cout<<c<<endl;
 
            else
            { if (f1==1 && f2==1)
              cout<<c<<endl;
 
              else
              cout<<"+"<<c<<endl;
 
            }
              break;  }
 
}
}
 else
{cout<<"Exit"; break;}
 
}
getch();
return 0;
}
Добавлено через 37 секунд
жаль что самой себе спасибо сказать нельзя)
Yandex
Объявления
17.10.2010, 22:52     Квадратный трехчлен
Ответ Создать тему
Опции темы

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