программа которая находит сумму элементов матрицы А, расположенных ниже побочной диагонали
Дана квадратная матрица А(n,n) вещественных чисел где n<10. Разработайте программу которая находит сумму элементов матрицы А, расположенных ниже побочной диагонали Как сделать сумму расположенных ниже побочной диагонали
program Project1;
const
maxelem = 10;
var
a: array[1..maxelem,1..maxelem] of real; { Переменная для хранения массива.}
n: integer;
i,j: integer;
begin
write('Введите значение размерности матрицы: (не более ',maxelem,'): ');
Readln(n);
for i:= 1 to n do
for j:= 1 to n do
begin
write('Введите значение элемента [',i,',',j,']: ');
Readln(a[i,j]); { Ввод значений в двумерный массив.}
end;
writeln('Исходная матрица: ');
for i:= 1 to n do
begin
for j:= 1 to n do
write(a[i,j]:7:2); { Вывод двумерного массива в консоль.}
Writeln;
end;
writeln('Элементы побочной диагонали: ');
for i:= 1 to n do
write(a[n-i+1,i]:7:2);
Readln;
end.
Ответы (2 шт):
Автор решения: MBo
→ Ссылка
Ниже побочной диагонали располагаются элементы, у которых номер столбца больше, чем n-номер строки+1.
Их можно суммировать при вводе или выводе, проверяя if j > n - i + 1
Автор решения: Ilya Filimonov
→ Ссылка
Да, всё разобрался)
program Project1;
const
maxelem = 10;
var
a: array[1..maxelem,1..maxelem] of real; { Переменная для хранения массива.}
n: integer; { Переменная для хранения значения размерности матрицы. }
i,j: integer; { Вспомогательные переменные для организации циклов.}
sum: real; { Переменная для хранения значения суммы}
begin
write('Введите значение размерности матрицы: (не более ',maxelem,'): ');
repeat
Readln(n);
if (n < 1) or (n > maxelem) then {Условие для проверки числа на вхождение в заданный диапазон}
writeln('Ошибка ввода! Повторите попытку.')
else
break;
until false;
for i:= 1 to n do
for j:= 1 to n do
begin
write('Введите значение элемента [',i,',',j,']: ');
Readln(a[i,j]); { Ввод значений в двумерный массив.}
end;
writeln('Исходная матрица: ');
for i:= 1 to n do
begin
for j:= 1 to n do
write(a[i,j]:7:2); { Вывод двумерного массива в консоль.}
Writeln;
end;
sum:= 0; { Установка переменной в начальное состояние}
for i:= 2 to n do
for j:= n-i+2 to n do
sum:= sum + a[i,j]; { Вычисление суммы элементов}
writeln('Сумма элементов, которые находятся ниже побочной диагонали: ', sum:0:2);
Readln;
end.