<em>var</em>
<em> D : array of real := new real[25];</em>
<em> S1, S2 : real;</em>
<em> </em>
<em>begin</em>
<em> randomize;</em>
<em> for var i := 0 to 24 do D[i] := random(-100, 100);</em>
<em> writeln('Создан массив:', #10, D);</em>
<em> for var i := 0 to 24 do if D[i] < 0 then D[i] := i else D[i] := D[i]/2;</em>
<em> writeln('Положительные элементы уменьшаем вдвое, а отрицательные заменяем на значения индексов:', #10, D);</em>
<em> for var i := 0 to 24 do if i mod 2 = 0 then S1 += D[i] else S2 += D[i];</em>
<em> writeln('сумма четных элементов: ', S1);</em>
<em> writeln('сумма нечетных элементов: ', S2);</em>
<em> Reverse(D);</em>
<em> Writeln('распологаем элементы массива в обратном порядке:', #10, D);</em>
<em>end.</em>
первые 3 пункта, все преобразования делаются последовательно над рандомно сгенерированным массивом с диапозоном значений от -100 до 100. Программа тестилась под PascalABC.Net