В чем проблемы? В одном цикле пройдите масив, проверяя каждый элемент по каждому из условий. Пункт 2 выполняйте сначала:
D[4]:=D[4]+D[6];
D[6]:=D[4]-D[6];
D[4]:=D[4]-D[6];
Вводьте дополнительные переменные Max, fiveQuantity для поиска макс. элемента и количества 5, и проверяйте в цикле:
if D[i]>Max then Max:=D[i];
if D[i]=5 then
begin
D[i]:=1;
Inc(fiveQuantity)
end;
Не забудьте прежде присвоить переменной Max значение первого элемента.
Сумму пятерок выводим умножением fiveQuantity на 5 в процедуре вывода.
Если понадобится, элементы массива генерируем в цикле таким образом:
D[i]:=random(58)-15;
Процедура randomize пишется опционально.
В программу соберете сами?