Const n=20; var a: array[1..20] of integer = ( 20, 9, 24, 12, 23, 24, 21, 17, 1, 15, 25, 8, 21, 2, 6, 4, 12, 16, 8, 13); i,j,k: integer; begin for i:=1 to n-1 do for j:=i+1 to n do if a[j]<a[i] then swap(a[i],a[j]); writeln('отсортированный массив: '); for i:=1 to n do write(a[i],' '); writeln; k:=0; i:=1; j:=2; repeat if a[j]-a[i]>=3 then begin writeln('пара: ',a[i],' ',a[j]); i:=j; inc(k); end; inc(j); until j>n; writeln('количество солдат:k+1); end.
// PascalABC.NET 3.3, сборка 1600 от 23.12.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println; var (k1,k2):=ReadInteger2('Границы номеров элементов k1 и k2:'); if (k1>0) and (k2<=a.Length) and (k2>k1) then Writeln('П=',a[k1-1:k2].Aggregate(BigInteger(1),(p,q)->p*q)) else Writeln('Неверно заданы k1,k2') end.
Пример n= 17 -49 33 -50 34 -21 -3 -16 -39 8 -27 -28 11 -12 -33 47 9 -20 Границы номеров элементов k1 и k2: 3 15 П=-82750680146534400
var a: array[1..20] of integer = ( 20, 9, 24, 12, 23, 24, 21, 17, 1,
15, 25, 8, 21, 2, 6, 4, 12, 16, 8, 13);
i,j,k: integer;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if a[j]<a[i] then swap(a[i],a[j]);
writeln('отсортированный массив: ');
for i:=1 to n do write(a[i],' ');
writeln;
k:=0;
i:=1; j:=2;
repeat
if a[j]-a[i]>=3 then
begin
writeln('пара: ',a[i],' ',a[j]);
i:=j;
inc(k);
end;
inc(j);
until j>n;
writeln('количество солдат:k+1);
end.
отсортированный массив:
1 2 4 6 8 8 9 12 12 13 15 16 17 20 21 21 23 24 24 25
пара: 1 4
пара: 4 8
пара: 8 12
пара: 12 15
пара: 15 20
пара: 20 23
количество солдат: 7
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
var (k1,k2):=ReadInteger2('Границы номеров элементов k1 и k2:');
if (k1>0) and (k2<=a.Length) and (k2>k1) then
Writeln('П=',a[k1-1:k2].Aggregate(BigInteger(1),(p,q)->p*q))
else Writeln('Неверно заданы k1,k2')
end.
Пример
n= 17
-49 33 -50 34 -21 -3 -16 -39 8 -27 -28 11 -12 -33 47 9 -20
Границы номеров элементов k1 и k2: 3 15
П=-82750680146534400