File27. Дан файл целых чисел с элементами A1, A2, … , AN (N — количество элементов в файле). Заменить исходное расположение его элементов на следующее: A1, AN, A2, AN−1, A3, … .
>Решение Pascal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | program File27; var S:String; F_in,F_temp: File of Integer; temp,i,i2,len:integer; begin Write('File: '); Readln(S); Assign(F_in,S); Reset(F_in); len:=0; while (not eof(F_in)) do begin Read(F_in,temp); inc(len); end; Assign(F_temp,'~'+S); ReWrite(F_temp); for i2:=1 to (len div 2) do begin Close(F_in); Reset(F_in); i:=1; while (not eof(F_in)) and (i<=len-i2+1) do begin Read(F_in,temp); if i=i2 then Write(F_temp,temp); inc(i); end; write(F_temp,temp); end; if (len mod 2 =1) then begin Close(F_in); Reset(F_in); i:=1; while (i<=(len div 2)+1) do begin Read(F_in,temp); inc(i); end; Write(F_temp,temp); inc(i); end; Close(F_in); Close(F_temp); Erase(F_in); Rename(F_temp,S); end. |
program file27;
var
f1,f2:file of integer;
s1:string;
i1,num,i,temp:integer;
begin
writeln(‘vhodnoy file’);
readln(s1);
assign(f1,s1);
assign(f2,’~’+s1);
{$I-}
writeln(‘original’);
reset(f1);
num:=1;
while not eof(f1) do begin
read(f1,i);write(i,’ ‘);
inc(num,1);
end;
close(f1);
writeln();
reset(f1);
if IOResult=0 then begin
rewrite(f2);
i1:=0;
for i:=1 to (num div 2) do begin
seek(f1,(i+i1)-1);
read(f1,temp);
write(f2,temp);
seek(f1,(num-i)-1);
read(f1,temp);
write(f2,temp);
end;
close(f1);
close(f2);
end;//ior
writeln(‘itog:’);
reset(f2);
while not eof(f2) do begin
read(f2,i);write(i,’ ‘);
end;close(f2);
end.