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