Программирование матричных операций - PascalABC.NET
Формулировка задачи:
Помогите найти ошибку, не получается.
Решение задачи: «Программирование матричных операций»
textual
Листинг программы
var a: array[1..10, 1..10] of real; x: array [1..10] of real; i, j, k, n: integer; y, s, c, Max, Min, l: real; begin writeln('введите n'); read(n); {---------------------------------------часть 1-----------------------------------} for i := 1 to n do for j := 1 to n do a[j, i] := (i + 2) * (i / j); writeln('':20, 'матрица А'); for i := 1 to n do begin for j := 1 to n do write(a[i, j]:8:3); writeln; end; {---------------------------------------часть 2-----------------------------------} writeln('':20, 'вектор x'); for i := 1 to n do begin Max := -3000; Min := 3000; for j := 1 to n do begin if(a[i, j] > Max) then Max := a[i, j]; if(a[j, i] < Min) then Min := a[j, i]; end; x[i] := Max - Min; write(x[i]:8:3); end; writeln; {---------------------------------------часть 3-----------------------------------} i := 1; while i <= n do begin if Odd(i) then for j := 1 to n - 1 do for k := j + 1 to n do if a[i, j] > a[i, k] then begin l := a[i, j]; a[i, j] := a[i, k]; a[i, k] := l; end; i := i + 1; end; writeln('сортировка строк по возрастанию'); for i := 1 to n do begin for j := 1 to n do write(a[i, j]:10:3); writeln; end; {---------------------------------------часть 4-----------------------------------} s := 0; for i := 1 to n - 1 do begin if odd(i) then s := s * x[j] + x[n - i + 1]; y := s; end; writeln('y=', y:4:1); end.
Объяснение кода листинга программы
Список действий в коде:
- Ввод значения переменной n (размер матрицы).
- Заполнение матрицы a элементами, которые рассчитываются как (i + 2) * (i / j).
- Вывод на экран матрицы a.
- Ввод значений вектора x, которые являются разницей между максимальным и минимальным значениями в строке.
- Вывод на экран вектора x.
- Ввод номера строки для сортировки (i).
- Использование алгоритма сортировки пузырьком для сортировки строки a[i, j].
- Вывод на экран отсортированной строки a[i, j].
- Ввод значения переменной s, которая является суммой элементов вектора x для нечетных строк.
- Вывод на экран значение переменной s. Список переменных и их значений:
- a - матрица размером 10x10, заполненная элементами (i + 2) * (i / j).
- x - вектор размером 10, значения которого являются разницей между максимальным и минимальным значениями в строке.
- i, j, k, n - целочисленные переменные, используемые для описания хода выполнения программы.
- y, s, c, Max, Min, l - переменные, используемые для выполнения различных операций в программе.
- Max и Min - используются для поиска максимального и минимального значений в строке.
- l - используется для хранения временного значения элемента матрицы a.
- y - используется для хранения суммы элементов вектора x для нечетных строк.
- s - используется для хранения промежуточных значений при вычислении y.
- c - используется для контроля четности номера строки в алгоритме сортировки.
- n - размер матрицы, введенный пользователем.