Описать процедуру InvIntFile, меняющую порядок следования элементов файла целого типа на противоположный - Turbo Pascal

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

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

Описать процедуру InvIntFile(S), меняющую порядок следования элементов файла целого типа с именем S на противоположный. Если файл не существует или содержит менее двух элементов, то процедура не выполняет никаких действий. Обработать с помощью этой процедуры три файла с данными именами. В Паскале

Решение задачи: «Описать процедуру InvIntFile, меняющую порядок следования элементов файла целого типа на противоположный»

textual
Листинг программы
procedure InvIntFile(const S: String);
var
  f: file of Integer;
  e1, e2: Integer;
  i, p: Longint;
begin
  Assign(f,s); {$I-}Reset(f);{$I+}
  if IOResult<>0 then Exit;
  p:=FileSize(f)-1;
  if p>0 then
    for i:=0 to p div 2 do begin
      Seek(f,i); Read(f,e1);
      Seek(f,p-i); Read(f,e2);
      Seek(f,p-i); Write(f,e1);
      Seek(f,i); Write(f,e2);
    end;
  Close(f);
end;
procedure ShowIntFile(const s: String);
var
  f: file of Integer;
  e: Integer;
begin
  Assign(f,s); Reset(f);
  while not EOF(f) do begin
    Read(f,e); Write(' ',e);
  end; WriteLn;
  Close(f);
end;
const
  f: array [1..3] of String[12] = ('file1.bin', 'file2.bin', 'file3.bin');
var
  i: Integer;
begin
  for i:=1 to 3 do begin
    WriteLn('File: ',f[i]); ShowIntFile(f[i]);
    InvIntFile(f[i]); 
    WriteLn('Rev.: '); ShowIntFile(f[i]);
  end;
end.

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

  1. В процедуре InvIntFile создается файл из строки S.
  2. Переменная f инициализируется ссылкой на файл.
  3. Переменные e1 и e2 инициализируются целочисленными значениями.
  4. Переменная i инициализируется целочисленным значением.
  5. Переменная p инициализируется целочисленным значением.
  6. Проверяется, что файл был успешно открыт.
  7. Переменная p устанавливается равной FileSize(f)-1.
  8. Если переменная p больше 0, то выполняется цикл.
  9. В цикле выполняются следующие действия:
    • Секущее значение переменной f устанавливается в i.
    • Чтение из файла в переменные e1 и e2.
    • Секущее значение переменной f устанавливается в p-i.
    • Запись в файл переменной e1.
    • Секущее значение переменной f устанавливается в i.
    • Запись в файл переменной e2.
    • Секущее значение переменной f устанавливается в p-i.
  10. После завершения цикла закрывается файл.
  11. В процедуре ShowIntFile открывается файл из строки s.
  12. Пока не будет достигнут конец файла (EOF) выполняется цикл.
  13. В цикле считывается значение из файла в переменную e.
  14. Значение переменной e выводится на экран.
  15. Закрывается файл.
  16. Выполняется цикл для каждого файла из массива f.
  17. Вызывается процедура InvIntFile для каждого файла.
  18. Вызывается процедура ShowIntFile для каждого файла.
  19. Закрывается каждый файл.
  20. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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