// PascalABC.NET 3.2, сборка 1362 от 14.12.2016// Внимание! Если программа не работает, обновите версию!const n=34;begin // 1 var R:=ArrRandom(n,-8,8); R.Println; // 2 var b:=R.Slice(Trunc(0.75*n)-1,3); Writeln('Ср.гармоническое= ',b.Count/b.Aggregate(0.0,(x,y)->x+1.0/y)); // 3 var m:=R.Batch(n div 3).ToArray[1].Where(x->x.IsEven).MinBy(x->abs(x)); Writeln('Минимальный по модулю= ',m); // 4 var R2:=R.Select((x,i)->(x,i)).Batch(n div 2).ToArray; var r21:=R2[0].Where(x->x[0]<0).OrderBy(x->sqr(x[0])); var ind:=r21+R2[1].Where(x->x[0]<0).OrderBy(x->sqr(x[0])).ToArray; var ind1:=ind.UnZipTuple; var aVal:=ind1[0].ToArray; var aInd:=ind1[1].Sorted.ToArray; for var i:=0 to aVal.Count-1 do R[aInd[i]]:=aVal[i]; R.Printlnend.
Пример8 -3 2 -2 6 6 7 6 -7 -5 -4 6 2 2 1 1 -6 1 -1 -5 8 4 1 7 1 1 2 -8 -8 1 -7 1 8 -6Ср.гармоническое= 7.07368421052631Минимальный по модулю= 28 -2 2 -3 6 6 7 6 -4 -5 -6 6 2 2 1 1 -7 1 -1 -5 8 4 1 7 1 1 2 -6 -7 1 -8 1 8 -8