Ты бы хоть что-нибудь сам попробовал сделать. Что не понятно?
Как просмотреть вторую половину массива?
Код
for i := (Low(arr) + High(arr)) div 2 + 1 to High(arr) do
а если массив от 1 до n то и того проще
Код
for i := n div 2 + 1 to n do
Как выбрать отрицательные элементы?
Код
if arr[i] < 0 then
Как найти 2 минимальных элемента?
Знаешь как найти 1 минимальный элемент? Вот также, только тебе понадобятся 2 переменные для хранения минимумов. Если следующее число массива меньше максимального из минимумов, значит меняем максимальный из минимумов на это новое значение.