1. Приведем текст программы с использованием цикла While

Program Minimum_v_Massive;
Var
  i: Byte;
  A: Array[1..5] Of  Integer;
  Minimum: Integer;
Begin
  {Заполнение массива}
  Randomize;
  i:=1;
  While i<=5 Do
   Begin
     A[i]:=Random(11);
     i:=i+1;
   End;
  WriteLn('Исходный массив');
  i:=1;
  While i<=5 Do
   Begin
     Write(A[i], '  ');
     i:=i+1;
   End;
  WriteLn;
  {Нахождение минимального элемента}
  Minimum:=A[1];
  i:=2;
  While i<=5 Do
   Begin
     If Minimum > A[i] Then Minimum:=A[i];
     i:=i+1;
   End;
  WriteLn('В заданном массиве минимальный элемент равен ', Minimum);
End.
Текст этой программы можно взять здесь.

    Как видно из текста программы, использование цикла For является более эффективным тогда, когда известны значения верхней и нижней границ и шаг изменения счетчика цикла равен 1 или -1.

    2. Для того, чтобы осуществлялся поиск максимального элемента в массиве, нужно изменить условие следующим образом:


    .    .    .    .
    For i:=2 To 5 Do
         If Minimum < A[i] Then Minimum:=A[i];
    .    .    .    .

Таким образом, переменная Minimum в качестве своего значения будет иметь максимальное значение, находящееся в массиве.

    3. Ответ на этот вопрос имеется на предыдущем шаге.

    4. Приведем текст программы, позволяющий вводить количество элементов массива с клавиатуры:

Program Minimum_v_Massive;
Var
  i,n: Byte;
  A: Array[1..200] Of  Integer;
  Minimum: Integer;
Begin
  Write('Задайте количество элементов массива: ');
  ReadLn(n); {Количество элементов массива}
  {Заполнение массива}
  Randomize;
  For i:=1 To n Do
     A[i]:=30+Random(21);
  WriteLn('Исходный массив');
  For i:=1 To n Do 
     Write(A[i], '  ');
  WriteLn;
  {Нахождение минимального элемента}
  Minimum:=A[1];
  For i:=2 To n Do
     If Minimum > A[i] Then Minimum:=A[i];
  WriteLn('В заданном массиве минимальный элемент равен ', Minimum);
End.
Текст этой программы можно взять здесь.