Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #define _USE_MATH_DEFINES
- #include <math.h>
- using namespace std;
- void sortmas(int k, int l, double* mas1, int s);
- int imin(int s, double* mas1);
- int imax(int s, double* mas1);
- void kratno(double** mas1, int x1, int y1, double** mas2, int x2, int y2);
- void nekratno(double** mas1, int x1, int y1, double** mas2, int x2, int y2);
- int main()
- {
- setlocale(LC_ALL, "Russian");
- long n;
- char ex = 'n';
- do {
- cout << "Введите номер задания: " << endl;
- char task;
- cin >> task;
- switch (task)
- {
- case '1': {
- int n;
- cout << "Enter n: " << endl;
- cin >> n;
- double* mas = new double[n];
- cout << "Enter mas: " << endl;
- for (int i = 0; i < n; i++)
- {
- cin >> mas[i];
- }
- double max = mas[0];
- double min = mas[0];
- int low, high;
- low = imin(n, mas);
- high = imax(n, mas);
- sortmas(low, high, mas, n);
- break;
- }
- case '2': {
- int n1, m1;
- cout << "Enter n1 and m1: " << endl;
- cin >> n1 >> m1;
- cout << "Enter mas A: " << endl;
- double** A = new double* [n1];
- for (int i = 0; i < n1; i++)
- A[i] = new double[m1];
- for (int i = 0; i < n1; i++)
- for (int j = 0; j < m1; j++)
- cin >> A[i][j];
- int n2, m2;
- cout << "Enter n2 and m2: " << endl;
- cin >> n2 >> m2;
- cout << "Enter mas B: " << endl;
- double** B = new double* [n2];
- for (int i = 0; i < n2; i++)
- B[i] = new double[m2];
- for (int i = 0; i < n2; i++)
- for (int j = 0; j < m2; j++)
- cin >> B[i][j];
- double sumA = 0;
- double sumB = 0;
- for (int i = 0; i < n1; i++)
- for (int j = 0; j < m1; j++)
- sumA += A[i][j];
- for (int i = 0; i < n2; i++)
- for (int j = 0; j < m2; j++)
- sumB += B[i][j];
- double p;
- double rez = modf(sumA / sumB, &p);
- if (rez == 0)
- {
- kratno(A, n1, m1, B, n2, m2);
- }
- else
- {
- nekratno(A, n1, m1, B, n2, m2);
- }
- for (int i = 0; i < n1; i++)
- {
- cout << endl;
- for (int j = 0; j < m1; j++)
- cout << A[i][j] << " ";
- }
- for (int i = 0; i < 3; i++)
- {
- cout << endl;
- }
- for (int i = 0; i < n2; i++)
- {
- cout << endl;
- for (int j = 0; j < m2; j++)
- cout << B[i][j] << " ";
- }
- break;
- }
- default: {cout << "Нет такой задачи.\n"; } break;
- }
- cout << "Если вы хотите выйти, нажмите \'y\', в противном случае-любую другую клавишу" << endl;
- cin.ignore(100, '\n');
- cin >> ex;
- } while (ex != 'y');
- return 0;
- }
- void sortmas(int k, int l, double* mas1, int s)
- {
- int b = 0;
- for (int i = k; i <= l - 3; i++)
- {
- for (int j = k + 1; j <= l - 2 - b; j++)
- if (mas1[j] < mas1[j + 1])
- {
- int t = mas1[j];
- mas1[j] = mas1[j + 1];
- mas1[j + 1] = t;
- }
- b++;
- }
- for (int i = 0; i < s; i++)
- {
- cout << mas1[i] << " ";
- }
- }
- int imin(int s, double* mas1)
- {
- int minx = -1;
- double min = mas1[0];
- for (int i = 0; i < s; i++)
- {
- if (fabs(mas1[i]) <= min)
- {
- min = mas1[i];
- minx = i;
- }
- }
- return minx;
- }
- int imax(int s, double* mas1)
- {
- int maxx = -1;
- double max = mas1[0];
- for (int i = 0; i < s; i++)
- {
- if (fabs(mas1[i]) >= max)
- {
- max = mas1[i];
- maxx = i;
- }
- }
- return maxx;
- }
- void kratno(double** mas1, int x1, int y1, double** mas2, int x2, int y2)
- {
- double temp1, temp2;
- for (int i = 0; i < y1; i++)
- {
- temp1 = mas1[0][i];
- mas1[0][i] = mas1[x1 - 1][i];
- mas1[x1 - 1][i] = temp1;
- }
- for (int i = 0; i < y2; i++)
- {
- temp2 = mas2[0][i];
- mas2[0][i] = mas2[x2 - 1][i];
- mas2[x2 - 1][i] = temp2;
- }
- }
- void nekratno(double** mas1, int x1, int y1, double** mas2, int x2, int y2)
- {
- double temp1, temp2;
- for (int i = 0; i < y1; i++)
- {
- temp1 = mas1[1][i];
- mas1[1][i] = mas1[x1 - 2][i];
- mas1[x1 - 2][i] = temp1;
- }
- for (int i = 0; i < y2; i++)
- {
- temp2 = mas2[1][i];
- mas2[1][i] = mas2[x2 - 2][i];
- mas2[x2 - 2][i] = temp2;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement