Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/14: Рейтинг темы: голосов - 14, средняя оценка - 5.00
parkito
11 / 11 / 9
Регистрация: 22.03.2010
Сообщений: 693
1

Калькулятор

27.02.2011, 18:33. Просмотров 2501. Ответов 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
Ответы с готовыми решениями:

Как преобразовать обычный калькулятор в калькулятор использующий класс стек?
#include &lt;iostream&gt; int main(){ int a = 0; int b = 0; char...

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

Калькулятор
Всем привет ) Пожалуйста подскажите почему мы пишем &quot; scanf (&quot;%c&quot;, &amp;oper); ...

Калькулятор в С++
Ребята, у кого есть код калькулятора, киньте пожалуйста. Буду очень благодарен.

калькулятор
подскажите, как сделать чтоб при вводе с клавиатуры, можно было вводить только...

16
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
27.02.2011, 19:07 2
C++
1
else if (b == 'COS')
Аще убийственно. b - символ, который вы пытаетесь сравнить с тремя символами да еще и представленных под один, т.е. вы творите какую-то чушь. И так везде.
1
parkito
11 / 11 / 9
Регистрация: 22.03.2010
Сообщений: 693
27.02.2011, 19:11  [ТС] 3
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
else if (b == 'COS')
Аще убийственно. b - символ, который вы пытаетесь сравнить с тремя символами да еще и представленных под один, т.е. вы творите какую-то чушь. И так везде.
Если знак будет "+", то выполняется такое действие ...
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
27.02.2011, 19:14 4
parkito, Мм. Хорошо) Не везде. Почти везде. Конкретнее 'SQRT', 'SIN', 'COS'...
+ к тому у вас много ошибок из-за того, что эти функции пытаетесь применить к int, тогда как они только для типов с плав. запятой (double, float, long double).
А вернуться легко - просто цикл while(1) в функции main перед вводом чисел и знаков.
1
parkito
11 / 11 / 9
Регистрация: 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
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 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 / 9
Регистрация: 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
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
27.02.2011, 19:33 8
Вы понимаете, что вы делаете? Как перевести else if? Отвечаю сразу - "иначе если...". А что иначе? Альтернативой для чего является эта ветка?
Всё дерево ветвлений начинается всегда с if, не с else. else - альтернатива для предыдущего if.

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

Не по теме:

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

1
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
27.02.2011, 19:35 9
parkito, strcmp сравнивает две строки типа char* - при равенстве возвращает 0, если первая меньше второй - отрицательное число, если первая больше второй - положительное число.
!strcmp(...,...) эквивалентно strcmp(..., ...) == 0 => проверяем на равенство.
1
parkito
11 / 11 / 9
Регистрация: 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
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 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 / 9
Регистрация: 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
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 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 / 9
Регистрация: 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
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
27.02.2011, 21:40 15
parkito, Эх.
Это
C++
1
else if (b=='COS')
Не может работать. И не будет.
1
parkito
11 / 11 / 9
Регистрация: 22.03.2010
Сообщений: 693
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);
 
 
 
 
}
0
Alex1205
6 / 6 / 4
Регистрация: 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;
}
0
28.02.2011, 16:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2011, 16:17

калькулятор
Здравствуйте!! У меня возникла проблема. Мне нужно ввести выражение и занести...

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

Калькулятор
нужен калькулятор на языку С. уровень знания первый курс


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

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

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