SHARE
TWEET

Untitled

a guest Jan 23rd, 2020 87 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Листай до "Общая часть для всех 5 задач"
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. double FunctionForTheFifthTask(double***& allArrays, int**& rowsAndColumns) {
  6.     double result = 0;
  7.     for (int i = 0; i < 3; i++) {
  8.         int composition = 1;
  9.         for (int j = rowsAndColumns[i][0] - 1; j >= 0; j--)
  10.             for (int k = rowsAndColumns[i][1] - 1; k >= rowsAndColumns[i][0] - j; k--)
  11.                 if (allArrays[i][j][k] > 0)
  12.                     composition *= allArrays[i][j][k];
  13.         result = (i < 2) ? result + composition : result - composition;
  14.     }
  15.     return result;
  16. }
  17.  
  18. double FunctionForTheFourthTask(double***& allArrays, int**& rowsAndColumns) {
  19.     double result = 0;
  20.     for (int i = 0; i < 3; i++) {
  21.         int composition = 1;
  22.         for (int j = 0; j < rowsAndColumns[i][0]; j++)
  23.             for (int k = 0; k < rowsAndColumns[i][1] - j - 1; k++)
  24.                 if (allArrays[i][j][k] > 0)
  25.                     composition *= allArrays[i][j][k];
  26.         result = (i < 2) ? result + composition : result * composition;
  27.     }
  28.     return result;
  29. }
  30.  
  31. double* FunctionForTheThirdTask(double***& allArrays, int**& rowsAndColumns, int sumOfColumns, int number) {
  32.     double* resultArray = new double[sumOfColumns];
  33.     int indexOfColumn = 0;
  34.     for (int i = 0; i < 3; i++) {
  35.         for (int j = 0; j < rowsAndColumns[i][1]; j++) {
  36.             int composition = 1;
  37.             for (int k = 0; k < rowsAndColumns[i][0]; k++)
  38.                 composition *= allArrays[i][k][j];
  39.             resultArray[indexOfColumn + j] = composition;
  40.         }
  41.         indexOfColumn += rowsAndColumns[i][1];
  42.     }
  43.     return resultArray;
  44. }
  45.  
  46. double* FunctionForTheSecondTask(double***& allArrays, int**& rowsAndColumns, int sumOfRows) {
  47.     double* resultArray = new double[sumOfRows];
  48.     int indexOfRow = 0;
  49.     for (int i = 0; i < 3; i++) {
  50.         for (int j = 0; j < rowsAndColumns[i][0]; j++) {
  51.             int sum = 0;
  52.             for (int k = 0; k < rowsAndColumns[i][1]; k++)
  53.                 sum += allArrays[i][j][k];
  54.             resultArray[indexOfRow + j] = sum;
  55.         }
  56.         indexOfRow += rowsAndColumns[i][0];
  57.     }
  58.     return resultArray;
  59. }
  60.  
  61. double* FunctionForTheFirstTask(double***& allArrays, int**& rowsAndColumns, int sumOfRows, double number) {
  62.     double* resultArray = new double[sumOfRows];
  63.     int indexOfRow = 0;
  64.     for (int i = 0; i < 3; i++) {
  65.         for (int j = 0; j < rowsAndColumns[i][0]; j++) {
  66.             int count = 0;
  67.             for (int k = 0; k < rowsAndColumns[i][1]; k++)
  68.                 if (allArrays[i][j][k] > number)
  69.                     count++;
  70.             resultArray[indexOfRow + j] = count;
  71.         }
  72.         indexOfRow += rowsAndColumns[i][0];
  73.     }
  74.     return resultArray;
  75. }
  76.  
  77. int main()
  78. {
  79.     // Общая часть для всех 5 задач
  80.     setlocale(LC_ALL, "russian");
  81.     int** rowsAndColumns = new int*[3];
  82.     string arrays[3]{ "первого", "второго", "третьего" };
  83.     double*** allArrays = new double** [3];
  84.     for (int i = 0; i < 3; i++) {
  85.         rowsAndColumns[i] = new int[2];
  86.         cout << "Введите количество строк для " << arrays[i] << " массива" << endl;
  87.         cin >> rowsAndColumns[i][0];
  88.         cout << "Введите количество столбцов для " << arrays[i] << " массива" << endl;
  89.         cin >> rowsAndColumns[i][1];
  90.         double** currentArray = new double* [rowsAndColumns[i][0]];
  91.         for (int j = 0; j < rowsAndColumns[i][0]; j++) {
  92.             currentArray[j] = new double[rowsAndColumns[i][1]];
  93.             cout << "Вводите элементы для " << (j + 1) << " строки" << endl;
  94.             for (int k = 0; k < rowsAndColumns[i][1]; k++)
  95.                 cin >> currentArray[j][k];
  96.         }
  97.         cout << "Массив сформирован!" << endl;
  98.         allArrays[i] = currentArray;
  99.     }
  100.  
  101.     cout << "-----" << endl;
  102.  
  103.     // Теперь индивидуально:
  104.  
  105.     // Для 1 задачи
  106.     int number1;
  107.     cout << "Введите number" << endl;
  108.     cin >> number1;
  109.     int sumOfRows1 = 0;
  110.     for (int i = 0; i < 3; i++)
  111.         sumOfRows1 += rowsAndColumns[i][0];
  112.     double* result1 = FunctionForTheFirstTask(allArrays, rowsAndColumns, sumOfRows1, number1);
  113.     cout << "Результат для 1 задачи: " << endl;
  114.     for (int i = 0; i < sumOfRows1; i++)
  115.         cout << result1[i] << " ";
  116.  
  117.     cout << "\n-----" << endl;
  118.  
  119.     // Для 2 задачи
  120.     int sumOfRows2 = 0;
  121.     for (int i = 0; i < 3; i++)
  122.         sumOfRows2 += rowsAndColumns[i][0];
  123.     double* result2 = FunctionForTheSecondTask(allArrays, rowsAndColumns, sumOfRows2);
  124.     cout << "Результат для 2 задачи: " << endl;
  125.     for (int i = 0; i < sumOfRows2; i++)
  126.         cout << result2[i] << " ";
  127.  
  128.     cout << "\n-----" << endl;
  129.  
  130.     // Для 3 задачи
  131.     int number3;
  132.     cout << "Введите number (В 3 задаче в моем случае никак не используется, так как не совсем ясно, что надо вывести)" << endl;
  133.     cin >> number3;
  134.     int sumOfColumns3 = 0;
  135.     for (int i = 0; i < 3; i++)
  136.         sumOfColumns3 += rowsAndColumns[i][0];
  137.     double* result3 = FunctionForTheThirdTask(allArrays, rowsAndColumns, sumOfColumns3, number3);
  138.     cout << "Результат для 3 задачи: " << endl;
  139.     for (int i = 0; i < sumOfColumns3; i++)
  140.         cout << result3[i] << " ";
  141.  
  142.     cout << "\n-----" << endl;
  143.  
  144.     // Для 4 задачи
  145.     cout << "Результат для 4 задачи: " << endl;
  146.     cout << FunctionForTheFourthTask(allArrays, rowsAndColumns);
  147.  
  148.     cout << "\n-----" << endl;
  149.  
  150.     // Для 5 задачи
  151.     cout << "Результат для 5 задачи: " << endl;
  152.     cout << FunctionForTheFifthTask(allArrays, rowsAndColumns);
  153.  
  154.     int any;
  155.     cin >> any;
  156. }
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