Ну что то типо этого var j,i,k,n:integer; m:array[1..1000] of integer;begin read(n,k); //Ввод элементов массива for i:=1 to n do read(m[i]); //Сортировка по возрастанию for i:=1 to k do for j:=i to k do if m[j]<m[i] then swap(m[i],m[j]); //Сортировка по убыванию for i:=k+1 to n do for j:=i to n do if m[j]>m[i] then swap(m[i],m[j]); //Вывод элементов массива for i:=1 to n do print(m[i]);end.
const nn=100; // максимальное количество элементов в массиве
type Mas=array[1..nn] of integer;
procedure SortShell(n:integer; var a:Mas); var i,d,t:integer; k:boolean; begin d:=n div 2; // начальный шаг сортировки while d>0 do begin k:=true; while k do begin k:=false; for i:=1 to n-d do begin if(a[i]>a[i+d]) then begin t:=a[i]; a[i]:=a[i+d]; a[i+d]:=t; k:=true end end end; d:=d div 2 end end;
var i,n:integer; v:Mas;
begin Write('n='); Read(n); Writeln('Вводите элементы массива'); for i:=1 to n do Read(v[i]); SortShell(n,v); for i:=1 to n do Write(v[i],' '); Writeln end.