Обобщённая проверка массивов на равенство — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Новая страница: «/// <summary> /// Проверяет массивы a, b на равенство и возвращает /// истину, если они равны /// </summar…»)
 
 
Строка 1: Строка 1:
/// <summary>
+
<source lang="pascal">/// <summary>
 
/// Проверяет массивы a, b на равенство и возвращает
 
/// Проверяет массивы a, b на равенство и возвращает
 
/// истину, если они равны
 
/// истину, если они равны
Строка 22: Строка 22:
 
   end;
 
   end;
 
end;
 
end;
 +
</source>
  
 
[[Категория:Основы программирования]]
 
[[Категория:Основы программирования]]

Текущая версия на 23:12, 12 февраля 2016

/// <summary>
/// Проверяет массивы a, b на равенство и возвращает
/// истину, если они равны
/// </summary>
/// <param name="a">Первый массив</param>
/// <param name="b">Второй массив</param>
/// <returns>Истину, если содержимое массивов равно</returns>
function ArrsAreEqual<T>(a, b: array of T): boolean; 
begin
  Assert(a <> nil, 'ArrsAreEqual: a <> nil');
  Assert(b <> nil, 'ArrsAreEqual: b <> nil');
  // сравниваем длины
  Result := a.Length = b.Length;
  if Result then
  begin
    // здесь result is true
    var i := 0;
    while (i < a.Length) and (a[i] = b[i]) do
      i += 1;
    if i < a.Length then
      Result := false;
  end;
end;