Advertisement
Guest User

Untitled

a guest
May 25th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. #include <QCoreApplication>
  2. #include <iostream>
  3. #include <QVector>
  4.  
  5. using namespace std;
  6.  
  7.  
  8.  
  9. class Equation
  10. {
  11. QString MainStr;
  12. public:
  13. Equation(QString a)
  14. {
  15. MainStr = a;
  16. }
  17. ~Equation(){}
  18.  
  19. QVector<QString> *VecR(QStringList *list)
  20. {
  21. QVector <QString> *vec = new QVector<QString>;
  22. for(int i = 0; i < list->size(); i++)
  23. {
  24. vec->push_back(list->at(i));
  25. }
  26. return vec;
  27. }
  28.  
  29.  
  30. void Operation(QVector <QString> *List, int i, int action)
  31. {
  32. double arg1 = List->at(i - 2).toDouble();
  33. double arg2 = List->at(i - 1).toDouble();
  34. if(action == 1)
  35. arg1 = arg1 / arg2;
  36. if(action == 2)
  37. arg1 = arg1 * arg2;
  38. List->replace(i, QString::number(arg1));
  39. List->remove(i-1);
  40. List->remove(i-2);
  41. }
  42.  
  43.  
  44. void Act(QVector <QString> *List, int i)
  45. {
  46. if(List->at(i) == "/")
  47. {
  48. Operation(List, i, 1);
  49. }
  50. if(List->at(i) == "*")
  51. {
  52. Operation(List, i, 2);
  53. }
  54.  
  55.  
  56.  
  57.  
  58. }
  59.  
  60. void Solution()
  61. {
  62. QStringList *list = new QStringList;
  63. *list = MainStr.split(" ");
  64. QVector <QString> *List = VecR(list);
  65. bool ok;
  66. for(int i = 0; i < List->size(); i++)
  67. {
  68. if(List->at(i).toDouble(&ok))
  69. continue;
  70. else
  71. {
  72. Act(List, i);
  73. i = 0;
  74. }
  75. }
  76.  
  77. for(int i = 0; i < List->size(); ++i)
  78. {
  79. cout << " " << List->at(i).toStdString();
  80. }
  81.  
  82. }
  83. };
  84.  
  85. int main(int argc, char *argv[])
  86. {
  87. QCoreApplication a(argc, argv);
  88. Equation b("6 3 / 3 3 * *");
  89. b.Solution();
  90.  
  91.  
  92.  
  93.  
  94. return a.exec();
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement