(Пишу в блокноте, возможны ошибки синтаксиса) Pascal:
var mas:array[1..7,1..4] of integer;
i,i2,i3,tmp:integer;
begin
for i:=1 to 4 do
for i2:=1 to 7 do
mas[i,i2]:=random(100); //присвоение рандома массиву
for i:=1 to 4 do
begin
for i2:=1 to 7 do
writeln(inttostr(mas[i,i2]));
writeln;
end; //Вывод исходного массива
for i3:=3 to 4 do
for i:=1 to 7 do
for i2:=1 to 6 do
if mas[i2+1,i3] >mas[i2,i3] then
begin
tmp:=mas[i2,i3];
mas[i2,i3]:=mas[i2+1,i3];
mas[i2+1,i3]:=tmp;
end; //сортировка последних строк
for i:=1 to 4 do
begin
for i2:=1 to 7 do
writeln(inttostr(mas[i,i2]));
writeln;
end; //Вывод измененного массива
readln;
end.