SHARE
TWEET

Zadacha 16*+

Zorikto Sep 19th, 2019 (edited) 108 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //задача16
  2. #include <iostream>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     vector<char> help;
  10.     vector<char> res;
  11.  
  12.     char sim;
  13.    
  14.     while (cin >> sim) {
  15.         if (isalpha(sim) || isdigit(sim)) {
  16.             res.push_back(sim);
  17.         }
  18.  
  19.         if (((sim >= 42) && (sim <= 47)) || (sim == 94)) {
  20.             if (sim == '*') {
  21.                 sim = '.';
  22.             }
  23.             if (sim == '-') {
  24.                 sim = ',';
  25.             }
  26.             if (help.empty()) {
  27.                 help.push_back(sim);
  28.             }
  29.             else {
  30.                 if ((help.back() >= sim) || (help.back() == sim - 1) || (help.back() == sim + 1)) {
  31.                     while ((help.back() >= sim) || (help.back() == sim - 1) || (help.back() == sim + 1)) {
  32.                         res.push_back(help.back());
  33.                         help.pop_back();
  34.                         if (help.size() < 1) {
  35.                             break;
  36.                         }
  37.                     }
  38.                     help.push_back(sim);
  39.                 }
  40.                 else {
  41.                     help.push_back(sim);
  42.                 }
  43.             }
  44.         }
  45.  
  46.         if (sim == '(') {
  47.             help.push_back(sim);
  48.         }
  49.         if (sim == ')') {
  50.             while (help.back() != '(') {
  51.                 res.push_back(help.back());
  52.                 help.pop_back();
  53.             }
  54.             help.pop_back();
  55.         }
  56.  
  57.     }
  58.  
  59.     while (!help.empty()) {
  60.         res.push_back(help.back());
  61.         help.pop_back();
  62.     }
  63.  
  64.     for (int i = 0; i < res.size(); i++) {
  65.         if (res[i] == '.') {
  66.             res[i] = '*';
  67.         }
  68.         if (res[i] == ',') {
  69.             res[i] = '-';
  70.         }
  71.         cout << res[i];
  72.     }
  73.  
  74.     return 0;
  75. }
  76. //a+b - ab+
  77. //a*b+c - ab*c+
  78. //a*(b+c) - abc+*
  79. //a+b^c^d*e - abc^d^e*+
  80. //5-(a+b*c^2-1)+a - 5abc2^*+1--a+
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top