Переписать в другой файл все рядом стоящие числа исходного файла, отличающиеся на 1 - Pascal ABC

Формулировка задачи:

Сформировать целочисленный файл. Переписать в другой файл все рядом стоящие числа, отличающиеся на 1, элементов в файле не менее 15. Help.

Код к задаче: «Переписать в другой файл все рядом стоящие числа исходного файла, отличающиеся на 1 - Pascal ABC»

textual
uses crt;
var f,g:file of integer;
    n,i,j,a,b,k:integer;
begin
repeat
write('Сколько чисел записать ф файл n>=15 n=');
readln(n);
until n>=15;
writeln('Введите ',n,' целых чисел, в том числе рядом стоящие, отличающиеся на 1');
assign(f,'fileF');
rewrite(f);
for i:=1 to n do
 begin
  readln(a);
  write(f,a);
 end;
clrscr;
writeln('Содержание исходного файла');
reset(f);
while not eof(f)do
 begin
  read(f,a);
  write(a,' ');
 end;
writeln;
reset(f);
assign(g,'fileG');
rewrite(g);
i:=0;
while i<filesize(f)-1 do
 begin
  seek(f,i);
  read(f,a);
  seek(f,i+1);
  read(f,b);
  if abs(a-b)=1 then
   begin
    write(g,a);
    k:=1;
    j:=i;
    while (abs(a-b)=1)and(j<filesize(f)-1)do
     begin
      seek(f,j);
      read(f,a);
      seek(f,j+1);
      read(f,b);
      if abs(a-b)=1 then
       begin
        write(g,b);
        inc(k);
       end;
      inc(j);
     end;
    i:=i+k;
   end
  else inc(i);
 end;
close(f);
reset(g);
if filesize(g)=0 then write('Нет рядом стоящих чисел, отличающихся на 1')
else
 begin
  writeln('Файл рядом стоящих чисел, отличающихся на 1');
  while not eof(g) do
   begin
    read(g,a);
    write(a,' ');
   end;
 end;
close(g)
end.

5   голосов, оценка 3.800 из 5


СОХРАНИТЬ ССЫЛКУ