Если я правильно понял задание,то исходя из выше сказанного вот что у меня получилось:
- Код: Выделить всё
var
start,track:byte;
i,timeout,n:byte;
que:string;
kwant:integer;
f:text;
begin
assign(f,'C:\Files for Program Pascal\Disk.in');
reset(f);
read(f,timeout);
readln(f);
kwant:=0; start:=0;
que:='';
while not eoln(f) do begin
read(f,n);
que:=que+chr(n);
end;
readln(f);
while length(que)>0 do begin
track:=ord(que[1]);
if track>start then
for i:=start+1 to track do begin
inc(kwant);
if (kwant mod timeout=0) and (not eof(f)) then begin
while not eoln(f) do begin
read(f,n);
que:=que+chr(n);
end;
readln(f);
end;
end
else if track<start then
for i:=start-1 downto track do begin
inc(kwant);
if (kwant mod timeout=0) and (not eof(f)) then begin
while not eoln(f) do begin
read(f,n);
que:=que+chr(n);
end;
readln(f);
end;
end;
delete(que,1,1);
inc(kwant);
if (kwant mod timeout=0) and (not eof(f)) then begin
while not eoln(f) do begin
read(f,n);
que:=que+chr(n);
end;
readln(f);
end;
start:=i;
end;
close(f);
writeln(kwant);
readln;
end.
Проверьте правильность решения и понимания задания.