Найти разность между максимальным и минимальным элементами массива

Узнай цену своей работы

Алгоритм решения нахождения разности между максимальным и минимальным элементами массива:

  1. Инициализируем переменные для хранения индекса минимального значения (min) и индекса максимального значения (max). Начальные значения могут быть, например, индексом первого элемента массива для обоих переменных.
  2. Проходим по всем элементам массива и сравниваем их с текущими значениями минимального и максимального элементов.
  3. Если текущий элемент меньше значения минимального элемента, обновляем переменную min с индексом текущего элемента.
  4. Если текущий элемент больше значения максимального элемента, обновляем переменную max с индексом текущего элемента.
  5. После окончания прохода по всем элементам массива, находим разность между максимальным и минимальным значениями.

Например, у нас есть следующий массив: [8, 2, 6, 1, 9]. Применяя алгоритм:

  1. Инициализируем переменные min и max с индексом первого элемента массива (8).
  2. Берем второй элемент массива, его значение 2. Сравниваем его со значением текущего минимального элемента (8). Так как 2 меньше, обновляем переменную min на индекс второго элемента.
  3. Берем третий элемент массива, его значение 6. Сравниваем его со значением текущего минимального элемента (2). Так как 6 больше, не обновляем переменную min.
  4. Берем четвертый элемент массива, его значение 1. Сравниваем его со значением текущего минимального элемента (2). Так как 1 меньше, обновляем переменную min на индекс четвертого элемента.
  5. Берем пятый элемент массива, его значение 9. Сравниваем его со значением текущего максимального элемента (8). Так как 9 больше, обновляем переменную max на индекс пятого элемента.
  6. Обход всех элементов окончен. Индекс минимального элемента равен 4, а индекс максимального элемента равен 5.
  7. Находим разность между максимальным и минимальным значениями: 9 - 1 = 8.

Листинг программы

const N = 10; // Константа для размера массива

var
    a: array[1..N] of integer; // Объявление массива
    i, min, max: byte; // Переменные для использования в циклах и хранения индексов минимального и максимального значений

begin
    randomize; // Инициализация генератора случайных чисел

    // Заполнение массива случайными числами и их вывод
    for i := 1 to N do 
        a[i] := random(100);

    for i := 1 to N do 
        write(a[i]:3);

    writeln; // Переход на новую строку

    min := 1; // Инициализация индекса минимального значения
    max := 1; // Инициализация индекса максимального значения

    // Поиск индексов минимального и максимального значений в массиве
    for i := 2 to N do begin
        if a[i] > a[max] then 
            max := i
        else 
            if a[i] < a[min] then 
                min := i;
    end;

    writeln(a[max], ' - ', a[min], ' = ', a[max] - a[min]);  // Вывод разности максимального и минимального значений
end.

Объяснение кода

  1. Объявляется константа N, которая определяет размер массива на 10 элементов.
  2. Объявляются переменные a, i, min и max.
    • a - массив типа integer, который будет хранить случайные числа.
    • i - переменная для использования в циклах.
    • min - переменная для хранения индекса минимального значения в массиве.
    • max - переменная для хранения индекса максимального значения в массиве.
  3. Инициализируется генератор случайных чисел.
  4. С помощью цикла for заполняется массив случайными числами и происходит их вывод на экран.
  5. Инициализируются переменные min и max значением 1.
  6. С помощью цикла for происходит поиск индексов минимального и максимального значений в массиве.
    • Если текущий элемент массива больше элемента с индексом max, обновляем переменную max с текущим индексом.
    • Если текущий элемент массива меньше элемента с индексом min, обновляем переменную min с текущим индексом.
  7. После окончания цикла выводится разность максимального и минимального значений массива.