procedure InitMas(var a:V; fn:string); { инициализция массива из файла } var i:integer; f:Text; begin Assign(f,fn); Reset(f); for i:=1 to n do if not Eof(f) then Read(f,a[i]) else a[i]:=0; Close(f) end;
procedure MyProc(var a:V; t:real; var k:integer); { замена значением t элементов массива, меньших t } var i:integer; begin k:=0; for i:=1 to n do if a[i]<t then begin a[i]:=t; Inc(k) end end;
procedure OutMas(var a:V; an:string); { вывод элементов массива } var i:integer; begin Writeln('Массив '+an); for i:=1 to n do Write(a[i],' '); Writeln end;
procedure Work(var a:V; fn,an:string; t:real; var k:integer); { полный цикл обработки массива по заданию } begin InitMas(a,fn); MyProc(a,t,k) end;
var P,C:V; k1,k2:integer; t:real; begin Writeln('Введите значение T: '); Read(t); Work(P,'p.dat','P',t,k1); Work(C,'c.dat','C',t,k2); if k1=k2 then Writeln('Число замен равно ',k1) else if k1>k2 then OutMas(P,'P') else OutMas(C,'C') end.
Тестовое решение: Введите значение T: 0.005 Массив P 0.005 1.54 0.005 0.005 0.005 1.2 0.005
n=7;
type
V=array[1..n] of real;
procedure InitMas(var a:V; fn:string);
{ инициализция массива из файла }
var
i:integer;
f:Text;
begin
Assign(f,fn);
Reset(f);
for i:=1 to n do
if not Eof(f) then Read(f,a[i]) else a[i]:=0;
Close(f)
end;
procedure MyProc(var a:V; t:real; var k:integer);
{ замена значением t элементов массива, меньших t }
var
i:integer;
begin
k:=0;
for i:=1 to n do
if a[i]<t then begin a[i]:=t; Inc(k) end
end;
procedure OutMas(var a:V; an:string);
{ вывод элементов массива }
var
i:integer;
begin
Writeln('Массив '+an);
for i:=1 to n do Write(a[i],' ');
Writeln
end;
procedure Work(var a:V; fn,an:string; t:real; var k:integer);
{ полный цикл обработки массива по заданию }
begin
InitMas(a,fn);
MyProc(a,t,k)
end;
var
P,C:V;
k1,k2:integer;
t:real;
begin
Writeln('Введите значение T: '); Read(t);
Work(P,'p.dat','P',t,k1);
Work(C,'c.dat','C',t,k2);
if k1=k2 then Writeln('Число замен равно ',k1)
else
if k1>k2 then OutMas(P,'P') else OutMas(C,'C')
end.
Тестовое решение:
Введите значение T:
0.005
Массив P
0.005 1.54 0.005 0.005 0.005 1.2 0.005