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

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

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

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

27.02.2011, 18:33. Просмотров 2138. Ответов 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 << "Для продолжения нажмите .. ";
 
 
}
У меня получаются там ошибки, которые на мой взгляд обсурдны (это чисто непрофессиональный взгляд). Как эти ошибки исправить ?

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

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

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

Калькулятор на C++ - C++
Доброго времени суток! У меня возник вопрос. При вводе чисел в cmd, они у меня просто складываются, но код (мне кажется) правильный. Думаю...

Калькулятор в С++ - C++
Доброго времени суток. Нужно разработать класс «Калькулятор» Вид данных: квадрат; Необходимо осуществить ввод и вывод координат...

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

Калькулятор - C++
Добрый вечер всем! Я решил написать калькулятор, но возникла одна проблема: я хочу написать чтобы он решал вот такие примеры: а + b а +...

Калькулятор - C++
Как создать калькулятор? Самый обычный, какой есть в стандартных программах, не инженерный. С дизайном разобралась, а с кодом вообще не...

калькулятор - C++
Всем привет, извините, что постю сюда эту тему, но выхода нет((( Проблема состоит в том что надо сделать калькулятор из множества действий...

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

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

Не по теме:

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

ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
27.02.2011, 19:35     Калькулятор #9
parkito, strcmp сравнивает две строки типа char* - при равенстве возвращает 0, если первая меньше второй - отрицательное число, если первая больше второй - положительное число.
!strcmp(...,...) эквивалентно strcmp(..., ...) == 0 => проверяем на равенство.
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 691
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
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 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
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 691
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
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 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
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 691
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
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
27.02.2011, 21:40     Калькулятор #15
parkito, Эх.
Это
C++
1
else if (b=='COS')
Не может работать. И не будет.
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 691
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++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { ...

Калькулятор - C++
В идеале, то что представлено ниже является калькулятором с 4-мя действиями (+,-,*,/) и с произвольным количеством переменных. Но вот не...

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

Калькулятор - 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


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

Или воспользуйтесь поиском по форуму:
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     Калькулятор
Ответ Создать тему
Опции темы

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