На основе элементов исходной матрицы вычислить значение выражения по заданному правилу - Free Pascal

Узнай цену своей работы

Формулировка задачи:

1)Дана действительная квадратная матрица порядка n. Получить X1Xn+X2Xn-1+...+XnX1, где Xk-наибольшее значение параметров k-й строки данной матрицы от первого до k-го элемента.

Решение задачи: «На основе элементов исходной матрицы вычислить значение выражения по заданному правилу»

textual
Листинг программы
  1. const m = 19;
  2.  
  3. var a: array [1..m, 1..m] of integer;
  4.     x: array [1..m] of integer;
  5.     n, i, j: integer;
  6.     s: int64;
  7.  
  8. begin
  9.   randomize;
  10.   repeat
  11.     write('n in [1..', m, '];  n = ');
  12.     readln(n)
  13.   until (n >= 1) and (n <= m);
  14.   writeln('Source matrix:');
  15.   for i := 1 to n do
  16.     begin
  17.       for j := 1 to n do
  18.         begin
  19.           a[i, j] := -99 + random(199);
  20.           write(a[i, j]:4)
  21.         end;
  22.       writeln
  23.     end;
  24.   for i := 1 to n do
  25.     begin
  26.       x[i] := a[i, 1];
  27.       for j := 2 to i do
  28.         if x[i] < a[i, j] then x[i] := a[i, j]
  29.     end;
  30.   s := 0;
  31.   for i := 1 to n div 2 do s := s + x[i] * x[n - i + 1];
  32.   s := 2 * s;
  33.   if odd(n) then s := s + sqr(x[n div 2 + 1]);
  34.   write('s = ', s);
  35.   readln
  36. end.

Объяснение кода листинга программы

В этом коде:

  1. Объявлены следующие переменные:
    • m - размерность матрицы (19);
    • a - матрица (19x19);
    • x - массив (19);
    • n, i, j - счётчики;
    • s - сумма;
    • int64 - тип данных для переменной s (целочисленный с плавающей точкой).
  2. Выполняется заполнение матрицы a случайными числами от -99 до 99.
  3. Выполняется цикл, в котором пользователь вводит число n от 1 до 19.
  4. Выводится исходная матрица a (значения разделены пробелами, строки переносятся на новую строку).
  5. В первой половине массива x сохраняются значения главной диагонали матрицы a.
  6. Во второй половине массива x сохраняются максимальные значения из соответствующих столбцов матрицы a.
  7. Выполняется цикл, в котором вычисляется сумма s элементов массива x.
  8. Если число n нечётное, то к s добавляется квадрат последнего элемента массива x.
  9. Выводится значение переменной s.
  10. Программа ожидает ввода с клавиатуры.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы