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