Упорядочить элементы каждого столбца матрицы по возрастанию методом линейного выбора с обменом (по условию) - Free Pascal

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

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

Мне очень нужен программный код к такому заданию. Дана действительная матрица A(n*n) . Если сумма минимальных элементов каждой строки больше суммы минимальных элементов каждого столбца, то упорядочить элементы каждого столбца матрицы по возрастанию методом линейного выбора с обменом.В противном случае матрицу оставить без изменений.

Решение задачи: «Упорядочить элементы каждого столбца матрицы по возрастанию методом линейного выбора с обменом (по условию)»

textual
Листинг программы
  1. uses  Crt;
  2. const n=5;
  3. type  Tmatr=array[1..n,1..n] of integer;
  4. var   a:Tmatr;
  5.       i,j,min,m,t,k,sum1,sum2:integer;
  6. begin
  7.       ClrScr;
  8.        Writeln('Matrix A:');
  9.         Writeln;
  10.          Randomize;
  11.        for i:=1 to n do
  12.         begin
  13.           for j:=1 to n do
  14.            begin
  15.              a[i,j]:=Random(50)+1;
  16.              Write(a[i,j]:4);
  17.            end;
  18.           Writeln;
  19.         end;
  20.        Writeln;
  21.         sum1:=0; sum2:=0;
  22.          i:=1;
  23.           repeat
  24.              min:=MaxInt;
  25.              for j:=1 to n do
  26.               if a[i,j]<min
  27.                then min:=a[i,j];
  28.              sum1:=sum1+min;
  29.              Inc(i);
  30.           until i>n;
  31.          j:=1;
  32.           repeat
  33.              min:=MaxInt;
  34.              for i:=1 to n do
  35.               if a[i,j]<min
  36.                then min:=a[i,j];
  37.              sum2:=sum2+min;
  38.              Inc(j);
  39.           until j>n;
  40.        if sum1>sum2
  41.         then
  42.          begin
  43.            j:=1;
  44.            repeat
  45.               for i:=1 to n-1 do
  46.                begin
  47.                  min:=a[i,j];
  48.                  m:=i;
  49.                  for t:=i+1 to n do
  50.                   if a[t,j]<min
  51.                    then
  52.                     begin
  53.                       min:=a[t,j];
  54.                       m:=t;
  55.                     end;
  56.                  k:=a[m,j];
  57.                  a[m,j]:=a[i,j];
  58.                  a[i,j]:=k;
  59.                end;
  60.               Inc(j);
  61.            until j>n;
  62.            Writeln('Summa min strok > summi min stolbcov');
  63.            Writeln('Matrix A:');
  64.            Writeln;
  65.            for i:=1 to n do
  66.             begin
  67.               for j:=1 to n do
  68.                Write(a[i,j]:4);
  69.               Writeln;
  70.             end;
  71.          end
  72.         else
  73.          Writeln('Summa min strok < summi min stolbcov');
  74.       ReadKey;
  75. end.

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

  1. Объявлены переменные: — a: массив типа Tmatr для хранения элементов матрицы; — i, j: индексы для обращения к элементам матрицы; — min, m, t, k, sum1, sum2: целочисленные переменные для выполнения операций сравнения и обмена; — n: константа для определения размера матрицы; — Crt: модуль для работы с консолью.
  2. Задана матрица случайными значениями от 1 до 50 с помощью функции Random и цикла for. Каждое значение матрицы выводится на экран с помощью функции Write.
  3. Вычисляются суммы min элементов каждой строки матрицы с помощью цикла repeat-until и вложенного цикла for. Переменная min обновляется при каждом проходе внутреннего цикла.
  4. Если сумма min элементов первого массива больше, чем второго, то выполняется блок кода, который меняет местами минимальные элементы строк с помощью вложенного цикла for и условного оператора if.
  5. Если условие из пункта 4 не выполняется, то выводится сообщение Summa min strok < summi min stolbcov с помощью функции Writeln.
  6. Если условие из пункта 4 выполняется, то выполняется блок кода, который меняет местами минимальные элементы строк с помощью вложенного цикла for и условного оператора if.
  7. После выполнения всех операций выводится сообщение Matrix A: и все элементы матрицы выводятся на экран с помощью цикла for и функции Write.
  8. В конце программы ожидается нажатие клавиши с помощью функции ReadKey.

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


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

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

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

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

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

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