В третий файл записать сначала четные элементы первого файла, а затем — нечетные - Pascal
Формулировка задачи:
Помогите с этой задачкой,заранее спасибо.
Вообщем надо создать 2 типизированных файла из целых чисел в диапазоне [-140;140]. В третий файл записать сначала четные элементы первого файла,а затем - нечетные второго и выполнить построчный вывод файлов на экран.
Решение задачи: «В третий файл записать сначала четные элементы первого файла, а затем — нечетные»
textual
Листинг программы
const fn: array [1..3] of string = ('1.dat', '2.dat', '3.dat');
var f, g: file of integer;
i, j, n, x: integer;
begin
randomize;
assign(g, fn[3]);
rewrite(g);
for i := 1 to 2 do
begin
assign(f, fn[i]);
rewrite(f);
repeat
write('Число компонентов ', i, ' файла? ');
readln(n)
until n > 0;
writeln('Содержимое ', i, ' файла:');
for j := 1 to n do
begin
x := -random(281) + 140;
write(x:5);
write(f, x);
if odd(i) = not odd(x) then write(g, x)
end;
writeln;
close(f)
end;
writeln('Содержимое 3 файла:');
if filesize(g) = 0
then write('<Файл пуст>')
else begin
reset(g);
for i := 1 to filesize(g) do
begin
read(g, x);
write(x:5)
end
end;
close(g);
readln
end.
Объяснение кода листинга программы
- Объявляются переменные: fn, f, g, i, j, n, x.
- Строки с именами файлов сохраняются в массив fn.
- Открывается файл g для записи.
- Записывается содержимое первого файла в файл g.
- Переменная i инициализируется значением 1.
- Цикл while выполняется i раз.
- Для каждой итерации цикла:
- Открывается файл f для чтения.
- Читается число компонентов i-го файла.
- Записывается содержимое i-го файла в файл f.
- Если i - нечетное число, то записывается содержимое i-го файла в файл g.
- Закрывается файл f.
- Выводится содержимое третьего файла.
- Если размер файла g равен 0, выводится сообщение
<Файл пуст>. - Файл g сбрасывается в начало.
- Читается содержимое файла g.
- Записывается число компонентов в файл g.
- Выводится сообщение
Содержимое 3 файла:. - Если размер файла g больше 0, выводится содержимое файла g.
- Файл g закрывается.
- Выводится сообщение
Readln.