Реферат: Сортировка
end;
end;
Сливает два очередных куска из файлов in1 и in2 и записывает в out. procedure onestep(var in1, in2, out: workfile; c01, c02: longint); var n1, n2, c1, c2, c: longint;
Done: boolean; begin
Done:=false; c1:=c01-1; c2:=c02-1; c:=0; fGet(in1.main, n1); fGet(in2.main, n2); repeat
if n1<n2 then begin
fPut(out.main, n1); c:=c+1; if c1=0 then begin
fPut(out.main, n2); c:=c+1; Copy(in2, out, c2); c:=c+c2; Done:=true;
end else
begin
fGet(in1.main, n1); c1:=c1-1;
end;
end else
begin
fPut(out.main, n2);
c:=c+1;
if c2=0 then
begin
fPut(out.main, n1);
c:=c+1;
Copy(in1, out, c1); c:=c+c1; Done:=true;
end else
begin
fGet(in2.main, n2); c2:=c2-1;
end;
end;
until Done;
end;
Процедура осуществляет один шаг(т.е. копирует файлы in1 и in2 в out1 и out2, при этом склеивая куски)