пускай висит код, всеравно тс он уже без надобности
{
input_1.dat sample:
3
-12
32
27
}
program Hello;
const
A_SIZE = 100;
type
ar = array [1..A_SIZE] of real;
var
a : array [1..2] of ar;
n : integer;
i : byte;
s_i : string;
filename : string;
Function CheckZeroElements(a : ar; n : integer) : boolean;
var
i : integer;
begin
CheckZeroElements := false;
for i := 1 to n do
if(a[i]=0) then
begin
CheckZeroElements := true;
break
end
end;
Function GetAverageOfNegatives(a : ar; n : integer) : real;
var
i : integer;
sum : real;
count : integer;
begin
count := 0;
sum := 0;
for i := 1 to n do
if a[i] < 0 then
begin
inc(count);
sum := sum + a[i]
end;
if count > 0 then
GetAverageOfNegatives := sum / count
else
GetAverageOfNegatives := 1
end;
Function SubstractAverage(a : ar; n : integer) : ar;
var
avg : real;
i : integer;
begin
avg := GetAverageOfNegatives(a, n);
writeln('average of negatives : ', avg:2:2);
for i := 1 to n do
a[i] := a[i] - avg;
SubstractAverage := a
end;
Function ReadData(InputFileName : string) : ar;
var
i : integer;
a : ar;
f : text;
begin
assign(f,InputFileName);
reset(f);
readln(f,n);
for i := 1 to N do
readln(f, a[i]);
close(f);
ReadData := a
end;
Procedure PrintData(a : ar; n : integer; OutputFileName:string);
var
i : integer;
f : text;
begin
assign(f,OutputFileName);
rewrite(f);
for i := 1 to N do
writeln(f, a[i]:2:2);
close(f)
end;
begin
for i := 1 to 2 do
begin
writeln('Array #',i,' performing...');
str(i, s_i);
filename := 'input_' + s_i + '.dat';
a[i] := ReadData(filename);
if CheckZeroElements(a[i],n) then
begin
a[i] := SubstractAverage(a[i],n);
filename := 'output_' + s_i + '.dat';
PrintData(a[i],n,filename);
writeln('done. Check <<' + filename + '>>');
end
else
writeln('array has zerovalued elements. Stop execution!')
end
end.