Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Проверка уникальности элементов в строках двумерного массива на Pascal/Delphi

Delphi , Синтаксис , Массивы

При работе с двумерными массивами в Pascal/Delphi часто возникает необходимость проверки уникальности элементов в строках или столбцах. В данной статье мы рассмотрим, как можно использовать существующую функцию для проверки наличия повторяющихся данных в массиве, чтобы найти столбцы в матрице, не содержащие повторяющихся данных.

Описание задачи

Имеется функция noRepeat, которая проверяет наличие повторяющихся элементов в одномерном массиве. Задача состоит в том, чтобы, используя эту функцию, найти столбцы в двумерном массиве (матрице), где данные в строках являются уникальными.

Определение типов

Для начала определим типы, которые будем использовать в нашем коде:

type
  myArray = array [1..10] of integer;
  myMatrix = array[1..10] of myArray;

Функция noRepeat

Вот пример функции noRepeat, которая проверяет уникальность элементов в одномерном массиве:

function noRepeat(const A: myArray): Boolean;
var
  i: integer;
begin
  Result := false;
  for i:=1 to high(A) do
    for j := i + 1 to high(A) do
      if A[i] = A[j] then
      begin
        Result := true;
        Break; // Прерываем внутренний цикл, так как нашли повтор
      end;
  if i = high(A) then
    Result := not Result; // Если не было повторов, результат - не True
end;

Проверка столбцов матрицы

Теперь, когда у нас есть функция для проверки уникальности элементов в строке, мы можем использовать её для проверки столбцов матрицы:

procedure sendColumn(matrix: myMatrix);
var
  b: Boolean;
  Col: Integer;
begin
  for Col := low(matrix[0]) to high(matrix[0]) do
  begin
    b := noRepeat(column(matrix, Col));
    if not b then
      writeln('Столбец ', Col, ' содержит уникальные элементы');
  end;
end;

function column(matrix: myMatrix; column: Integer): myArray;
var
  i: Integer;
  tempArray: myArray;
begin
  for i := low(matrix) to high(matrix) do
    tempArray[i] := matrix[i][column];
  SetLength(tempArray, Length(matrix));
  Result := tempArray;
end;

Обратите внимание, что функция column преобразует столбец матрицы в одномерный массив, который затем можно использовать с функцией noRepeat.

Пример использования

var
  matrix: myMatrix;
begin
  // Инициализация матрицы
  // ...
  sendColumn(matrix);
end.

Заключение

Мы рассмотрели, как можно модифицировать существующую функцию для проверки уникальности элементов в массивах, чтобы применить её к столбцам двумерного массива в Pascal/Delphi. Используя данный подход, можно эффективно находить столбцы с уникальными элементами в строках матрицы.

Важно помнить, что в Pascal/Delphi порядок элементов в двумерном массиве может быть разным (по умолчанию - по строкам), поэтому при работе со столбцами необходимо учитывать этот факт и соответствующим образом адаптировать код.

Создано по материалам из источника по ссылке.

Задача заключается в проверке уникальности элементов в столбцах двумерного массива в Pascal/Delphi, используя функцию для одномерных массивов.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Массивы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-03-14 12:38:05/0.0014100074768066/0