Для заданного одномерного массива целых чисел выполнить последовательно следующие опции: найти количество и сумму чисел имеющих свойство а; переписать в другой массив числа, имеющий свойство б; все числа, имеющие свойства в, заменить заданным числом z1; упорядочить массив по не убыванию; удалить из него все числа, имеющие свойство г; вставить в нужное место массива заданное число z2, если его там нет. а) меньше своих соседей б) положительно в) наименьшее г) не кратно заданным p и q
// Внимание! Если программа не работает, обновите версию!
begin
var m:=ArrRandom(ReadInteger('n='),-20,20); m.Println;
(var k,var s):=(0,0);
for var i:=1 to m.Length-2 do
if (m[i]<m[i-1]) and (m[i]<m[i+1]) then (k,s):=(k+1,s+m[i]);
Writeln('Свойство А: кол-во=',k,', сумма=',s);
var mb:=m.Where(x->x<0).ToArray;
Write('Свойство Б: '); mb.Println;
var z:=ReadInteger('Z1=');
var mmin:=m.Min;
m.Transform(x->x=mmin?z:x); Writeln('Свойство B:'); m.Println;
m.Sort; Writeln('Упорядоченность по неубыванию:'); m.Println;
var p,q:integer; Write('Введите P Q: '); Read(p,q);
m:=m.Where(x->(x mod p<>0) and (x mod q<>0)).ToArray;
Writeln('Свойство Г:'); m.Println;
z:=ReadInteger('Z2=');
p:=m.FindIndex(x->x>=z);
if m[p]<>z then m:=(m[:p]+Arr(z)+m[p:]).ToArray;
Writeln('После попытки вставки:'); m.Println
end.
Пример
n= 17
3 5 -5 12 -15 6 11 -7 -13 -3 -17 8 -7 8 -5 -15 -7
Свойство А: кол-во=6, сумма=-72
Свойство Б: -5 -15 -7 -13 -3 -17 -7 -5 -15 -7
Z1= -33
Свойство B:
3 5 -5 12 -15 6 11 -7 -13 -3 -33 8 -7 8 -5 -15 -7
Упорядоченность по неубыванию:
-33 -15 -15 -13 -7 -7 -7 -5 -5 -3 3 5 6 8 8 11 12
Введите P Q: 3 7
Свойство Г:
-13 -5 -5 5 8 8 11
Z2= 0
После попытки вставки:
-13 -5 -5 0 5 8 8 11