Даны файлы f1,f2,f3,f4,f5, компоненты которых являются вещественными числами. Организуйте обмен компонентами между файлами в соответствии со следующей схемой: f1 f2 f3 f4 f5 ↓ ↓ ↓ ↓ ↓ f3 f4 f5 f2 f1 т.е. компоненты файла f1 ...

Даны файлы f1,f2,f3,f4,f5, компоненты которых являются вещественными числами. Организуйте обмен компонентами между файлами в соответствии со следующей схемой: f1 f2 f3 f4 f5 ↓ ↓ ↓ ↓ ↓ f3 f4 f5 f2 f1 т.е. компоненты файла f1 переписываются в файл f3, компоненты файла f2 - в f4 и т.д. Разрешается использовать только один вспомогательный файл h.
Гость
Ответ(ы) на вопрос:
Гость
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 <-> f4 }   SwapFile(f2, fh); SwapFile(f4, f2); SwapFile(fh, f4);   { f5->h, f3->f5, f1->f3, h->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. Затем выполнить основную программу по перезаписи и снова запустить программу для просмотра обновленнных файлов.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы