Даны файлы f1,f2,f3,f4,f5, составляющие которых являются вещественными числами. Организуйте
Даны файлы f1,f2,f3,f4,f5, составляющие которых являются вещественными числами. Организуйте размен компонентами меж файлами в соответствии со последующей схемой:
f1 f2 f3 f4 f5
f3 f4 f5 f2 f1
т.е. составляющие файла f1 переписываются в файл f3, составляющие файла f2 - в f4 и т.д. Разрешается использовать только один вспомогательный файл h.
1 ответ
Егор Кулько
Type
tR = real;
tF = file of tR;
procedure SwapFile(fn1, fn2: string);
var
r: tR;
fin, fout: tF;
begin
Assign(fin, fn1); Reset(fin);
Assign(fout, fn2); Rewrite(fout);
while (not Eof(fin)) do begin Read(fin, r); Write(fout, r) end;
Close(fin); Close(fout)
end;
var
f1, f2, f3, f4, f5, fh: string;
begin
f1 := 'f1.bin'; f2 := 'f2.bin'; f3 := 'f3.bin';
f4 := 'f4.bin'; f5 := 'f5.bin'; fh := 'tmp.bin';
f2 lt;-gt; f4
SwapFile(f2, fh); SwapFile(f4, f2); SwapFile(fh, f4);
f5-gt;h, f3-gt;f5, f1-gt;f3, h-gt;f1
SwapFile(f5, fh); SwapFile(f3, f5); SwapFile(f1, f3); SwapFile(fh, f1)
end.
******************* Для тестирования ******************
Можно сделать тестовые файлы с помощью последующей программы:
type
tR = real;
tF = file of tR;
procedure WF(fn: string; m, n: integer);
var
fout: tF;
i: integer;
begin
Assign(fout, fn); Rewrite(fout);
for i := m to n do Write(fout, i / 2);
Close(fout)
end;
var
f1, f2, f3, f4, f5: string;
begin
f1 := 'f1.bin'; f2 := 'f2.bin'; f3 := 'f3.bin';
f4 := 'f4.bin'; f5 := 'f5.bin';
WF(f1, 3, 7); WF(f2, 11, 19); WF(f3, -6, 9); WF(f4, 0, 11); WF(f5, 14, 22);
end.
Дальше можно просмотреть содержимое сделанных файлов с помощью последующей программки:
type
tR = real;
tF = file of tR;
procedure WF(fn: string);
var
fin: tF;
r: tR;
begin
Writeln(fn);
Assign(fin, fn); Reset(fin);
while (not Eof(fin)) do
begin Read(fin, r); Write(r:0:1, ' ') end;
Writeln;
Close(fin)
end;
var
f1, f2, f3, f4, f5: string;
begin
f1 := 'f1.bin'; f2 := 'f2.bin'; f3 := 'f3.bin';
f4 := 'f4.bin'; f5 := 'f5.bin';
WF(f1); WF(f2); WF(f3); WF(f4); WF(f5)
end.
Потом выполнить главную программку по перезаписи и опять запустить программку для просмотра обновленнных файлов.
tR = real;
tF = file of tR;
procedure SwapFile(fn1, fn2: string);
var
r: tR;
fin, fout: tF;
begin
Assign(fin, fn1); Reset(fin);
Assign(fout, fn2); Rewrite(fout);
while (not Eof(fin)) do begin Read(fin, r); Write(fout, r) end;
Close(fin); Close(fout)
end;
var
f1, f2, f3, f4, f5, fh: string;
begin
f1 := 'f1.bin'; f2 := 'f2.bin'; f3 := 'f3.bin';
f4 := 'f4.bin'; f5 := 'f5.bin'; fh := 'tmp.bin';
f2 lt;-gt; f4
SwapFile(f2, fh); SwapFile(f4, f2); SwapFile(fh, f4);
f5-gt;h, f3-gt;f5, f1-gt;f3, h-gt;f1
SwapFile(f5, fh); SwapFile(f3, f5); SwapFile(f1, f3); SwapFile(fh, f1)
end.
******************* Для тестирования ******************
Можно сделать тестовые файлы с помощью последующей программы:
type
tR = real;
tF = file of tR;
procedure WF(fn: string; m, n: integer);
var
fout: tF;
i: integer;
begin
Assign(fout, fn); Rewrite(fout);
for i := m to n do Write(fout, i / 2);
Close(fout)
end;
var
f1, f2, f3, f4, f5: string;
begin
f1 := 'f1.bin'; f2 := 'f2.bin'; f3 := 'f3.bin';
f4 := 'f4.bin'; f5 := 'f5.bin';
WF(f1, 3, 7); WF(f2, 11, 19); WF(f3, -6, 9); WF(f4, 0, 11); WF(f5, 14, 22);
end.
Дальше можно просмотреть содержимое сделанных файлов с помощью последующей программки:
type
tR = real;
tF = file of tR;
procedure WF(fn: string);
var
fin: tF;
r: tR;
begin
Writeln(fn);
Assign(fin, fn); Reset(fin);
while (not Eof(fin)) do
begin Read(fin, r); Write(r:0:1, ' ') end;
Writeln;
Close(fin)
end;
var
f1, f2, f3, f4, f5: string;
begin
f1 := 'f1.bin'; f2 := 'f2.bin'; f3 := 'f3.bin';
f4 := 'f4.bin'; f5 := 'f5.bin';
WF(f1); WF(f2); WF(f3); WF(f4); WF(f5)
end.
Потом выполнить главную программку по перезаписи и опять запустить программку для просмотра обновленнных файлов.
Vladik Karkov
Если нужен тип переменных double, достаточно указать tR=double;
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
выпиши в свою тетрадь те правила этикета которые тебе не были
Разные вопросы.
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
10) Килограмм конфет дороже килограмма печенья на 52 р. За 8
Математика.
Во сколько раз число атомов кислорода в земной коре больше числа
Химия.
Составить монолог от имени дневника двоечника 7-10 предложений
Русский язык.
Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо
Разные вопросы.
Облако тегов