Вообще задание такое
Упорядочить по убыванию элементы тех строк матрицы, в которых произведение элементов меньше заданного числа
Вот
function sravnenie(const ms: tvector;var k:integer): boolean;
var
d: integer;
i, j: integer;
begin
i:=ms[n,1];
For j:=1 to m-1 do
i=i*ms[n,j+1];
begin
if i<k then do
sravnenie:=(i = n + 1);
end;
А вот сама прога
program laba5;
Uses crt;
const
size_row = 10; { число строк }
size_col = 10; { число столбцов }
type
tvector = array[1 .. size_col] of integer;
tmatrix = array[1 .. size_row] of tvector;
var
mx: tmatrix;
i, j: integer;
n, m: integer;
NN, MM: integer;
k:integer;
procedure sort(var ms: tvector; n, m: integer);
var i, j, T: integer;
begin
for i := 1 to n do
for j := n downto i + 1 do
if ms[j - 1] < ms[j] then begin
T := ms[j - 1]; ms[j - 1] := ms[j]; ms[j] := T
end
end;
function sravnenie(const ms: tvector;var k:integer): boolean;
var
d: integer;
i, j: integer;
begin
i:=ms[n,1];
For j:=1 to m-1 do
i=i*ms[n,j+1];
begin
if i<k then do
sravnenie:=(i = n + 1);
end;
begin
clrscr;
NN:=size_row;
MM:=size_col;
writeln('Упорядочить по убыванию элементы тех строк матрицы,');
writeln('в которых произведение элементов меньше заданного числа.');
writeln('Введите число');
readln(k);
{ Заполнение матрицы }
repeat
write('Введите количество строк: '); readln(N)
until (n>0) and (n<=NN);
repeat
write('Введите количество столбцов: '); readln(m)
until (m>0) and (m<=MM);
For i:=1 to n do
begin
For j:=1 to m do
begin
write('mx[',i,j,']= ');
readln(mx[i,j])
end
end;
{ Матрица до обмена }
writeln('до:');
for i := 1 to n do
begin
for j := 1 to m do
write(mx[i,j]:4);
writeln
end;
{ цикл с проверкой и сортировкой }
for i := 1 to n do
if sravnenie(mx[i]) then sort(mx[i], m, n);
{ Матрица после обмена }
writeln('после:');
for i := 1 to n do
begin
for j := 1 to m do
write(mx[i,j]:4);
writeln
end;
end.