Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Nicksetone
0 / 0 / 1
Регистрация: 21.11.2012
Сообщений: 1
#1

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

24.11.2012, 12:46. Просмотров 995. Ответов 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
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <math.h>
using namespace std;
const int MAX=7, Max=255;
bool EXIT(bool);
 
void main(){
double Res=0, Dig;
bool Exit=false;
char str[MAX];
char History[Max];
char Oper='\0';
   
   History[0]='\0';
   while (Exit!=true){
           cout<<"Input: ";
           cin>>str;
           strcat(History,str);
 
                if(str[0]=='='){
                     cout<<"Result: "<<History<<Res<<endl;
                     Exit=EXIT(Exit);
                     str[0]='\0';
                     History[0]='\0';
                }
        
            Dig=atof(str);
 
                if(Dig==0 && str[0]!='0'){
                      if(strstr("+-*/%^",str)!=0 || strcmp("cos",str)==0 
                                           || strcmp("sin",str)==0 ||strcmp("tan",str)==0 
                                           || strcmp("log",str)==0){
 
                          if(strcmp("cos",str)==0)
                                Res=cos(Res);
                             if(strcmp("sin",str)==0)
                                Res=sin(Res);
                             if(strcmp("tan",str)==0)
                                Res=tan(Res);
                             if(strcmp("log",str)==0)
                                Res=log(Res);
                      }
                      else{
                          cout<<"Not correct operation: "<<str<<endl;
                                Exit=EXIT(Exit);
                          str[0]='\0';
                          History[0]='\0';
                      }
                      
                      Oper=str[0];
                }
 
                else
                 if(Oper!='\0'){
                            if (Oper=='+') Res+=Dig;
                            if (Oper=='-') Res-=Dig;
                            if (Oper=='*') Res*=Dig;
                            if (Oper=='/') Res/=Dig;  
                 if (Oper=='%') Res=int(Res)%(int)Dig;
                 if (Oper=='^') Res=pow(Res,Dig);
                            Oper='\0';
                            }
                      else
                           Res=Dig;
                      
   }
}
 
bool EXIT(bool Exit){
    char k;
    cout<<endl<<"Do you want exit?(y/n): ";
       cin>>k;
    cout<<endl;
        if(k=='y')
           return Exit=true;
}
Вот алгоритм для скобок:
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
while (not exit)
    history=empty;
    result=calc();
    output result
function calc: double{
operation=empty;
result=0;
while (not exit)
{input string;
history=history+string;
if (string ==()
    dig=calc()
if (string==))
    return result;
if (string not digit) then
    if (string is func)
        result=function(result)
    else 
operation=string;
else
    if (operation==empty)
        result=string
    else
if (operation==+) then result=result+string;
if (sign==*) then result=result*b;
if (sign==/) then result=result/b;
if (sign==%) then result=result%b;
if (sign===) then output history; history=empty;
operation=empty;
output result;}}
 Комментарий модератора 
Правила форума п. 5.5: Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2012, 12:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Калькулятор (C++):

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

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

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

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

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

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

1
ramazan05duldug
39 / 39 / 20
Регистрация: 23.04.2012
Сообщений: 462
Записей в блоге: 2
24.11.2012, 13:15 #2
Программа сама вообще работает. Просто в начале:
C++
1
void main()
, а должно быть
C++
1
int main()
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2012, 13:15
Привет! Вот еще темы с решениями:

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

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

калькулятор
народ помогите ошибку найти)) полюбому какой нить пустяк а я чета не догоняю))...

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


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

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

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