Найти разность между максимальным и минимальным элементами массива
Алгоритм решения нахождения разности между максимальным и минимальным элементами массива:
- Инициализируем переменные для хранения индекса минимального значения (
min
) и индекса максимального значения (max
). Начальные значения могут быть, например, индексом первого элемента массива для обоих переменных. - Проходим по всем элементам массива и сравниваем их с текущими значениями минимального и максимального элементов.
- Если текущий элемент меньше значения минимального элемента, обновляем переменную
min
с индексом текущего элемента. - Если текущий элемент больше значения максимального элемента, обновляем переменную
max
с индексом текущего элемента. - После окончания прохода по всем элементам массива, находим разность между максимальным и минимальным значениями.
Например, у нас есть следующий массив: [8, 2, 6, 1, 9]. Применяя алгоритм:
- Инициализируем переменные
min
иmax
с индексом первого элемента массива (8). - Берем второй элемент массива, его значение 2. Сравниваем его со значением текущего минимального элемента (8). Так как 2 меньше, обновляем переменную
min
на индекс второго элемента. - Берем третий элемент массива, его значение 6. Сравниваем его со значением текущего минимального элемента (2). Так как 6 больше, не обновляем переменную
min
. - Берем четвертый элемент массива, его значение 1. Сравниваем его со значением текущего минимального элемента (2). Так как 1 меньше, обновляем переменную
min
на индекс четвертого элемента. - Берем пятый элемент массива, его значение 9. Сравниваем его со значением текущего максимального элемента (8). Так как 9 больше, обновляем переменную
max
на индекс пятого элемента. - Обход всех элементов окончен. Индекс минимального элемента равен 4, а индекс максимального элемента равен 5.
- Находим разность между максимальным и минимальным значениями: 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.
Объяснение кода
- Объявляется константа
N
, которая определяет размер массива на 10 элементов. - Объявляются переменные
a
,i
,min
иmax
.a
- массив типа integer, который будет хранить случайные числа.i
- переменная для использования в циклах.min
- переменная для хранения индекса минимального значения в массиве.max
- переменная для хранения индекса максимального значения в массиве.
- Инициализируется генератор случайных чисел.
- С помощью цикла
for
заполняется массив случайными числами и происходит их вывод на экран. - Инициализируются переменные
min
иmax
значением 1. - С помощью цикла
for
происходит поиск индексов минимального и максимального значений в массиве.- Если текущий элемент массива больше элемента с индексом
max
, обновляем переменнуюmax
с текущим индексом. - Если текущий элемент массива меньше элемента с индексом
min
, обновляем переменнуюmin
с текущим индексом.
- Если текущий элемент массива больше элемента с индексом
- После окончания цикла выводится разность максимального и минимального значений массива.