Advertisement
Pandarec13

444

Dec 18th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <map>
  5. using namespace std;
  6.  
  7. string entry_1(map<int,vector <int> > &mapp,int *min,int *max) {
  8. vector <int> v;
  9. string b = "";
  10. cout << "Сколько будет переменных : ";
  11. int c;
  12. cin >> c;
  13. system("cls");
  14.  
  15. cout << "Вводятся только коэффиценты и степени переменных" << endl;
  16. int a;
  17. int k;
  18.  
  19.  
  20.  
  21. for (int i = 0; i < c; i++) {
  22. a = 0;
  23. k = 0;
  24. v.clear();
  25.  
  26. cout << "Введите множетель : ";
  27. cin >> a;
  28. if (a > 0 && i>0) b += "+";
  29. b += to_string(a);
  30. //a = 0;
  31. v.push_back(a);
  32. cout << "Введите степень переменной Х : ";
  33. cin >> k;
  34. if (k < *min)*min = k;
  35. if (k > *max) *max = k;
  36. b += "x^";
  37. b += to_string(k);
  38. //a = 0;
  39. mapp[k] = v;
  40. //v.clear();
  41.  
  42. }
  43.  
  44. return b;
  45. }
  46.  
  47. string entry_2(map<int, vector <int> > &mapp_2,int *min_2,int *max_2) {
  48. vector <int> v;
  49. string b = "";
  50. cout << "Сколько будет переменных : ";
  51. int c;
  52. cin >> c;
  53. cout << "Вводятся только коэффиценты и степени переменных" << endl;
  54. int a;
  55. int k;
  56.  
  57.  
  58. for (int i = 0; i < c; i++) {
  59. a = 0;
  60. k = 0;
  61. cout << "Введите множетель : ";
  62. cin >> a;
  63. if (a > 0 && i > 0) b += "+";
  64. b += to_string(a);
  65. //a = 0;
  66. v.push_back(a);
  67. cout << "Введите степень переменной Х : ";
  68. cin >> k;
  69. if (k < *min_2)*min_2 = k;
  70. if (k > *max_2) *max_2 = k;
  71. b += "x^";
  72. b += to_string(k);
  73. //a = 0;
  74. mapp_2[k] = v;
  75.  
  76. }
  77.  
  78. return b;
  79. }
  80. string sum(map<int, vector <int> > &mapp, map<int, vector <int> > &mapp_2,int min, int max,int min_2,int max_2) {
  81. string anya = "";
  82. // найдем границы, в которых есть клчи у обоих множеств
  83. if (max == min && max_2 == min_2) {
  84. if (min_2 < min)min = min_2;
  85. if (max_2 > max)max = max_2;
  86. }
  87. else {
  88. if (min_2 < min && min_2 < max && min_2 < max_2) min = min_2;
  89. else if (max < min && max < max_2&& max < min_2) min = max;
  90. else if (max_2 < min && max_2 < max&& max_2 < min_2) min = max_2;
  91.  
  92. if (min_2 > min && min_2 > max && min_2 > max_2) max = min_2;
  93. else if (min > max && min > max_2 && min > min_2) max = min;
  94. else if (max_2 > min && max_2 > max&& max_2 > min_2) max = max_2;
  95. }
  96. cout << "MAX = " << max << endl;
  97. cout << "MIN = " << min<<endl;
  98.  
  99.  
  100.  
  101. int summa;// сумма элементов при одном ключе
  102.  
  103. for (int p = min; p <= max; p++) {
  104. summa = 0;
  105.  
  106. for (int i = 0; i < mapp[p].size(); i++) {
  107. cout << "mapp["<<p<<"].at("<<i<<")"<< mapp[p].at(i) << endl;
  108. summa += mapp[p].at(i);
  109. if (mapp.find(p) != mapp.end()) {
  110. cout << "---------->" << i << endl;
  111. cout << mapp[2].at(0) << " " << mapp[2].at(1) << endl;
  112. }
  113.  
  114. }
  115.  
  116. for (int l = 0; l < mapp_2[p].size(); l++) {
  117. cout << "mapp[" << p << "].at(" << l << ")" << mapp_2[p].at(l) << endl;
  118. summa += mapp_2[p].at(l);
  119.  
  120. }
  121.  
  122. anya += to_string(summa);
  123. anya += "x^";
  124. anya += to_string(p);
  125. if (summa > 0 && p<max)anya += "+";
  126.  
  127. cout<<"summa по ключу "<<p<<" = " << summa << endl;
  128.  
  129.  
  130. }
  131.  
  132. cout << anya << endl;
  133. system("pause");
  134. return 0;
  135.  
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement