Минимум в некоторой последовательности чисел это наименьшее значение. Например, среди чисел последовательности 431, 85, 200, 125 минимумом является число 85. Если числа последовательности сохранить в массиве, то можно найти номер минимального элемента массива.
Сохраним числа в массиве: a[1]=431, a[2]=85, a[3]=200, a[4]=125.
Минимум хранится в ячейке с номером 2, значит номер минимального элемента это число 2.
В этой публикации приведем примеры программ поиска номера минимального элемента массива.
Будем считать, что в массиве хранятся целые числа, диапазон значений не известен.
Исходные данные: a – массив целых чисел
Выходные данные: min – минимальный элемент, kmin – номер минимального элемента массива
За начальное значение минимума min возьмем значение первого элемента, тогда за номер минимального элемента kmin возьмем номер 1.
Далее будем сравнивать каждый элемент массива со значением min, если a[k]<min
, то перезапишем значение min на значение a[k], а значение kmin на значение k.
Программа решения на языке Паскаль
var a:array[1..10] of integer;
k,min,kmin:integer;
begin
for k:=1 to 10 do
begin
read(a[k]);
end;
min:=a[1];
kmin:=1;
for k:=2 to 10 do
begin
if a[k]<min then
begin
min:=a[k];
kmin:=k;
end;
end;
writeln('Минимальный элемент ',min);
writeln('Номер минимального элемента массива ',kmin);
end.
Результат выполнения программы
Чтобы не вводить значения элементов массива с клавиатуры, можно воспользоваться датчиком случайных чисел.
Еще одна программа
Теперь не будем сохранять само минимальное значение, а будем пользоваться номером минимального элемента.
За номер минимального элемента kmin возьмем 1. Далее будем сравнивать a[k]<a[kmin]
, в случае истины, будем перезаписывать kmin на k.
Программа решения на языке Паскаль
var a:array[1..10] of integer;
k,min,kmin:integer;
begin
for k:=1 to 10 do
begin
read(a[k]);
end;
kmin:=1;
for k:=2 to 10 do
begin
if a[k]<a[kmin] then
begin
kmin:=k;
end;
end;
writeln('Минимальный элемент ',a[kmin]);
writeln('Номер минимального элемента массива ',kmin);
end.
Еще одна программа с применением методов последовательностей PascalABC.NET
a.min
– определяет минимальное значение в массиве
a.indexof(a.min)
– определяет номер элемента, равного минимальному
Массив описан как динамический (не указываются номера элементов, нумерация начинается с 0). Оператор setlength(a,10)
выделяет память под массив (десять ячеек).
var a:array of integer;
k:integer;
begin
setlength(a,10);
for k:=0 to 10-1 do
begin
read(a[k]);
end;
writeln('Минимальный элемент ',a.min);
writeln('Номер минимального элемента массива ',a.indexof(a.min));
end.
Как еще можно найти номер минимального элемента массива?
Предложите свои способы.
Читайте также: