Нижче наведено текст програми пошуку в масиві цілих чисел. Перебір елементів масиву здійснюється інструкцією repeat, в тілі якої інструкція if порівнює поточний елемент масиву з зразком і привласнює змінної found значення true, якщо поточний елемент і зразок рівні.
Цикл завершується, якщо в масиві виявлено елемент, рівний зразком (в цьому випадку значення змінної found одно true), або якщо перевірені всі елементи масиву. Після закінчення циклу за значенням змінної found можна визначити, успішний пошук чи ні.
Вид діалогового вікна програми Пошук в масиві наведено на рис. 5.9.
Рис. 5.9. Діалогове вікно програми Пошук в масиві
Клацання на командному кнопці Пошук (Buttoni) запускає процедуру TForm1.Button1Click (її текст приведений в лістингу 5.7), яка з компонента stringGridi вводить масив, а з поля редагування Edit2 – число (зразок). Потім виконується перевірка, чи містить масив введене число. Після завершення перевірки процедура showMessage виводить повідомлення про результат пошуку.
Лістинг 5.7. Пошук в масиві
unit s_found_; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm1 = Class (TForm) Label1: TLabel; Label2: TLabel; Button1: TButton; Edit2: TEdit; StringGridi: TStringGrid; procedure ButtonlClick (Sender: TObject); private {Private declarations} public {Public declarations) end; var Form1: TForm1; implementation {$ R * .DFM} {Пошук в масиві перебором} procedure TForml.ButtonlClick (Sender: TObject); const SIZE = 5; var a: array [1..SIZE] of integer; // масив obr: integer; // зразок для пошуку found: boolean; // TRUE - збіг зразка з елементом // масиву i: integer; // індекс елемента масиву begin // введення масиву for i: = l to SIZE do a [i] : = StrToInt (StringGridl.Cells [i-1,0]); // введення зразка для пошуку obr : = StrToInt (edit2.text); // пошук found : = FALSE; // нехай потрібного елемента в масиві немає i: = 1; repeat if a [i] = obr then found: = TRUE else i: = i + 1; until (I & gt; SIZE) or (found = TRUE); if found then ShowMessage ( 'Збіг з елементом номер' + IntToStr (i) + # 13 + 'Пошук успішний. ') else ShowMessage ( 'Співпадінь зі зразком немає.'); end; end.
Очевидно, що чим більше елементів в масиві і чим далі розташований потрібний елемент від початку масиву, тим довше програма буде шукати необхідний елемент.
Оскільки операції порівняння застосовні як до чисел, так і до рядків, даний алгоритм може використовуватися для пошуку як в числових, так і в строкових масивах.