Strona g│≤wna

 

Algorytmy wyszukiwania

Poni┐sze algorytmy wyszukiwania powinny dzia│aµ zar≤wno w Delphi jak i z drobn▒ modyfikacj▒ w Pascal'u.  

Pierwszy algorytm wyszukiwania polega na wyszukiwaniu warto╢ci w tablicy. Za│≤┐my, ┐e masz tablicΩ 10-elementow▒ typu String i chcesz w tej tablicy wyszukaµ jaki╢ element ( poznaµ jej indeks ). Oto procedura przeszukuj▒ca: 

type
  TSearch = String; // nowy typ bazujacy na typie String
  TTable = array[0..10] of TSearch;

function Find(Table : TTable; Data : TSearch; var Found : Integer) : Integer;
begin
{
  Ta procedura porownuje szukany element ( Data ) z kazdym elementem
  tablicy. Jezeli procedura znajdzie w tablicy element Data to zwraca
  rezultad w postaci numeru elementu.
}
  Found := 0;
  while (Found < High(Table)) and (Table[Found] <> Data) do Inc(Found);
    if Table[Found] <> Data then
      Result := -1 else Result := Found;
end;

Oto procedura wykorzystuj▒ca powy┐szy algorytm:

procedure TForm1.Button2Click(Sender: TObject);
var
  Tablica : TTable;
  Found : Integer;
begin
{ Wypelnienie tabliocy wartosciami }
  Tablica[0] := 'Jan';
  Tablica[1] := 'Adam';
  Tablica[2] := 'Aneta';
  Tablica[3] := 'Sylwia';
  Tablica[4] := 'Marta';
  Tablica[5] := 'Monika';
  Tablica[6] := 'Agata';
  Tablica[7] := 'Ewelina';
  Tablica[8] := 'Joanna';
  Tablica[9] := 'Krzysiek';
  Tablica[10] := 'Adrian';

  if Find(Tablica, 'Aneta', Found) > 0 then
    ShowMessage('Znelziono pod indeksem: ' + IntToStr(Found));
end;

A oto inny spos≤b zapisu tej procedury ( wyszukiwania ):

function Find(Table : TTable; Data : TSearch; var Found : Integer) : Integer;
begin
  Found := 0;
  repeat
    Inc(Found);
  until Table[Found] = Data;
  if Table[Found] <> Data then Result := -1  else Result := Found;
end;

 

Adam Boduch