Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- #include <map>
- using namespace std;
- string entry_1(map<int,vector <int> > &mapp,int *min,int *max) {
- vector <int> v;
- string b = "";
- cout << "Сколько будет переменных : ";
- int c;
- cin >> c;
- system("cls");
- cout << "Вводятся только коэффиценты и степени переменных" << endl;
- int a;
- int k;
- for (int i = 0; i < c; i++) {
- a = 0;
- k = 0;
- v.clear();
- cout << "Введите множетель : ";
- cin >> a;
- if (a > 0 && i>0) b += "+";
- b += to_string(a);
- //a = 0;
- v.push_back(a);
- cout << "Введите степень переменной Х : ";
- cin >> k;
- if (k < *min)*min = k;
- if (k > *max) *max = k;
- b += "x^";
- b += to_string(k);
- //a = 0;
- mapp[k] = v;
- //v.clear();
- }
- return b;
- }
- string entry_2(map<int, vector <int> > &mapp_2,int *min_2,int *max_2) {
- vector <int> v;
- string b = "";
- cout << "Сколько будет переменных : ";
- int c;
- cin >> c;
- cout << "Вводятся только коэффиценты и степени переменных" << endl;
- int a;
- int k;
- for (int i = 0; i < c; i++) {
- a = 0;
- k = 0;
- cout << "Введите множетель : ";
- cin >> a;
- if (a > 0 && i > 0) b += "+";
- b += to_string(a);
- //a = 0;
- v.push_back(a);
- cout << "Введите степень переменной Х : ";
- cin >> k;
- if (k < *min_2)*min_2 = k;
- if (k > *max_2) *max_2 = k;
- b += "x^";
- b += to_string(k);
- //a = 0;
- mapp_2[k] = v;
- }
- return b;
- }
- string sum(map<int, vector <int> > &mapp, map<int, vector <int> > &mapp_2,int min, int max,int min_2,int max_2) {
- string anya = "";
- // найдем границы, в которых есть клчи у обоих множеств
- if (max == min && max_2 == min_2) {
- if (min_2 < min)min = min_2;
- if (max_2 > max)max = max_2;
- }
- else {
- if (min_2 < min && min_2 < max && min_2 < max_2) min = min_2;
- else if (max < min && max < max_2&& max < min_2) min = max;
- else if (max_2 < min && max_2 < max&& max_2 < min_2) min = max_2;
- if (min_2 > min && min_2 > max && min_2 > max_2) max = min_2;
- else if (min > max && min > max_2 && min > min_2) max = min;
- else if (max_2 > min && max_2 > max&& max_2 > min_2) max = max_2;
- }
- cout << "MAX = " << max << endl;
- cout << "MIN = " << min<<endl;
- int summa;// сумма элементов при одном ключе
- for (int p = min; p <= max; p++) {
- summa = 0;
- for (int i = 0; i < mapp[p].size(); i++) {
- cout << "mapp["<<p<<"].at("<<i<<")"<< mapp[p].at(i) << endl;
- summa += mapp[p].at(i);
- if (mapp.find(p) != mapp.end()) {
- cout << "---------->" << i << endl;
- cout << mapp[2].at(0) << " " << mapp[2].at(1) << endl;
- }
- }
- for (int l = 0; l < mapp_2[p].size(); l++) {
- cout << "mapp[" << p << "].at(" << l << ")" << mapp_2[p].at(l) << endl;
- summa += mapp_2[p].at(l);
- }
- anya += to_string(summa);
- anya += "x^";
- anya += to_string(p);
- if (summa > 0 && p<max)anya += "+";
- cout<<"summa по ключу "<<p<<" = " << summa << endl;
- }
- cout << anya << endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement