![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!