Характеристика строки матрецы - Pascal

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

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

Характеристикой строки матрицы, назовем сумму её положительных элементов. Отсортировать строки матрицы в порядке возрастания характеристик.
Характеристикой строки матрицы, назовем сумму её положительных элементов. Отсортировать строки матрицы в порядке возрастания характеристик.
Помогите плизз

Решение задачи: «Характеристика строки матрецы»

textual
Листинг программы
program Project2;
{$APPTYPE CONSOLE}
uses
  SysUtils;
const
  m = 5;
  n = 5;
type
  TMatrix = array [1..m,1..n] of integer;
procedure Swap(var t:TMatrix;x,y:integer);
var
  tmp,i:integer;
begin
  for i:=1 to n do
    begin
      tmp:=t[x,i];
      t[x,i]:=t[y,i];
      t[y,i]:=tmp
    end;
end;
function Har(z:TMatrix;x:integer):integer;
var
  i:integer;
  r:integer;
begin
  r:=0;
  for i:=1 to n do
    if z[x,i]>0 then
      r:=r+z[x,i];
  Har:=r;
end;
procedure Sort(var z:TMatrix);
var
  i:integer;
begin
  i:=2;
  while i<=m do
    if Har(z,i)<Har(z,i-1) then
      begin
        Swap(z,i,i-1);
        i:=2;
      end
    else
      inc(i)
end;
 
var
  matrix:TMatrix;
  i,j:integer;
begin
  //fill
  for i:=1 to m do
    for j:=1 to n do
      matrix[i,j]:=Random(100);
  //Sort
  Sort(matrix);
 
  WriteLn('Ok');
  for i:=1 to m do
    WriteLn('Result = ',Har(matrix,i));
  ReadLn;
end.

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

  1. Объявление переменных и констант:
    • m = 5 (количество строк)
    • n = 5 (количество столбцов)
    • TMatrix = array [1..m,1..n] of integer (тип массива для хранения матрицы целых чисел)
    • Swap(var t:TMatrix;x,y:integer) (процедура обмена элементов матрицы t по строкам x и y)
    • Har(z:TMatrix;x:integer):integer (функция нахождения суммы элементов строки x матрицы z, которые больше нуля)
    • Sort(var z:TMatrix) (процедура сортировки матрицы z по возрастанию суммы элементов строк)
  2. Инициализация матрицы случайными значениями: for i:=1 to m do for j:=1 to n do matrix[i,j]:=Random(100);
  3. Выполнение сортировки:
    • i := 2 (начальное значение для внешнего цикла)
    • while i <= m (цикл продолжается, пока i меньше или равно m)
    • if Har(z,i) < Har(z,i-1) (если сумма элементов текущей строки меньше суммы элементов предыдущей строки)
    • Swap(z,i,i-1) (обменять строки)
    • i := 2 (перезапустить цикл)
    • else (если условия не выполнены)
    • i := i + 1 (увеличить значение i)
  4. Вывод результатов:
    • WriteLn('Ok')
    • for i:=1 to m do
    • WriteLn('Result = ',Har(matrix,i))
    • ReadLn() (для завершения программы)

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


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

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

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