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

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

Восстановить пароль Регистрация
 
Nicksetone
Сообщений: n/a
24.11.2012, 12:46     Калькулятор #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: Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2012, 12:46     Калькулятор
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ramazan05duldug
35 / 35 / 8
Регистрация: 23.04.2012
Сообщений: 441
Записей в блоге: 2
24.11.2012, 13:15     Калькулятор #2
Программа сама вообще работает. Просто в начале:
C++
1
void main()
, а должно быть
C++
1
int main()
Yandex
Объявления
24.11.2012, 13:15     Калькулятор
Ответ Создать тему
Опции темы

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