PascalABC.NET
begin
var a := ArrRandom(4, -10, 20);
a.Println;
// ищем j - позицию первого неотрицательного элемента
var j := -1;
for var i := 0 to a.High do
if a[i] >= 0 then // нашли
begin
j := i;
break
end;
if j > -1 then
begin
for var i := j + 1 to a.High do
if a[i] < 0 then
begin
for var k := i downto j + 1 do
Swap(a[k], a[k-1]);
j += 1;
if j >= a.High then break;
end;
a.Println
end
else
Println('Нет положительных элементов')
end.
2. 6<10 ⇒ p=2*6+1=13, p=13+1=14
3. 14<10
ответ: p=14