//PascalABC.NET версия 3.2, сборка 1389 //Если программа не запускается, то обновите версию uses System.Linq; begin writeln('III'); var a := ReadArrInteger('Документы', ReadInteger('n=')).ToList; writeln;
while a.Any() do begin write(a[0], ' '); a.RemoveAt(0); if not a.Any then break;
write(a.Last, ' '); a.RemoveAt(a.Count - 1); if not a.Any then break;
var n := 0; if a.Count > 1 then n := a.Count div 2 - 1; write(a[n], ' '); a.RemoveAt(n); end; end.
Если элементы массива идут по возрастанию, то вот так
program wstawka; uses crt; const min=1; max=20; type zona=min..max; massiw=array[zona] of integer; var mas:massiw; i,j:zona; a,N,M:integer; T:boolean; BEGIN randomize; clrscr; N:=random(20); writeln('4ucJlo N = ',N); M:=random(20); Writeln('4ucJlo M = ',M); for i:=min to max-2 do begin mas[i+1]:=mas[i]+random(5); write(mas[i],' '); end; for i:=min to max-2 do if (mas[i]>N) and (t=false) then begin t:=true; a:=mas[i]; mas[i]:=N; for j:=i+1 to max do begin N:=mas[j]; mas[j]:=a; a:=N; end; end; for i:=min to max-1 do if (mas[i]>M) and (t=true) then begin t:=false; a:=mas[i]; mas[i]:=M; for j:=i+1 to max do begin M:=mas[j]; mas[j]:=a; a:=M; end; end; writeln; for i:=min to max do write(mas[i],' '); readkey; END.
//Если программа не запускается, то обновите версию
uses System.Linq;
begin
writeln('III');
var a := ReadArrInteger('Документы', ReadInteger('n=')).ToList;
writeln;
while a.Any() do
begin
write(a[0], ' ');
a.RemoveAt(0);
if not a.Any then break;
write(a.Last, ' ');
a.RemoveAt(a.Count - 1);
if not a.Any then break;
var n := 0;
if a.Count > 1 then n := a.Count div 2 - 1;
write(a[n], ' ');
a.RemoveAt(n);
end;
end.