program dlya_chego // название программы
var //начало программы
i,n,b,k1,k2:integer; // задание переменных и их типа
begin // начало выполнения операций
readln(n); // введите n (вроде, число элементов)
for i:=1 to n do read(a); // для элемента, равного 1 по n (т. е сколько элементов) ввести а
i:=1; // присвоение первому элементу массива 1
while (i<=n) and (a<0) do i:=i+1; // вывод массива. Т. е используют цикл "Пока" (Пример: Пока идет дождь, я читаю книгу... т. е цикл будет выполняться до тех пор, пока значение истинно, и прекратит выполняться, когда значение станет "ложь")
if i>n then writeln ('No'); //Если число элементов, больше заданных, то выводится No
else begin // Иначе, операторские скобки
k1:=i; //тупо присваиваем
i:=n:
while (i>=1) and (a) do i:=i-1; // опять цикл "Пока"
if i<1 then writeln ('No'); // i=1, поэтому и No
else begin // еще раз иначе и скобки
k2:=i;
b:=a[k1];
a[k1]:=a[k2];
a[k2]:=b;
for I:=1 to n do write (a, ' '); // вывод массива
end; //закрытие первых скобок
end; //вторых
end. // конец программы
ЗЫ: Если тут массив, то почему он не задаётся, а начинает использоваться с середины программы. Переменная "а" тоже должна задаваться.