Как определить сколько разных городов в массиве? - Free Pascal
Формулировка задачи:
Есть массив городов (mas[i].gorod):
Питер
Москва
Питер
Москва
Москва
Питер
Москва
Ростов-на-Дону
Питер
Москва
Ростов-на-Дону
Ростов-на-Дону
В массиве всего три разных города : Ростов-на-Дону, Москва и Питер.
Как определить, что их всего три? То есть, как определить сколько
разных
городов в массиве?Решение задачи: «Как определить сколько разных городов в массиве?»
textual
Листинг программы
var X : R; // R - базовый тип для массива... begin with TStringList.Create do try Duplicates := dupIgnore; Sorted := True; for X in mas do Add(X.gorod); writeln(Count); // <--- Выведет именно 3 finally Free; end; end;
Объяснение кода листинга программы
В данном коде используется язык программирования Free Pascal.
- Создается новый объект
TStringListс помощью методаCreate. - В цикле по каждому элементу массива
masдобавляется значение поляgorodвTStringList. - Перед выводом количества элементов в
TStringList, устанавливается свойствоDuplicatesвdupIgnore, чтобы игнорировать дубликаты. - Выводится количество элементов в
TStringListс помощьюwriteln(Count). - В конце освобождается память с помощью метода
Free. В данном случае, в массивеmasесть три уникальных значения:Москва,Санкт-Петербург,Казань.