Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 693
#1

Калькулятор - C++

27.02.2011, 18:33. Просмотров 2362. Ответов 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <iostream>
#include <locale.h>
#include <string.h>
#include <cmath>
using namespace std;
int a,c,r;
char b,mur;
void minus(void);
void plus(void);
void mnosit(void);
void delit(void);
void koren(void);
void sinus(void);
void cosinus(void);
 
 
 
 
int main(void)
{setlocale(LC_ALL, "Russian");
    cout << "Для начала нажмите любую клавишу "<< endl;
    cin.get();
    cout << "Введите первое число и нажмите Enter  --> ";
    cin.get();
cin>>a;
cout << "Введите действие и нажмите Enter --> ";
cin.get();
cin >> b;
cout << "Введите второе число и нажмите Enter --> ";
cin.get();
cin >> c;
 
else if(b == '+')
{ plus();}
 
 else if (b == '-')
     {minus();}
else if (b == '*')
    {mnosit();}
 else if (b == '/')
 {delit();}
else if (b == 'SQRT')
    {koren();}
 else if (b == 'SIN')
     {sinus();}
else if (b == 'COS')
    {cosinus();}
return 0;
}
 
void plus(void)
{
    r=a+c;
    cout << "Результат сложения равен --> "<<r;
    cout << "Для продолжения нажмите .. ";
 
}
 
void minus(void)
{
    r=a-c;
    cout << "Результат сложения вычитания --> "<<r;
    cout << "Для продолжения нажмите .. ";
 
 
}
void mnosit(void)
{
    r=a*c;
    cout << "Результат умножения равен --> "<<r;
    cout << "Для продолжения нажмите .. ";
 
 
}
void delit(void)
{
    r=a/c;
    cout << "Результат деления равен --> "<<r;
    cout << "Для продолжения нажмите .. ";
 
}
void koren(void)
{
    r=sqrt(a);
    cout << "Результат извлечения корня равен --> "<<r;
    cout << "Для продолжения нажмите .. ";
 
}
void sinus(void)
{
    r=sin(a);
    cout << "Результат извлечения синуса равен --> "<<r;
    cout << "Для продолжения нажмите .. ";
 
}
void cosinus(void)
{
    r=cos(a);
    cout << "Результат извлечения косинуса равен --> "<<r;
    cout << "Для продолжения нажмите .. ";
 
 
}
У меня получаются там ошибки, которые на мой взгляд обсурдны (это чисто непрофессиональный взгляд). Как эти ошибки исправить ?

Как мне сделать так чтоб оттуда (откуда показано на скриншоте) программа возвращалась туда куда показано на скриншоте ?

Спасибо
0
Миниатюры
Калькулятор   Калькулятор  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2011, 18:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Калькулятор (C++):

Простой калькулятор и калькулятор с парсингом - C++
Ребят я совсем не давно только начал изучать сишку, решил написать простенький калькулятор который работает с 2 числами. Возник вопрос, как...

Калькулятор - C++
Доброго времени суток, Народ! Помогите плиз с задачей. Нужен исходник калькулятора, самого простого, на 4 действия. Заранее спасибо!!!

Калькулятор на С++ - C++
Сделал калькулятор, работает нормально, но программа считает только два числа за раз: &gt;&gt;Картинка&lt;&lt; , как сделать так чтоб пользователь...

Калькулятор на C++ - C++
Приветствую всех. Ребят нужна помощь, в с++ особо то не рублю, веб-разработкой занимаюсь, а дали задание. Может у кого есть подобное &quot;чудо&quot;...

Калькулятор - C++
Помогите пожалуйста сделать в этом калькуляторе скобки. #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include...

Калькулятор - C++
Решил написать калькулятор, а вот и он: #include&lt;conio.h&gt; #include&lt;locale.h&gt; #include&lt;stdio.h&gt; #define END '0' #define ERROR 'a' ...

16
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
27.02.2011, 19:07 #2
C++
1
else if (b == 'COS')
Аще убийственно. b - символ, который вы пытаетесь сравнить с тремя символами да еще и представленных под один, т.е. вы творите какую-то чушь. И так везде.
1
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 693
27.02.2011, 19:11  [ТС] #3
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
else if (b == 'COS')
Аще убийственно. b - символ, который вы пытаетесь сравнить с тремя символами да еще и представленных под один, т.е. вы творите какую-то чушь. И так везде.
Если знак будет "+", то выполняется такое действие ...
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
27.02.2011, 19:14 #4
parkito, Мм. Хорошо) Не везде. Почти везде. Конкретнее 'SQRT', 'SIN', 'COS'...
+ к тому у вас много ошибок из-за того, что эти функции пытаетесь применить к int, тогда как они только для типов с плав. запятой (double, float, long double).
А вернуться легко - просто цикл while(1) в функции main перед вводом чисел и знаков.
1
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 693
27.02.2011, 19:21  [ТС] #5
Кое что подработал. Теперь ему не нравится первый Else if. Говорит что нет парного оператора. Что это значит ?

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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <iostream>
#include <locale.h>
#include <string.h>
#include <cmath>
using namespace std;
double a,c,r;
char b,mur;
void minus(void);
void plus(void);
void mnosit(void);
void delit(void);
void koren(void);
void sinus(void);
void cosinus(void);
 
 
 
 
int main(void)
{setlocale(LC_ALL, "Russian");
while(true){
    cout << "Для начала нажмите любую клавишу "<< endl;
    cin.get();
    cout << "Введите первое число и нажмите Enter  --> ";
    cin.get();
cin>>a;
cout << "Введите действие и нажмите Enter --> ";
cin.get();
cin >> b;
cout << "Введите второе число и нажмите Enter --> ";
cin.get();
cin >> c;
}
else if(b == '+')
{ plus();}
 
 else if (b == '-')
     {minus();}
else if (b == '*')
    {mnosit();}
 else if (b == '/')
 {delit();}
else if (b == 'SQRT')
    {koren();}
 else if (b == 'SIN')
     {sinus();}
else if (b == 'COS')
    {cosinus();}
return 0;
}
 
void plus(void)
{
    r=a+c;
    cout << "Результат сложения равен --> "<<r;
    cout << "Для продолжения нажмите .. ";
 
}
 
void minus(void)
{
    r=a-c;
    cout << "Результат вычитания вычитания --> "<<r;
    cout << "Для продолжения нажмите .. ";
 
 
}
void mnosit(void)
{
    r=a*c;
    cout << "Результат умножения равен --> "<<r;
    cout << "Для продолжения нажмите .. ";
 
 
}
void delit(void)
{
    r=a/c;
    cout << "Результат деления равен --> "<<r;
    cout << "Для продолжения нажмите .. ";
 
}
void koren(void)
{
    r=sqrt(a);
    cout << "Результат извлечения корня равен --> "<<r;
    cout << "Для продолжения нажмите .. ";
 
}
void sinus(void)
{
    r=sin(a);
    cout << "Результат извлечения синуса равен --> "<<r;
    cout << "Для продолжения нажмите .. ";
 
}
void cosinus(void)
{
    r=cos(a);
    cout << "Результат извлечения косинуса равен --> "<<r;
    cout << "Для продолжения нажмите .. ";
 
 
}
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
27.02.2011, 19:29 #6
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <iostream>
#include <locale.h>
#include <string.h>
#include <cmath>
using namespace std;
double a,c,r;
char b[5],mur;
void minus(void);
void plus(void);
void mnosit(void);
void delit(void);
void koren(void);
void sinus(void);
void cosinus(void);
 
 
 
 
int main(void)
{setlocale(LC_ALL, "Russian");
while(true){
        cout << "Для начала нажмите любую клавишу "<< endl;
        cin.get();
        cout << "Введите первое число и нажмите Enter  --> ";
cin>>a;
cout << "Введите действие и нажмите Enter --> ";
cin >> b;
cout << "Введите второе число и нажмите Enter --> ";
cin >> c;
cin.get();
if(!strcmp(b, "+"))
{ plus();}
 
 else if (!strcmp(b, "-"))
         {minus();}
else if (!strcmp(b, "*"))
        {mnosit();}
 else if (!strcmp(b, "/"))
 {delit();}
else if (!strcmp(b, "SQRT"))
        {koren();}
 else if (!strcmp(b, "SIN"))
         {sinus();}
else if (!strcmp(b, "COS"))
        {cosinus();}
else if(!strcmp(b, "EXIT"))
   break;
else
    cerr<<"Ошибка. Нет такой операции\n";
}
return 0;
}
 
void plus(void)
{
        r=a+c;
        cout << "Результат сложения равен --> "<<r;
        cout << "Для продолжения нажмите .. ";
        cin.get();
 
}
 
void minus(void)
{
        r=a-c;
        cout << "Результат вычитания вычитания --> "<<r;
        cout << "Для продолжения нажмите .. ";
                cin.get();
 
}
void mnosit(void)
{
        r=a*c;
        cout << "Результат умножения равен --> "<<r;
        cout << "Для продолжения нажмите .. ";
            cin.get();
 
}
void delit(void)
{
        r=a/c;
        cout << "Результат деления равен --> "<<r;
        cout << "Для продолжения нажмите .. ";
        cin.get();
}
void koren(void)
{
        r=sqrt(a);
        cout << "Результат извлечения корня равен --> "<<r;
        cout << "Для продолжения нажмите .. ";
        cin.get();
}
void sinus(void)
{
        r=sin(a);
        cout << "Результат извлечения синуса равен --> "<<r;
        cout << "Для продолжения нажмите .. ";
        cin.get();
}
void cosinus(void)
{
        r=cos(a);
        cout << "Результат извлечения косинуса равен --> "<<r;
        cout << "Для продолжения нажмите .. ";
        cin.get();
 
}
0
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 693
27.02.2011, 19:31  [ТС] #7
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
2
3
4
5
#include <iostream>
 
 else if (!strcmp(b, "-"))
       
}
А поясните пожалуйста эту конструкцию.
0
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
27.02.2011, 19:33 #8
Вы понимаете, что вы делаете? Как перевести else if? Отвечаю сразу - "иначе если...". А что иначе? Альтернативой для чего является эта ветка?
Всё дерево ветвлений начинается всегда с if, не с else. else - альтернатива для предыдущего if.

Добавлено через 1 минуту

Не по теме:

Опоздал чуток...

1
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
27.02.2011, 19:35 #9
parkito, strcmp сравнивает две строки типа char* - при равенстве возвращает 0, если первая меньше второй - отрицательное число, если первая больше второй - положительное число.
!strcmp(...,...) эквивалентно strcmp(..., ...) == 0 => проверяем на равенство.
1
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 693
27.02.2011, 19:43  [ТС] #10
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
2
3
4
5
#include <iostream>
 
  (!strcmp(b, "-"))
       
}
точнее вот эта конструкция. Как вот это понять !strcmp ?

Добавлено через 7 минут
Вот я переделал моленько. Как мне выход сделать, когда нажимается "Е"

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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include <iostream>
#include <locale.h>
#include <string.h>
#include <cmath>
using namespace std;
double a,c,r;
char b[5],mur;
void minus(void);
void plus(void);
void mnosit(void);
void delit(void);
void koren(void);
void sinus(void);
void cosinus(void);
 
 
 
 
int main(void)
{setlocale(LC_ALL, "Russian");
while(true){
        cout << "Для начала нажмите Enter "<< endl;
        cin.get();
        cout << "Введите первое число и нажмите Enter  --> ";
        
cin>>a;
cout << "Введите действие и нажмите Enter --> ";
cin.get();
cin >> b;
cout << "Введите второе число и нажмите Enter --> ";
cin.get();
cin >> c;
if(!strcmp(b, "+"))
{ plus();}
 
 else if (!strcmp(b, "-"))
         {minus();}
else if (!strcmp(b, "*"))
        {mnosit();}
 else if (!strcmp(b, "/"))
 {delit();}
else if (!strcmp(b, "SQRT"))
        {koren();}
 else if (!strcmp(b, "SIN"))
         {sinus();}
else if (!strcmp(b, "COS"))
        {cosinus();}
else if(!strcmp(b, "EXIT"))
   break;
else
    cerr<<"Ошибка. Нет такой операции\n";
}
return 0;
}
 
void plus(void)
{
    r=a+c;
    cout << "Результат сложения равен --> "<<r<<endl;
    cout << "Для продолжения нажмите Enter, для выхода е ";
    cin >>mur;
    if(mur=='e')
void end(void);
 
 
}
 
void minus(void)
{
    r=a-c;
    cout << "Результат вычитания вычитания --> "<<r<<endl;
    cout << "Для продолжения нажмите Enter, для выхода е ";
    cin >>mur;
    if(mur=='e')
void end(void);
 
 
 
}
void mnosit(void)
{
    r=a*c;
    cout << "Результат умножения равен --> "<<r<<endl;
    cout << "Для продолжения нажмите Enter, для выхода е ";
    cin >>mur;
    if(mur=='e')
void end(void);
 
 
 
}
void delit(void)
{
    r=a/c;
    cout << "Результат деления равен --> "<<r<<endl;
    cout << "Для продолжения нажмите Enter, для выхода е ";
    cin >>mur;
    if(mur=='e')
void end(void);
 
}
void koren(void)
{
    r=sqrt(a);
    cout << "Результат извлечения корня равен --> "<<r<<endl;
    cout << "Для продолжения нажмите Enter, для выхода е ";
    cin >>mur;
    if(mur=='e')
void end(void);
 
 
}
void sinus(void)
{
    r=sin(a);
    cout << "Результат извлечения синуса равен --> "<<r<<endl;
    cout << "Для продолжения нажмите Enter, для выхода е ";
    cin >>mur;
    if(mur=='e')
void end(void);
 
 
}
void cosinus(void)
{
    r=cos(a);
    cout << "Результат извлечения косинуса равен --> "<<r<<endl;
    cout << "Для продолжения нажмите Enter, для выхода е ";
    cin >>mur;
    if(mur=='e')
void end(void);
 
 
 
}
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
27.02.2011, 19:51 #11
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include <iostream>
#include <locale.h>
#include <string.h>
#include <cmath>
#include <cstdlib>
using namespace std;
double a,c,r;
char b[5],mur;
void minus(void);
void plus(void);
void mnosit(void);
void delit(void);
void koren(void);
void sinus(void);
void cosinus(void);
 
 
 
 
int main(void)
{setlocale(LC_ALL, "Russian");
while(true){
        cout << "Для начала нажмите Enter "<< endl;
        cin.get();
        cout << "Введите первое число и нажмите Enter  --> ";
        
cin>>a;
cout << "Введите действие и нажмите Enter --> ";
cin.get();
cin >> b;
cout << "Введите второе число и нажмите Enter --> ";
cin.get();
cin >> c;
if(!strcmp(b, "+"))
{ plus();}
 
 else if (!strcmp(b, "-"))
         {minus();}
else if (!strcmp(b, "*"))
        {mnosit();}
 else if (!strcmp(b, "/"))
 {delit();}
else if (!strcmp(b, "SQRT"))
        {koren();}
 else if (!strcmp(b, "SIN"))
         {sinus();}
else if (!strcmp(b, "COS"))
        {cosinus();}
else if(!strcmp(b, "EXIT"))
   break;
else
    cerr<<"Ошибка. Нет такой операции\n";
}
return 0;
}
 
void plus(void)
{
        r=a+c;
        cout << "Результат сложения равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
void end(void);
 
 
}
 
void minus(void)
{
        r=a-c;
        cout << "Результат вычитания вычитания --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
void end(void);
 
 
 
}
void mnosit(void)
{
        r=a*c;
        cout << "Результат умножения равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
void end(void);
 
 
 
}
void delit(void)
{
        r=a/c;
        cout << "Результат деления равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
           exit();
 
}
void koren(void)
{
        r=sqrt(a);
        cout << "Результат извлечения корня равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
           exit();
 
 
}
void sinus(void)
{
        r=sin(a);
        cout << "Результат извлечения синуса равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
            exit();
 
 
}
void cosinus(void)
{
        r=cos(a);
        cout << "Результат извлечения косинуса равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
           exit();
 
 
 
}
0
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 693
27.02.2011, 20:02  [ТС] #12
Этот пример не рабочий(. Какой командой мне заставить программу прекратиться при любом раскладе ? То есть что мне в функции end прописать ?

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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include <iostream>
#include <locale.h>
#include <string.h>
#include <cmath>
using namespace std;
double a,c,r;
char b[5],mur;
void minus(void);
void plus(void);
void mnosit(void);
void delit(void);
void koren(void);
void sinus(void);
void cosinus(void);
void end(void);
 
 
 
 
 
int main(void)
{setlocale(LC_ALL, "Russian");
while(true){
        cout << "Для начала нажмите Enter "<< endl;
        cin.get();
        cout << "Введите первое число и нажмите Enter  --> ";
        
cin>>a;
cout << "Введите действие и нажмите Enter --> ";
cin.get();
cin >> b;
cout << "Введите второе число и нажмите Enter --> ";
cin.get();
cin >> c;
if(!strcmp(b, "+"))
{ plus();}
 
 else if (!strcmp(b, "-"))
         {minus();}
else if (!strcmp(b, "*"))
        {mnosit();}
 else if (!strcmp(b, "/"))
 {delit();}
else if (!strcmp(b, "SQRT"))
        {koren();}
 else if (!strcmp(b, "SIN"))
         {sinus();}
else if (!strcmp(b, "COS"))
        {cosinus();}
else if(!strcmp(b, "EXIT"))
   break;
else
    cerr<<"Ошибка. Нет такой операции\n";
}
return 0;
}
 
void plus(void)
{
        r=a+c;
        cout << "Результат сложения равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
void end(void);
 
 
}
 
void minus(void)
{
        r=a-c;
        cout << "Результат вычитания вычитания --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
void end(void);
 
 
 
}
void mnosit(void)
{
        r=a*c;
        cout << "Результат умножения равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
void end(void);
 
 
 
}
void delit(void)
{
        r=a/c;
        cout << "Результат деления равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
void end(void);
 
}
void koren(void)
{
        r=sqrt(a);
        cout << "Результат извлечения корня равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
void end(void);
 
 
}
void sinus(void)
{
        r=sin(a);
        cout << "Результат извлечения синуса равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
void end(void);
 
 
}
void cosinus(void)
{
        r=cos(a);
        cout << "Результат извлечения косинуса равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
void end(void);
 
 
 
}
void end(void)
{}
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
27.02.2011, 20:23 #13
все рабочее... можно же иногда ошибки самому пытаться исправлять?

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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <iostream>
#include <locale.h>
#include <string.h>
#include <cmath>
#include <cstdlib>
using namespace std;
double a,c,r;
char b[5],mur;
void minus(void);
void plus(void);
void mnosit(void);
void delit(void);
void koren(void);
void sinus(void);
void cosinus(void);
 
 
 
 
int main(void)
{setlocale(LC_ALL, "Russian");
while(true){
        cout << "Для начала нажмите Enter "<< endl;
        cin.get();
        cout << "Введите первое число и нажмите Enter  --> ";
        
cin>>a;
cout << "Введите действие и нажмите Enter --> ";
cin.get();
cin >> b;
cout << "Введите второе число и нажмите Enter --> ";
cin.get();
cin >> c;
if(!strcmp(b, "+"))
{ plus();}
 
 else if (!strcmp(b, "-"))
         {minus();}
else if (!strcmp(b, "*"))
        {mnosit();}
 else if (!strcmp(b, "/"))
 {delit();}
else if (!strcmp(b, "SQRT"))
        {koren();}
 else if (!strcmp(b, "SIN"))
         {sinus();}
else if (!strcmp(b, "COS"))
        {cosinus();}
else if(!strcmp(b, "EXIT"))
   break;
else
    cerr<<"Ошибка. Нет такой операции\n";
}
return 0;
}
 
void plus(void)
{
        r=a+c;
        cout << "Результат сложения равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
            exit(1);
 
 
}
 
void minus(void)
{
        r=a-c;
        cout << "Результат вычитания вычитания --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
            exit(1);
 
 
 
}
void mnosit(void)
{
        r=a*c;
        cout << "Результат умножения равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
          exit(1);
 
 
 
}
void delit(void)
{
        r=a/c;
        cout << "Результат деления равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
           exit(1);
 
}
void koren(void)
{
        r=sqrt(a);
        cout << "Результат извлечения корня равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
           exit(1);
 
 
}
void sinus(void)
{
        r=sin(a);
        cout << "Результат извлечения синуса равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
            exit(1);
 
 
}
void cosinus(void)
{
        r=cos(a);
        cout << "Результат извлечения косинуса равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
           exit(1);
}
1
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 693
27.02.2011, 21:33  [ТС] #14
ForEveR
Огромное спасибо за помощь. К сожалению я только начинающий программист на с++ и многое пока не понимаю, но хотелось бы все понять самому, а не просить кого-то решать. Я допустил несколько серьезных ошибок в начале, спасибо за то что направили на путь истинный . Но вот когда вы переписали мой пример по свойму, объявив массив, и сделав несколько штук которые мне вообще не понятны я просто не понял нечего. После долгогих умозаключений собрал программу как мозайку. Вырезал, что не понимаю осталось только моя идея и исполнение + профессиональные поправки. Еще раз спасибо!!!.

Вот в конце концов что получилось.

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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include <iostream>
#include <locale.h>
#include <string.h>
#include <cmath>
using namespace std;
double a,c,r;
char b,mur;
void minus(void);
void plus(void);
void mnosit(void);
void delit(void);
void koren(void);
void sinus(void);
void cosinus(void);
 
 
 
 
 
 
int main(void)
{setlocale(LC_ALL, "Russian");
while(true){
        cout << "Для начала нажмите Enter "<< endl;
        cin.get();
        cout << "Введите первое число и нажмите Enter  --> ";
        
cin>>a;
cout << "Введите действие и нажмите Enter --> ";
cin.get();
cin >> b;
cout << "Введите второе число и нажмите Enter --> ";
cin.get();
cin >> c;
if(b=='+')
{ plus();}
 
 else if (b== '-')
         {minus();}
else if (b=='*')
        {mnosit();}
 else if (b== '/')
 {delit();}
else if (b=='SQRT')
        {koren();}
 else if (b =='SIN')
         {sinus();}
else if (b=='COS')
        {cosinus();}
else if(b == 'EXIT')
   break;
else
    cerr<<"Ошибка. Нет такой операции\n";
}
return 0;
}
 
void plus(void)
{
        r=a+c;
        cout << "Результат сложения равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
  exit(1);
 
 
 
}
 
void minus(void)
{
        r=a-c;
        cout << "Результат вычитания вычитания --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
  exit(1);
 
 
 
 
}
void mnosit(void)
{
        r=a*c;
        cout << "Результат умножения равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
  exit(1);
 
 
 
 
}
void delit(void)
{
        r=a/c;
        cout << "Результат деления равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
  exit(1);
 
 
}
void koren(void)
{
        r=sqrt(a);
        cout << "Результат извлечения корня равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
  exit(1);
 
 
 
}
void sinus(void)
{
        r=sin(a);
        cout << "Результат извлечения синуса равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
  exit(1);
 
 
 
}
void cosinus(void)
{
        r=cos(a);
        cout << "Результат извлечения косинуса равен --> "<<r<<endl;
        cout << "Для продолжения нажмите Enter, для выхода е ";
        cin >>mur;
        if(mur=='e')
  exit(1);
 
 
 
 
}
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
27.02.2011, 21:40 #15
parkito, Эх.
Это
C++
1
else if (b=='COS')
Не может работать. И не будет.
1
27.02.2011, 21:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2011, 21:40
Привет! Вот еще темы с ответами:

Калькулятор - C++
Вот сам калькулятор: #include&lt;conio.h&gt; #include&lt;locale.h&gt; #include&lt;stdio.h&gt; #define END '0' #define ERROR -1 #include&lt;stdlib.h&gt;...

Калькулятор - C++
Написал примитивный калькулятор: #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;conio.h&gt; using namespace std; int...

Калькулятор - C++
Есть такое условие: If(b=='+') s=a+b; как сделать так чтобы я мог додавать не два числа а a+b+...+n

C++ Калькулятор - C++
Начал практиковаться в C++ помогите понять почему не работает мой калькулятор? Вроде все правильно,ввожу числа а он просто отключается....


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

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

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