const
  len = 30;

function GetMinPos(var arr : array [1..len] of integer) : integer;
var
  i, min : integer;
begin
  min := 1;
  for i := 2 to len do
    if arr[i] < arr[min] then
      min := i;
  GetMinPos := min;
end;

function GetMaxPos(var arr : array [1..len] of integer) : integer;
var
  i, max : integer;
begin
  max := 1;
  for i := 2 to len do
    if arr[i] > arr[max] then
      max := i;
  GetMaxPos := max;
end;

var
  arr : array [1..len] of integer;
  i, temp, min, max : integer;
begin
  //Заполняем массив случайными числами
  for i := 1 to len do
    arr[i] := Random(1000);
  //---
  //Выводим массив
  for i := 1 to len do
    write(arr[i], ' ');
  writeln;
  //---
  //Находим позиции наименьшего и наибольшего элементов
  min := GetMinPos(arr);
  max := GetMaxPos(arr);
  //---
  //Перемещаем наибольший элемент в начало
  temp := arr[1];
  arr[1] := arr[max];
  arr[max] := temp;
  //---
  //Перемещаем наименьший элемент в конец
  temp := arr[len];
  arr[len] := arr[min];
  arr[min] := temp;
  //---
  //Выводим массив
  for i := 1 to len do
    write(arr[i], ' ');
  writeln;
  //---
end.