program lab1b;
{$APPTYPE CONSOLE}
type masiv=array [1..65420] of real;
procedure sred_arph(var a:masiv; n:integer);
{процедура выполняет: вычисление среднего арифметического предыдущего, слудующего и последующего}
var tmp:masiv;
i:integer;
ar:real;
begin
tmp[1]:=a[1];
for i:=1 to n-2 do
begin
ar:=(a[i]+a[i+1]+a[i+2])/3;
tmp[i+1]:=ar;
end;
tmp[n]:=a[n];
for i:=1 to n do
a[i]:=tmp[i];
end;
var f:file of real;
k,i,j:integer;
mass:masiv;
tm:real;
begin
j:=0;
assignfile(f,'input.txt');
reset(f);
k:=filesize(f);
for i:=0 to k-1 do
begin
read(f,tm);
mass[i]:=tm;
seek(f,j+1);
inc(j);
end;
sred_arph(mass,k);
rewrite(f);
j:=0;
for i:=1 to k do
begin
write(f,mass[i]);
seek(f,j+1);
inc(j);
end;
close(f);
end.
program PMain;
{$APPTYPE CONSOLE}
uses
Classes, SysUtils;
var
fs: TFileStream;
FileName: String;
data: array of Real;
x,y,z:Real;
cnt:Integer;
i:Integer;
begin
FileName:='.....................';
fs:=TFileStream.Create(FileName,fmOpenReadWrite);
cnt:=fs.Size div SizeOf(Real);
SetLength(data,cnt);
fs.Read(x,SizeOf(Real));
fs.Read(y,SizeOf(Real));
data[0]:=x;
for i:=1 to cnt-1 do
begin
fs.Read(z,SizeOf(Real));
data[i]:=(x+y+z)/3;
x:=y;
y:=z;
end;
data[cnt-1]:=z;
fs.Seek(0,soFromBeginning);
for i:=0 to cnt-1 do fs.Write(data[i],SizeOf(Real));
fs.Free;
Writeln('cnt=',cnt);
Readln;
end.
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.