GAECHKA
Твоя помощница в решении задач

В файле заменить вещественные числа со второго по предпоследнее средним арифметическим предыдущего, данного и следующего

Дан файл вещественных чисел. Заменить числа в файле со второго по предпомледнее средним арифметическим данного, предыдущего и последующего. Предусмотреть создание исходного файла данных.
0
вопрос задан

Источник


1 ответ
const
  n = 5;
 
 
var
  f: file of real;
  k, i: integer;
  x, xa, xb: real;
 
begin
  randomize;
  write('Сколько чисел? ');
  readln(k);
  assign(f, 'input.dat');
  rewrite(f);  
  writeln('Исходный файл: ');
  for i := 0 to k - 1 do
  begin
    x := -k div 2 + random * k;
    write(f, x);
    write(x:8:2);
  end;
  close(f);
  reset(f);
  for i := 1 to filesize(f) - 2 do
  begin
    seek(f, i - 1); //предыдущего 
    read(f, xa);
    seek(f, i); //данного
    read(f, x);
    seek(f, i + 1); // последующего.
    read(f, xb);
    x := (xa + x + xb) / 3;
    seek(f, i); //данного
    write(f, x); //записали
  end;
  close(f);
  reset(f);
  writeln('Обработанный файл: ');
  while not eof(f) do
  begin
    read(f, x);
    write(x:8:2);
  end;
  close(f);
end.