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