-
Notifications
You must be signed in to change notification settings - Fork 0
/
counting.h
35 lines (28 loc) · 1.05 KB
/
counting.h
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
#ifndef COUNTING_H
#define COUNTING_H
#pragma once
#include <stack>
#include <QString>
#include <cmath>
using namespace std;
struct Priority;
/*метод get_next_elem возвращает первый по порядку элемент арифметического выражения:
число, арифметическую операцию или скобку.
При этом из исходного выражения убирается этот первый элемент.*/
QString get_next_elem(QString& expr);
class Alg {
private:
Priority* p;
QString rpn[20];
int k = 0;
int get_rang(QString a);
bool is_num(QString expr);
bool is_oper(QString expr);
bool is_binary(QString oper); //проверка операторов на бинарность / унарность
QString* to_rpn(QString exp); //выражение, приведенное к виду обратной польской записи
public:
Alg();
~Alg();
QString count(QString torpn); //вычисления
};
#endif // COUNTING_H