Пошук мінімального (максимального) елемента масиву

Завдання пошуку мінімального елемента масиву розглянемо на прикладі масиву цілих чисел.

Алгоритм пошуку мінімального (Максимального) елемента масиву досить очевидний: спочатку робиться припущення, що перший елемент масиву є мінімальним (максимальним), потім інші елементи масиву послідовно порівнюються з цим елементом. Якщо під час чергової перевірки виявляється, що перевіряється елемент менше (більше) прийнятого за мінімальний (максимальний), то цей елемент стає мінімальним (максимальним) і триває перевірка решти елементів.

Діалогове вікно програми пошуку мінімального елемента масиву містить відповідним чином налаштований компонент 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. Вікно програми Пошук мінімального елемента масиву