Czy wartość istnieje w macierzy

0

W jaki sposób mogę sprawdzić, czy dana wartość istnieje w macierzy, ale bez jej przeszukiwania? Kombinowałem z operatorem in:

var
  Tab: array of Byte;
begin
  {...}

  if 10 in Tab then
    ;

  {...}

ale kompilator w ten sposób sprawdza zbiory, nie macierze. Czy istnieje tak prosty sposób na sprawdzenie, czy trzeba ręcznie przeszukiwanie napisać?

Mogę użyć tego operatora tak:

if 10 in [4, 10, 50, 255] then
  ;

no ale podaję zbiór, a nie macierz;

Macierz, którą chcę sprawdzić jest typu Tab: array of Byte i mam do niej wpisane kilka wartości. Chcę sprawdzić, czy wartość licznika pętli zawarta jest w macierzy. Chciałem to zrobić tak:

var
  Tab: array of Byte;
  I: Integer;
begin
  SetLength(Tab, 2);
  //przykładowe (losowe) wartości
  Tab[0] := 4;
  Tab[1] := 7;
  Tab[2] := 10;

  for I := 0 to 255 do
    if not (I in Tab) then
      //dalsze instrukcji

ale ten operator nie pasuje. Można go jakimś zastąpić, czy muszę napisać funkcję wyszukującą?

0
  SetLength(Tab, 2);
  //przykładowe (losowe) wartości
  Tab[0] := 4;
  Tab[1] := 7;
  Tab[2] := 10;

błąd: ustawiasz długość tablicy na 2 a odwołujesz się do trzech elementów.

for i:=low(tab) to high(tab) do
  if tab[i] = 42 then
    ...
0

To nie jest kod z mojego programu, wymyśliłem go żeby pokazać o co mi chodzi.

Czyli jednak nie ma możliwości odwołania się w napisany przeze mnie wcześniej sposó, tylko trzeba ręcznie przeszukać tablicę?

1 użytkowników online, w tym zalogowanych: 0, gości: 1