Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Листинг 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;

StringGrid1: TStringGrid;

procedure Button1Click(Sender: TObject);

private { Private declarations}

public { Public declarations)

end;

Var

Form1: TForm1;

Implementation

{$R *.DFM}

{ поиск в массиве перебором }

procedure TForm1.Button1Click(Sender: TObject);

Const

SIZE=5;

Var

a: array [1..SIZE] of integer; //массив

obr: integer; // образец для поиска

found: boolean; // TRUE — совпадение образца с элементом

// массива

i: integer; // индекс элемента массива

Begin

// ввод массива

for i:=1 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 > SIZE) or (found = TRUE);

if found then ShowMessage('Совпадение с элементом номер '

+IntToStr(i)+#13+'Поиск успешен.')

else ShowMessage('Совпадений с образцом нет.');

end;

End.

Очевидно, что чем больше элементов в массиве и чем дальше расположен нужный элемент от начала массива, тем дольше программа будет искать необходимый элемент.

Поскольку операции сравнения применимы как к числам, так и к строкам, данный алгоритм может использоваться для поиска как в числовых, так и в строковых массивах.





Дата публикования: 2015-01-14; Прочитано: 154 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...