эхх, давно не занимался( паскаля нету но вижу ошибку вводишь массив, у тебя переменная i остаётся равным 30, соотвественоо мах = 30-му элементу массива, а номер элемента num ты присваиваешь 1. сделай мах:=А[1] max:=A[1]; num:=1; for i:=2 to n do if A[i]>max then begin max:=A[i]; num:=i; end; A[num]:=A[1]; A[1]:=max; Добавлено спустя 1 минуту 42 секунды: а может и я сам где то ошибаюсь, проверить не чем ну хоть вспомнил чуть-чуть