Программирование матричных операций - 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.

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

Список действий в коде:

  1. Ввод значения переменной n (размер матрицы).
  2. Заполнение матрицы a элементами, которые рассчитываются как (i + 2) * (i / j).
  3. Вывод на экран матрицы a.
  4. Ввод значений вектора x, которые являются разницей между максимальным и минимальным значениями в строке.
  5. Вывод на экран вектора x.
  6. Ввод номера строки для сортировки (i).
  7. Использование алгоритма сортировки пузырьком для сортировки строки a[i, j].
  8. Вывод на экран отсортированной строки a[i, j].
  9. Ввод значения переменной s, которая является суммой элементов вектора x для нечетных строк.
  10. Вывод на экран значение переменной s. Список переменных и их значений:
  11. a - матрица размером 10x10, заполненная элементами (i + 2) * (i / j).
  12. x - вектор размером 10, значения которого являются разницей между максимальным и минимальным значениями в строке.
  13. i, j, k, n - целочисленные переменные, используемые для описания хода выполнения программы.
  14. y, s, c, Max, Min, l - переменные, используемые для выполнения различных операций в программе.
  15. Max и Min - используются для поиска максимального и минимального значений в строке.
  16. l - используется для хранения временного значения элемента матрицы a.
  17. y - используется для хранения суммы элементов вектора x для нечетных строк.
  18. s - используется для хранения промежуточных значений при вычислении y.
  19. c - используется для контроля четности номера строки в алгоритме сортировки.
  20. n - размер матрицы, введенный пользователем.

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

8   голосов , оценка 3.625 из 5
Похожие ответы