# Untitled

a guest
Jan 23rd, 2020
98
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;