Заполнить массив с из 20 элементов следующим образом: первые 10 элементов случайные числа из интервала (-15, 21), следующие 7 по формуле i*6, остальные ввести с клавиатуры. распечатать массив в строчку. найти: а) сумму четных элементов б) количество положительных элементов в) найти минимальный элемент во второй половине массива г) отсортировать массив по убыванию
//Pascal ABC.NET v3.1 сборка 1219
Const
n=20;
Var
ar:array[1..n] of integer;
i,s,k,min,j:integer;
begin
randomize;
min:=2147483647;
for i:=1 to 10 do
ar[i]:=random(-15,21);
for i:=11 to 17 do
ar[i]:=i*6;
for i:=18 to n do
readln(ar[i]);
writeln('Array:');
for i:=1 to n do
write(ar[i]:4);
writeln;
i:=2;
while i<>n+2 do
begin
s:=s+ar[i];
i:=i+2;
end;
writeln('Sum=',s);
for i:=1 to n do
if ar[i]>0 then k:=k+1;
writeln('Count of positive elements=',k);
for i:=10 to n do
if min>ar[i] then min:=ar[i];
writeln('Min=',min);
for i:=1 to n-1 do
for j:=i+1 to n do
if ar[i]<ar[j] then
begin
k:=ar[i];
ar[i]:=ar[j];
ar[j]:=k;
end;
writeln('Sorted array:');
for i:=1 to n do
write(ar[i]:4);
end.
begin
var a := ArrRandomInteger(10, -15, 21) + ArrGen(7, i -> i * 6, 11) + ReadArrInteger(3);
a.Println;
Println('а) сумму четных элементов = ', a.Where(x -> x mod 2 = 0).Aggregate((s, x)-> s + x));
Println('б) количество положительных элементов = ', a.Count(x -> x > 0));
Println('в) найти минимальный элемент во второй половине массива = ', a.Skip(10).Min);
Println('г) отсортировать массив по убыванию = ');
a := a.SortedDescending.ToArray;
a.Println;
end.