Найти сумму всех элементов матрицы (желательно REAL) и заменить ею все диагональные элементы этой матрицы - PascalABC.NET
Формулировка задачи:
Найти сумму всех элементов матрицы (желательно REAL) и заменить ею все диагональные элементы этой матрицы.
Вот, что получилось, но только одна диагональ заменяется, а нужно сразу две. И желательно чтобы матрица была REAL.
Уже сделал сам, вот только не в REAL, а в INTEGER.
Решение задачи: «Найти сумму всех элементов матрицы (желательно REAL) и заменить ею все диагональные элементы этой матрицы»
textual
Листинг программы
uses
crt;
const
n = 10;
var
a: array [1..n, 1..n] of real;
s:real;
i, j: integer;
begin
writeln('Исходная матрица:');
randomize;
for i := 1 to n do
begin
for j := 1 to n do
begin
a[i, j] := -4+17*random;
write(a[i, j]:7:2);
end;
writeln;
end;
s := 0;
for i := 1 to n do
for j := 1 to n do
s := s + a[i, j];
writeln('Сумма матрицы: ', s:0:2);
writeln('Матрица с заменёнными диагональными элементами:');
for i := 1 to n do
for j := 1 to n do
if (i + j = n + 1) or (i = j) then a[i, j] := s;
for i := 1 to n do
begin
for j := 1 to n do
write(a[i, j]:7:2);
writeln;
end;
end.
Объяснение кода листинга программы
В этом коде выполняются следующие действия:
- Объявляются переменные: a - массив размером [1..n, 1..n] для хранения элементов матрицы типа real; s - переменная типа real для хранения суммы элементов матрицы; i, j - переменные типа integer для индексации элементов матрицы.
- Выводится сообщение об исходной матрице и её элементах.
- Заполняются элементы матрицы случайными числами от -4 до 17 с шагом 1.
- Суммируются все элементы матрицы и сохраняются в переменной s.
- Выводится сообщение о сумме элементов матрицы.
- Заменяются диагональные элементы матрицы на значение переменной s.
- Выводится сообщение о матрице с заменёнными диагональными элементами и её элементах.