Даны файлы 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 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 a: array [1 .. 10] of integer; i, Count, C, tmpLast, tmpFirst: integer; begin write('Введите число C: '); readln(C); writeln; for i := 1 to 10 do begin write('a[', i, '] = '); readln(a[i]); if a[i] = C then begin Count := Count + 1; tmpLast := i; end; end; writeln; if (Count = 0) then writeln('В массиве нет числа равное С') else begin writeln('В массиве нашлось число, равное С'); if (Count = 1) then writeln('Первое и единственное число в позиции a[', tmpLast, ']') else begin i := 0; repeat i := i + 1; tmpFirst := i; until (a[i] = C); writeln('Первое такое число a[', tmpFirst, ']'); writeln('Последнее такое число a[', tmpLast, ']'); end; end; readln; end.
Для Pascal: Как вариант, можно возвести в квадрат и тут же из него взять корень y := sqrt((x-1)(x-1)) + sqrt((x-4)(x-4)) Однако, для этого y должен быть объявлен как вещественный тип (real, double), поскольку функция взятия корня возвращает вещественный тип, и потому в целочисленном y сохраниться не может. Исходный код в приложении.