Написать программу на Pascal. Получить массив X1, X2, …, Xn по правилу Xi = 1, если сумма элементов i-го столбца матрицы больше их произведения, иначе Xi = 0. Найти также среднее арифметическое всех элементов матрицы.

Помогите111234 Помогите111234    3   07.12.2021 23:39    8

Ответы
tahliaderma tahliaderma  22.12.2023 18:30
Конечно! Вот решение задачи на Pascal:

```pascal
program MatrixCalculations;

const
n = 3; // размерность матрицы

var
matrix: array[1..n, 1..n] of Integer; // объявляем матрицу
X: array[1..n] of Integer; // объявляем массив X1, X2, ..., Xn
sum, product, average: Real; // объявляем переменные для хранения суммы, произведения и среднего арифметического

procedure FillMatrix;
var
i, j: Integer;
begin
// Заполняем матрицу случайными значениями от 0 до 9
for i := 1 to n do
begin
for j := 1 to n do
begin
matrix[i, j] := Random(10);
end;
end;
end;

procedure PrintMatrix;
var
i, j: Integer;
begin
// Выводим матрицу на экран
for i := 1 to n do
begin
for j := 1 to n do
begin
Write(matrix[i, j], ' ');
end;
Writeln;
end;
end;

procedure CalculateArray;
var
i, j: Integer;
begin
// Вычисляем массив X1, X2, ..., Xn по заданному правилу
for i := 1 to n do
begin
sum := 0; // обнуляем сумму перед каждым использованием
product := 1; // обнуляем произведение перед каждым использованием
for j := 1 to n do
begin
sum := sum + matrix[j, i]; // считаем сумму элементов i-го столбца
product := product * matrix[j, i]; // считаем произведение элементов i-го столбца
end;
if sum > product then
X[i] := 1 // присваиваем 1, если сумма больше произведения
else
X[i] := 0; // присваиваем 0, если сумма меньше или равна произведению
end;
end;

procedure CalculateAverage;
var
i, j: Integer;
begin
sum := 0; // обнуляем сумму перед каждым использованием
for i := 1 to n do
begin
for j := 1 to n do
begin
sum := sum + matrix[i, j]; // считаем сумму всех элементов матрицы
end;
end;
average := sum / (n * n); // вычисляем среднее арифметическое
end;

begin
Randomize; // инициализируем генератор случайных чисел
FillMatrix; // заполняем матрицу случайными значениями
Writeln('Исходная матрица:');
PrintMatrix; // выводим матрицу на экран

CalculateArray; // вычисляем массив X1, X2, ..., Xn
Writeln('Массив X1, X2, ..., Xn:');
for i := 1 to n do
begin
Write(X[i], ' ');
end;
Writeln;

CalculateAverage; // вычисляем среднее арифметическое
Writeln('Среднее арифметическое всех элементов матрицы:', average:0:2);
end.
```

В данной программе мы объявляем и инициализируем матрицу `matrix` размером `n` на `n`. Затем заполняем ее случайными значениями от 0 до 9 с помощью процедуры `FillMatrix`.

Далее, с использованием процедуры `PrintMatrix`, выводим матрицу на экран, чтобы проверить правильность заполнения.

Затем, с помощью процедуры `CalculateArray`, вычисляем массив `X1, X2, ..., Xn` по указанному правилу. В этой процедуре мы проходимся по каждому столбцу матрицы, считаем сумму и произведение его элементов, и присваиваем соответствующему элементу массива `X` значение 1, если сумма больше произведения, и 0 в противном случае.

После этого, с помощью процедуры `CalculateAverage`, мы вычисляем среднее арифметическое всех элементов матрицы. Мы проходимся по каждому элементу матрицы и суммируем их значения, а затем делим эту сумму на общее количество элементов матрицы.

Наконец, выводим массив `X1, X2, ..., Xn` и среднее арифметическое всех элементов матрицы на экран.

Эта программа поможет найти массив `X1, X2, ..., Xn` и среднее арифметическое всех элементов матрицы, основываясь на заданных правилах.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика