Преобразовать типизированный файл - Turbo Pascal
Формулировка задачи:
Здравствуйте. Дан типизированный файл, число компонент которого кратно четырем. Файл состоит из целых чисел не равных нулю, число положительных компонент файла равно числу отрицательных. Необходимо преобразовать файл так, чтобы два положительных числа чередовались с двумя отрицательными.
Без использования массива :-( Прошу помощи
Пытаюсь сделать с помощью доп.файла, но что-то делаю не так
****
Решение задачи: «Преобразовать типизированный файл»
textual
Листинг программы
procedure preob_tfile(const fName: string); var a, b: integer; i, j: longword; z: boolean; begin assign(f1, fName); reset(f1); for i := 0 to filesize(f1) - 2 do begin z := i mod 4 < 2; seek(f1, i); read(f1, a); if z <> (a >= 0) //вариант: if z xor (a >= 0) then for j := i + 1 to filesize(f1) - 1 do begin read(f1, b); if z = (b >= 0) //вариант: if not(z xor (a >= 0)) then begin seek(f1, j); write(f1, a); seek(f1, i); write(f1, b); break end end end; close(f1) end;
Объяснение кода листинга программы
- В процедуре preob_tfile заданы две переменные: fName (строка) и f1 (файл).
- Выполняется операция присвоения: assign(f1, fName). Это означает, что переменной f1 присваивается значение fName.
- Выполняется операция сброса: reset(f1). Эта операция сбрасывает файл в состояние, которое было в момент его создания.
- Запускается цикл for, который выполняется 4 раза (от 0 до 3).
- Внутри цикла выполняется проверка: z := i mod 4 < 2. Здесь переменная z принимает значение 1, если i является четным числом, и 0 в противном случае.
- Выполняется операция seek(f1, i), которая перемещает файловый указатель на позицию i.
- Выполняется операция read(f1, a), которая читает из файла a.
- Проверяется значение переменной z. Если оно равно 1, то выполняется цикл for, описанный выше. Если значение z равно 0, то переходит к следующему шагу без выполнения дополнительных операций.
- Выполняется операция seek(f1, j), которая перемещает файловый указатель на позицию j.
- Выполняется операция write(f1, a), которая записывает в файл a.
- Если значение переменной z равно 1, то повторяются шаги 9-10 для всех следующих позиций j.
- Закрывается файл f1 с помощью операции close(f1).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д