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
kbndbyb6
05.07.2020
Возможны опечатки это язык си++ он похож на си#
#include <iostream> using namespace std;
int main() { int n; cin >> n;
// пункт а, если первая больше выводит 1, если последняя то 3, если равны то ==. Аналогично с пунктами в и с
cout << "a)"; if (n / 100 > n % 10) cout << 1 << "\n"; else if (n / 100 < n % 10) cout << 3 << "\n"; else cout << "==" << "\n";
cout << "b)"; if (n / 100 > n / 10 % 10) cout << 1 << "\n"; else if (n / 100 < n / 10 % 10) cout << 2 << "\n"; else cout << "==" << "\n";
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