Найти разность между максимальным и минимальным элементами массива
Алгоритм решения нахождения разности между максимальным и минимальным элементами массива:
- Инициализируем переменные для хранения индекса минимального значения (
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с текущим индексом.
- Если текущий элемент массива больше элемента с индексом
- После окончания цикла выводится разность максимального и минимального значений массива.