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