Работа с матрицей - PascalABC.NET
Формулировка задачи:
Помогите решить ошибку в коде, в строке 31
Решение задачи: «Работа с матрицей»
textual
Листинг программы
const n = 5; var a: array [1..n, 1..n] of real; i, j, ser: integer; s: real; k: real; im, jm: real; begin writeln('Исходная матрица'); for i := 1 to n do begin for j := 1 to n do begin a[i,j]:=10*random; write(a[i,j]:5:2); end; writeln; end; s:=0; k:=0; for i:=2 to n do for j:=1 to i-1 do begin s:=s+a[i,j]; k:=k+1; end; s:=s/k; writeln('Среднее значение ниже главной диагонали=',s:0:2); writeln('Измененная матрица'); for i:=1 to n do begin for j:=1 to n do begin if j=i then a[i,j]:=s; write(a[i,j]:5:2); end; writeln; end; end.
Объяснение кода листинга программы
- Задается размерность матрицы n=5
- Создается матрица a размером 5x5, заполненная случайными числами от 0 до 10
- Выводится исходная матрица a на экран
- Инициализируются переменные s=0, k=0; для подсчета суммы и количества элементов главной диагонали
- Два вложенных цикла проходят по элементам матрицы a, начиная с 2-го элемента главной диагонали и до 1-го элемента включительно
- В каждом цикле суммируется значение элемента a[i,j] и увеличивается счетчик k
- После завершения циклов, вычисляется среднее значение s=sum/k
- Выводится на экран среднее значение s
- Два вложенных цикла проходят по элементам матрицы a, начиная с 1-го элемента и до n-го элемента включительно
- Если значение j=i, то элемент a[i,j] заменяется на среднее значение s
- Выводится измененная матрица a на экран