
Дан трёхмерный массив М(1:100, 1:20, 1:75) вещественного типа а) составте алгоритм вычисления
суммы всех положительных элементов массива б) составьте алгоритм, позволяющий выяснить, каких элементов - положительных или отрицательных- в массиве больше и на сколько.

Ответы на вопрос

#include <iostream>
#include <time.h>
using namespace std;
void print_array3(int*** mat, int n, int m, int z) {
for (size_t i = 0; i < n; i++) {
for (size_t j = 0; j < m; j++) {
for (size_t k = 0; k < z; k++) {
cout << mat[i][j][k] << " ";
}
cout << endl;
}
cout << endl;
}
}
pair<int***, pair<int, int>> auto_input_array3_and_counter_positive(int*** mat, int n, int m, int z) {
int sum = 0;
int positive = 0;
for (size_t i = 0; i < n; i++) {
for (size_t j = 0; j < m; j++) {
for (size_t k = 0; k < z; k++) {
mat[i][j][k] = rand() % 200 - 100;
if (mat[i][j][k] > 0) {
positive++;
sum += mat[i][j][k];
}
}
}
}
return make_pair(mat, make_pair(positive, sum));
}
int main()
{
srand(time(NULL));
setlocale(LC_ALL, "Russian");
int n = 100, m = 20, z = 75;
int*** array = new int** [n];
pair<int***, pair<int, int>> pair_array_and_positive_sum;
for (size_t i = 0; i < n; i++) {
array[i] = new int* [m];
for (size_t j = 0; j < m; j++) {
array[i][j] = new int[z];
}
}
pair_array_and_positive_sum = auto_input_array3_and_counter_positive(array, n, m, z);
print_array3(pair_array_and_positive_sum.first, n, m, z); // ЕСЛИ НЕ НАДО ВЫВОДИТЬ, ТО ЗАКОММЕНТИРОВАТЬ
cout << "Сумма всех положительных элементов в массиве равна: " << pair_array_and_positive_sum.second.second << endl;
if (pair_array_and_positive_sum.second.first > n* m* z - pair_array_and_positive_sum.second.first) {
cout << "Положительных чисел больше на " << n * m * z - (n * m * z - pair_array_and_positive_sum.second.first) << endl;
}
else {
cout << "Отрицательных чисел больше на " << n * m * z - 2 * pair_array_and_positive_sum.second.first << endl;
}
}



Для выполнения задачи, вы можете использовать следующие алгоритмы на языке псевдокода:
а) Алгоритм вычисления суммы всех положительных элементов массива:
yaml1. Инициализировать переменную sum_positives = 0
2. Для i от 1 до 100:
3. Для j от 1 до 20:
4. Для k от 1 до 75:
5. Если М(i, j, k) > 0, то
6. sum_positives = sum_positives + М(i, j, k)
7. Вывести sum_positives
Этот алгоритм проходит через каждый элемент массива и проверяет, является ли он положительным (больше нуля). Если элемент положителен, то его значение добавляется к сумме положительных элементов.
б) Алгоритм для определения, сколько больше положительных или отрицательных элементов в массиве:
markdown1. Инициализировать переменные count_positives = 0 и count_negatives = 0
2. Для i от 1 до 100:
3. Для j от 1 до 20:
4. Для k от 1 до 75:
5. Если М(i, j, k) > 0, то
6. count_positives = count_positives + 1
7. Иначе,
8. count_negatives = count_negatives + 1
9. Если count_positives > count_negatives, то
10. Вывести "Положительных элементов больше на " + (count_positives - count_negatives)
11. Иначе, если count_negatives > count_positives, то
12. Вывести "Отрицательных элементов больше на " + (count_negatives - count_positives)
13. Иначе,
14. Вывести "Положительных и отрицательных элементов одинаковое количество"
Этот алгоритм проходит через каждый элемент массива и подсчитывает количество положительных и отрицательных элементов. Затем он сравнивает эти счетчики и выводит сообщение о том, какой тип элементов (положительные или отрицательные) больше и на сколько.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili