Обмен минимального и максимального элементов (КуМир)

Тема: 
Массивы

В одномерном массиве чисел поменять местами максимальный и минимальный элементы.

Переменные:

  • N - количество элементов в массиве;
  • arr - массив;
  • mn, mx, i - индексы минимального, максимального и текущего элементов;
  • b - переменная, используемая при обмене значений.

Примерный алгоритм решения задачи:

  1. Заполним массив случайными числами от 0 до 100 и выведем его на экран.
  2. Предположим, что минимальным является первый элемент массива. Присвоим индекс первого элемента переменной mn.
  3. Также предположим, что максимальным тоже является первый элемент массива. Присвоим индекс первого элемента переменной mx.
  4. Проверим каждый элемент массива, начиная со второго. Если очередной элемент меньше того, который находится под индексом mn, то присвоить mn индекс текущего элемента.
  5. Также, перебирая элементы массива, проверять не больше ли текущий того, что находится под индексом mx. Если это так, то перезаписать mx на текущий индекс.
  6. Выведем на экран значение минимума и максимума.
  7. Произведем обмен значений. Для этого сначала в переменную b сохраним значение минимального элемента, запишем на место, где стоит минимальный элемент, значение максимального, и, наконец, запишем на место максимального элемента ранее сохраненное минимальное значение.
  8. Выведем измененный массив на экран.

алг
нач
  цел N = 10
  целтаб arr[1:N]
  цел mn, mx, i, b
  нц для i от 1 до N
    arr[i] := irnd(100) 
    вывод arr[i], " "  
  кц
  вывод нс
  mn := 1
  mx := 1
  нц для i от 2 до N
    если arr[i] < arr[mn] то 
      mn := i
    все
    если arr[i] > arr[mx] то
      mx := i
    все
  кц
  вывод "min=", arr[mn], " max=", arr[mx], нс
  b := arr[mn]
  arr[mn] := arr[mx]
  arr[mx] := b
  нц для i от 1 до N
    вывод arr[i], " "
  кц
кон

Пример работы программы:

4 16 34 83 64 14 26 36 68 45 
min=4 max=83
83 16 34 4 64 14 26 36 68 45