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

Помощь с функцией - C++

Восстановить пароль Регистрация
 
hofmn
Helter Skelter
 Аватар для hofmn
61 / 61 / 1
Регистрация: 19.09.2012
Сообщений: 133
21.11.2012, 10:07     Помощь с функцией #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
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <cmath>
using namespace std;
 
const int MaxLength = 10;
 
int main ()
        {
        int Count = 0;
                double Result = 0, Digit;
                bool EXIT = false;
                char History[255];
                History[0] = '\0';
                char String[MaxLength], Operation = '\0';
                
                while (!EXIT)
                {
                      cout << "Input: ";
                      cin >> String;
                      
                      strcat (History, String);  
                      Count += strlen(String);
                       
                      if (String[0] == '=') EXIT = true;        
                        
                      Digit = atof(String);
            
            
            
                      if (Digit == 0 && String[0] != '0') 
                        {
                            if (strcmp(String, "sin") == 0)
                                Result = sin(Result);
                            if (strcmp(String, "cos") == 0)
                                Result = cos(Result);
                            if (strcmp(String, "tan") == 0)
                                Result = tan(Result);
                            if (strcmp(String, "log") == 0)
                                Result = log(Result);
                          
                            Operation = String[0];
                        }
                        
                      else if (Operation != '\0' && strlen(String) == 1)
                       {   
                            if (Operation == '+') Result += Digit;
                            if (Operation == '-') Result -= Digit;
                            if (Operation == '*') Result *= Digit;
                            if (Operation == '/') Result /= Digit;
                            if (Operation == '^') Result = pow(Result, Digit);
                            Operation = '\0';
                       }
                       
                       else 
                            Result = Digit;           
                }
                
                cout << "Result: ";
                for (int i = 0; i < Count; i++)
                    cout << History[i];
                cout << Result;
         return 0;
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2012, 10:07     Помощь с функцией
Посмотрите здесь:

C++ задача с функцией
Работа с классами. Нужна помощь с функцией C++
Помогите с функцией. C++
C++ Работа с функцией
C++ Загвостка с функцией Y=f(xi)
Ошибка с функцией C++
работа с функцией в С++ C++
C++ Ошибка с функцией

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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