Описать процедуру 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.
Объяснение кода листинга программы
- В процедуре InvIntFile создается файл из строки S.
- Переменная f инициализируется ссылкой на файл.
- Переменные e1 и e2 инициализируются целочисленными значениями.
- Переменная i инициализируется целочисленным значением.
- Переменная p инициализируется целочисленным значением.
- Проверяется, что файл был успешно открыт.
- Переменная p устанавливается равной FileSize(f)-1.
- Если переменная p больше 0, то выполняется цикл.
- В цикле выполняются следующие действия:
- Секущее значение переменной f устанавливается в i.
- Чтение из файла в переменные e1 и e2.
- Секущее значение переменной f устанавливается в p-i.
- Запись в файл переменной e1.
- Секущее значение переменной f устанавливается в i.
- Запись в файл переменной e2.
- Секущее значение переменной f устанавливается в p-i.
- После завершения цикла закрывается файл.
- В процедуре ShowIntFile открывается файл из строки s.
- Пока не будет достигнут конец файла (EOF) выполняется цикл.
- В цикле считывается значение из файла в переменную e.
- Значение переменной e выводится на экран.
- Закрывается файл.
- Выполняется цикл для каждого файла из массива f.
- Вызывается процедура InvIntFile для каждого файла.
- Вызывается процедура ShowIntFile для каждого файла.
- Закрывается каждый файл.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д