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

    f1 f2 f3 f4 f5
    ↓ ↓ ↓ ↓ ↓
    f3 f4 f5 f2 f1
    т.е. компоненты файла f1 переписываются в файл f3, компоненты файла f2 - в f4 и т.д. Разрешается использовать только один вспомогательный файл h.

Ответы 2

  • Если нужен тип переменных double, достаточно указать tR=double;
  • 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.Затем выполнить основную программу по перезаписи и снова запустить программу для просмотра обновленнных файлов.
    • Автор:

      wendyqzjg
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years