procedure abcd(k:integer; var smax,smin,sum:integer; var prod:BigInteger); begin if k>smax then smax:=k; if k<smin then smin:=k; if k<0 then sum+=k; prod*=k end;
begin var (smin,smax,sum):=(MaxInt,-MaxInt,0); var prod:BigInteger:=1; ReadSeqInteger('Введите 15 чисел->',15) .ForEach(p->abcd(p,smax,smin,sum,prod)); Writeln('Min=',smin,', max=',smax,', сумма отрицательных=',sum); Writeln('Произведение=',prod) end.
Программа на паскале:
var a,min,max,p,s,i:integer;
begin
write('a = ');
readln(a);
min:=a; max:=a;
if a<0 then s:=a else s:=0;
for i:=2 to 15 do
begin
write('a = ');
readln(a);
if a<min then min:=a;
if a>max then max:=a;
if a<0 then s:=s+a;
end;
writeln('min = ',min,' max = ',max,' p = ',min*max);
writeln('s = ',s);
end.
Пример (для 5 чисел):
a = 5
a = -4
a = 2
a = 7
a = -1
min = -4 max = 7 p = -28
s = -5
procedure abcd(k:integer; var smax,smin,sum:integer;
var prod:BigInteger);
begin
if k>smax then smax:=k;
if k<smin then smin:=k;
if k<0 then sum+=k;
prod*=k
end;
begin
var (smin,smax,sum):=(MaxInt,-MaxInt,0);
var prod:BigInteger:=1;
ReadSeqInteger('Введите 15 чисел->',15)
.ForEach(p->abcd(p,smax,smin,sum,prod));
Writeln('Min=',smin,', max=',smax,', сумма отрицательных=',sum);
Writeln('Произведение=',prod)
end.