1)последовательность действии
остальные незнаю
===== PascalABC.NET =====
begin
var a := ArrRandomReal(10, -99, 99); // случайные числа
a.Transform(p -> Round(p, 2)); // дробная часть - 2 знака
a.Println;
for var i := 0 to a.High do
if a[i] > 0 then
a[i] /= 2
else if a[i] < 0 then
a[i] := i + 1;
a.Println
end.