На основе элементов исходной матрицы вычислить значение выражения по заданному правилу - Free Pascal
Формулировка задачи:
1)Дана действительная квадратная матрица порядка n. Получить X1Xn+X2Xn-1+...+XnX1, где Xk-наибольшее значение параметров k-й строки данной матрицы от первого до k-го элемента.
Решение задачи: «На основе элементов исходной матрицы вычислить значение выражения по заданному правилу»
textual
Листинг программы
const m = 19; var a: array [1..m, 1..m] of integer; x: array [1..m] of integer; n, i, j: integer; s: int64; begin randomize; repeat write('n in [1..', m, ']; n = '); readln(n) until (n >= 1) and (n <= m); writeln('Source matrix:'); for i := 1 to n do begin for j := 1 to n do begin a[i, j] := -99 + random(199); write(a[i, j]:4) end; writeln end; for i := 1 to n do begin x[i] := a[i, 1]; for j := 2 to i do if x[i] < a[i, j] then x[i] := a[i, j] end; s := 0; for i := 1 to n div 2 do s := s + x[i] * x[n - i + 1]; s := 2 * s; if odd(n) then s := s + sqr(x[n div 2 + 1]); write('s = ', s); readln end.
Объяснение кода листинга программы
В этом коде:
- Объявлены следующие переменные:
m
- размерность матрицы (19);a
- матрица (19x19);x
- массив (19);n, i, j
- счётчики;s
- сумма;int64
- тип данных для переменнойs
(целочисленный с плавающей точкой).
- Выполняется заполнение матрицы
a
случайными числами от -99 до 99. - Выполняется цикл, в котором пользователь вводит число
n
от 1 до 19. - Выводится исходная матрица
a
(значения разделены пробелами, строки переносятся на новую строку). - В первой половине массива
x
сохраняются значения главной диагонали матрицыa
. - Во второй половине массива
x
сохраняются максимальные значения из соответствующих столбцов матрицыa
. - Выполняется цикл, в котором вычисляется сумма
s
элементов массиваx
. - Если число
n
нечётное, то кs
добавляется квадрат последнего элемента массиваx
. - Выводится значение переменной
s
. - Программа ожидает ввода с клавиатуры.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д