Сортировка массива - Pascal ABC (248829)

Узнай цену своей работы

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

Сформировать файл f, компоненты которого являются целыми числами. Ни какая из компонент файла не равна нулю. Числа в файле идут в следующем порядке: десять положительных, десять отрицательных, десять положительных, десять отрицательных и так далее. Переписать компоненты файла f в файл g так, чтобы в файле g числа шли в следующем порядке: - двадцать положительных, двадцать отрицательных, двадцать положительных, двадцать отрицательных и так далее (предполагается, что число компонент файла f делится на 40). Сделал файлы, сформировал массивы. Но вот как отсортировать их в таком порядке- без понятия, нужна помощь.

Решение задачи: «Сортировка массива»

textual
Листинг программы
  Reset(f); Rewrite(g);
  while not EoF(f) do begin
    for i:=1 to 10 do begin Read(f,t); Write(g,t); end;
    Seek(FilePos(f)+10);
    for i:=1 to 10 do begin Read(f,t); Write(g,t); end;
    Seek(FilePos(f)-20);
    for i:=1 to 10 do begin Read(f,t); Write(g,t); end;
    Seek(FilePos(f)+10);
    for i:=1 to 10 do begin Read(f,t); Write(g,t); end;
  end;
  Close(f); Close(g);

Объяснение кода листинга программы

В этом коде используется два файла: один для чтения (f), другой для записи (g). Сначала, с помощью функции Reset, позиция файла f сбрасывается в начало, а затем позиция файла g сбрасывается в начало с помощью функции Rewrite. Затем, в основном цикле, происходит чтение 10 элементов из файла f и запись их в файл g. После этого позиция файла f смещается вперед на 10 элементов с помощью функции Seek, а затем снова читаются 10 элементов и записываются в файл g. Далее, позиция файла f смещается назад на 20 элементов с помощью функции Seek, и снова читаются 10 элементов и записываются в файл g. Затем позиция файла f смещается вперед на 10 элементов, и снова читаются 10 элементов и записываются в файл g. Этот процесс повторяется, пока не будет достигнут конец файла f с помощью функции EoF. После окончания чтения и записи всех элементов, файлы f и g закрываются с помощью функции Close.

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы