Получить новый файл, в котором на четных местах стоят четные компоненты из первого файла - Turbo Pascal
Формулировка задачи:
Имеется два файла с числами. Получить новый файл, в котором на четных местах стоят четные компоненты из первого файла, а на нечетных местах - нечетные компоненты из второго файла(количество компонентов в исходных файлах одинаковое).
Решение задачи: «Получить новый файл, в котором на четных местах стоят четные компоненты из первого файла»
textual
Листинг программы
program files3;
const
n=10;
Var
f,g,h : file of integer;
Procedure CreateFiles;
Var
i,k:integer;
Begin
Assign(f,'f.dat');
Rewrite(f);
Assign(g,'g.dat');
Rewrite(g);
for i:=1 to n do
begin
k:=random(n*n)+1;
write(f,k);
k:=random(n*n)+1;
write(g,k);
end;
reset(f);
writeln('File F:');
While not Eof(f) do
Begin
read(f,k);
write(k:4);
end;
writeln;
reset(g);
writeln('File G:');
While not Eof(g) do
Begin
read(g,k);
write(k:4);
end;
Close(f);
Close(g);
End;
procedure ProcessFiles;
Var
i,k:integer;
begin
Assign(h,'h.dat');
Rewrite(h);
reset(f);
reset(g);
for i:=1 to n do
begin
seek(g,i-1);
read(g,k);
if not odd(k) then
write(h,k);
seek(f,i-1);
read(f,k);
if odd(k) then
write(h,k);
end;
Close(f);
Close(g);
Close(h);
writeln;
reset(h);
writeln('File H:');
While not Eof(h) do
Begin
read(h,k);
write(k:4);
end;
Close(h);
end;
Begin
randomize;
CreateFiles;
ProcessFiles;
readln;
End.
Объяснение кода листинга программы
- В программе создаются два файла: 'f.dat' и 'g.dat'.
- В файле 'f.dat' записываются случайные числа, а в файле 'g.dat' - их зеркальные отображения (т.е. числа, записанные в 'g.dat', будут четными, а числа в 'f.dat' - нечетными).
- Затем происходит чтение содержимого обоих файлов и запись этих данных в новый файл 'h.dat'.
- Если число, прочитанное из 'g.dat', является четным, то оно записывается в 'h.dat'. Если число из 'f.dat' - нечетное, то оно также записывается в 'h.dat'.
- После завершения чтения данных из файлов 'f.dat' и 'g.dat' файлы закрываются.
- В конце программы вызывается функция randomize, чтобы обновить генератор случайных чисел.
- Затем вызывается процедура CreateFiles, которая создает файлы 'f.dat', 'g.dat' и 'h.dat'.
- После этого вызывается процедура ProcessFiles, которая читает данные из файлов 'f.dat' и 'g.dat', и записывает их в файл 'h.dat'.
- В конце программы выводится сообщение 'File H:', и затем происходит чтение данных из файла 'h.dat' и запись их в стандартный вывод.
- После этого программа завершается вызовом функции readln.