Даны две действительные матрицы разной размерности. Используя процедуру упорядочить (переставить) строки матриц по неубыванию сумм тех элементов строк, значения которых лежат в интервале [a,b]. Использование вспомогательных рабочих массивов допускается. Проверить работу программы на тестовом примере. Результаты вывести на печать. Отчет должен содержать: условие задачи, блок-схему алгоритма работы программы. Программу, тестовые исходные данные и результаты работы программы.
program pr;
type vect=array[1..7,1..7] of integer;
var bm,cm:vect;
rv1,rh1,rv2,rh2,i,j,k,p,s,aq,bq,q:integer;
procedure proc(var a:vect;var h,v:integer);
var b :array [1..7] of integer;
begin
for j:=1 to v do begin
q:=0;
for i:=1 to h do
if (a[i,j]>aq) or (a[i,j]<bq) then q:=q+a[i,j];
b[j]:=q;
end;
for i:=1 to v-1 do
begin
k:=i;
for j:=i to v do
if b[k]<b[j] then k:=j;
for s:=1 to h do
begin
p:=a[s,k];
a[s,k]:=a[s,i];
a[s,i]:=p;
end;
end;
end;
procedure vvod(var f:vect;var h,v:integer);
begin
for i:=1 to v do
for j:=1 to h do
read(f[j,i]);
end;
procedure vyvod(var f:vect;var h,v:integer);
begin
for i:=1 to v do
begin
for j:=1 to h do
write(f[j,i]);
writeln;
end;
end;
begin
read(rv1,rh1);
read(rv2,rh2);
read(aq,bq);
vvod(bm,rv1,rh1);
vvod(cm,rv2,rh2);
proc(bm,rv1,rh1);
proc(cm,rv2,rh2);
vyvod(bm,rv1,rh1);
vyvod(cm,rv2,rh2);
end.