Поиск минимального (максимального)
элемента массива
Задачу поиска
минимального элемента массива рассмотрим на примере массива целых
чисел.
Алгоритм поиска
минимального (максимального) элемента массива довольно очевиден: сначала
делается предположение, что первый элемент массива является минимальным
(максимальным), затем остальные элементы массива последовательно сравниваются с
этим элементом. Если во время очередной проверки обнаруживается, что проверяемый
элемент меньше (больше) принятого за минимальный (максимальный), то этот элемент
становится минимальным (максимальным) и продолжается проверка оставшихся
элементов.
Диалоговое окно
приложения поиска минимального элемента массива содержит соответствующим образом
настроенный компонент stringGridi, который применяется для ввода элементов
массива, два поля меток (Label1 и Labeia), использующиеся для вывода
информационного сообщения и результата работы программы, и командную кнопку
(Buttonl), при щелчке на которой выполняется поиск минимального элемента
массива. В табл. 5.4 приведены значения свойств компонента
stringGridi.
Таблица
5.4. Значения свойств компонента stringGrid1
Свойство |
Значение | ||
ColCount |
005 | ||
FixedCols |
000 | ||
RowCount |
001 | ||
DefaultRowHeight |
024 | ||
Height |
024 | ||
DefaultColWidth |
064 | ||
Width |
328 | ||
Options .
goEditing |
True | ||
Options .
AlwaysShowEditing |
True | ||
Options
.goTabs |
True | ||
В листинге 5.6
приведена процедура обработки события Onclick для командной кнопки Button1,
которая вводит массив, выполняет поиск мини-мального элемента и выводит
результат — номер и значение минимального элемента массива.
Листинг
5.6. Поиск минимального элемента массива
unit lookmin_;
interface
Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs,
StdCtrls, Grids;
type
TForm1 =
class(TForm)
Label1:
TLabel;
Button1:
TButton;
Label2:
TLabel;
StringGridl:
TStringGrid;
procedure
ButtonlClick(Sender: TObject); private
{ Private declarations )
public
{ Public declarations }
end;
var
Form1:
TForm1;
implementation
{$R *.DFM}
procedure
TForm1.ButtonlClick(Sender: TObject);
const
SIZE=5;
var
a:array[l..SIZE]of
integer; // массив целых
min:integer; // номер
минимального элемента массива
i:integer; // номер
элемента, сравниваемого с минимальным
begin
// ввод массива for i:=1
to SIZE do
a[i]:=StrToInt(StringGridl.Cells[i-1,0]);
// поиск минимального
элемента
min:=1; // пусть первый
элемент минимальный
for i:=2 to SIZE
do
if a[i]<
a[min]then min:=i;
// вывод результата
label2.caption:='Минимальный элемент массива:'
+IntToStr(a[min]
+#13+'Номер элемента:'+ IntToStr(min);
end;
end.
На рис. 5.8
приведен вид диалогового окна приложения после щелчка на кнопке
Поиск.
Рис. 5.8. Окно приложения Поиск минимального элемента массива