Показать сообщение отдельно
  #7  
Старый 29.12.2009, 21:31
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

наверное гдето так:
Код:
function TForm1.Compare2Mass(A, B: array of Integer): Boolean;
var
  i, n, k, lenA : Integer;
  X: array of Integer;
  noIn,
  netA: Boolean;
begin
  Result := false;
  lenA := Length(A);
  if lenA <> Length(B) then
    Exit;  // если длины не совпадают то не получится

  SetLength(X, lenA);

  for i := 0 to lenA - 1 do
  begin // для каждого элемента B[i] проверяем
    netA := true;
    for n := 0 to lenA - 1 do // проверяем массив А
      if B[i] = A[n] then // есть такой элемент в массиве А
      begin
        noIn := true;
        for k := 0 to i - 1 do
          if n = X[k] then
          begin // его уже сопоставили с другим элементом массива В
            noIn := false;
            break;
          end;
        if noIn then
        begin // этот элемент еще не сопостовляли
          X[i] := n;
          netA := false; // нашли новый элемент в А соответствующий очередному в В
          break;
        end;
      end;
    if netA then // не нашли новый элемент в А соответствующий очередному в В
      Exit;
  end;
  // если еще не вышли значит все элементы найдены
  Result := true;
end;
Ответить с цитированием