Характеристика строки матрецы - 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.
Объяснение кода листинга программы
- Объявление переменных и констант:
- 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 по возрастанию суммы элементов строк)
- Инициализация матрицы случайными значениями: for i:=1 to m do for j:=1 to n do matrix[i,j]:=Random(100);
- Выполнение сортировки:
- 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)
- Вывод результатов:
- WriteLn('Ok')
- for i:=1 to m do
- WriteLn('Result = ',Har(matrix,i))
- ReadLn() (для завершения программы)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д