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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
27.02.2011, 18:33     Калькулятор #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
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 << "Для продолжения нажмите .. ";
 
 
}
У меня получаются там ошибки, которые на мой взгляд обсурдны (это чисто непрофессиональный взгляд). Как эти ошибки исправить ?

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

Спасибо
Миниатюры
Калькулятор   Калькулятор  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2011, 18:33     Калькулятор
Посмотрите здесь:

Калькулятор на С++ C++
C++ Калькулятор на С
C++ Калькулятор
Калькулятор C++
Калькулятор C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
27.02.2011, 19:07     Калькулятор #2
C++
1
else if (b == 'COS')
Аще убийственно. b - символ, который вы пытаетесь сравнить с тремя символами да еще и представленных под один, т.е. вы творите какую-то чушь. И так везде.
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
27.02.2011, 19:11  [ТС]     Калькулятор #3
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
else if (b == 'COS')
Аще убийственно. b - символ, который вы пытаетесь сравнить с тремя символами да еще и представленных под один, т.е. вы творите какую-то чушь. И так везде.
Если знак будет "+", то выполняется такое действие ...
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
27.02.2011, 19:14     Калькулятор #4
parkito, Мм. Хорошо) Не везде. Почти везде. Конкретнее 'SQRT', 'SIN', 'COS'...
+ к тому у вас много ошибок из-за того, что эти функции пытаетесь применить к int, тогда как они только для типов с плав. запятой (double, float, long double).
А вернуться легко - просто цикл while(1) в функции main перед вводом чисел и знаков.
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
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 << "Для продолжения нажмите .. ";
 
 
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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();
 
}
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
27.02.2011, 19:31  [ТС]     Калькулятор #7
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
2
3
4
5
#include <iostream>
 
 else if (!strcmp(b, "-"))
       
}
А поясните пожалуйста эту конструкцию.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
27.02.2011, 19:33     Калькулятор #8
Вы понимаете, что вы делаете? Как перевести else if? Отвечаю сразу - "иначе если...". А что иначе? Альтернативой для чего является эта ветка?
Всё дерево ветвлений начинается всегда с if, не с else. else - альтернатива для предыдущего if.

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

Не по теме:

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

ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
27.02.2011, 19:35     Калькулятор #9
parkito, strcmp сравнивает две строки типа char* - при равенстве возвращает 0, если первая меньше второй - отрицательное число, если первая больше второй - положительное число.
!strcmp(...,...) эквивалентно strcmp(..., ...) == 0 => проверяем на равенство.
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
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);
 
 
 
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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();
 
 
 
}
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
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)
{}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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);
}
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
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);
 
 
 
 
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
27.02.2011, 21:40     Калькулятор #15
parkito, Эх.
Это
C++
1
else if (b=='COS')
Не может работать. И не будет.
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
27.02.2011, 21:54  [ТС]     Калькулятор #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
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
145
#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=='V')
        {koren();}
 else if (b =='S')
         {sinus();}
else if (b=='C')
        {cosinus();}
else if(b == 'E')
   break;
else
    cout<<"Ошибка. Нет такой операции"<<endl;
}
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);
 
 
 
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2011, 16:17     Калькулятор
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Alex1205
 Аватар для Alex1205
6 / 6 / 1
Регистрация: 14.01.2011
Сообщений: 81
28.02.2011, 16:17     Калькулятор #17
#include<iostream>
#include<conio.h>
using namespace std;
int add(int x, int y)
{
int a = x+y;
return a;
}
int sub(int x, int y)
{
int a=x-y;
return a;
}
int mult(int x, int y)
{
int a = x*y;
return a;
}
double diviz(double x, double y)
{
double a = x/y;
return a;
}


int main()
{
int a, b;
cout <<"Enter a, b: "<<endl;
cin>>a>>b;
char c = getch();
switch(c)
{
case '+': cout<<add(a,b);
break;
case '-': cout<<sub(a, b);
break;
case '*': cout<<mult(a, b);
break;
case '/': cout<<diviz(a, b);
break;
default: cout<<"Action? {+ - * /}";
}

getch();
return 0;
}
Yandex
Объявления
28.02.2011, 16:17     Калькулятор
Ответ Создать тему
Опции темы

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