В файле целого типа расставить элементы так, чтобы сначала расположены нулевые значения, затем положительные, потом отрицательные — Pascal(Паскаль)

var fSrc, fDst : File of Integer;
    i : integer;
begin
  {открываем исходный файл}
  Assign(fsrc, 'Source.dat');
  Reset(fsrc);
 
  {открываем файл в который будем писать результат}
  Assign(fdst, 'Temp.dat');
  Rewrite(fdst);
 
  { обрабатываем нули }
  while not eof(fsrc) do
  begin
    Read(fsrc, i);
    if i=0 then Write(fdst, i);
  end;
 
  { обрабатываем положительные }
  Seek(fsrc, 0);
  while not eof(fsrc) do
  begin
    Read(fsrc, i);
    if i>0 then Write(fdst, i);
  end;
 
  { обрабатываем отрицательные }
  Seek(fsrc, 0);
  while not eof(fsrc) do
  begin
    Read(fsrc, i);
    if i<0 then Write(fdst, i);
  end;
  
  Close(fsrc);
  Close(fdst);
 
  {
  теперь, в Temp.dat переставленные по условию задачи
  числа, как вариант, можно переименовать его в имя
  исходного файла, предварительно удалив исходный файл
  }
end.

Leave a Comment

+ 76 = 81