Массив: Получить 3-е множество путем пересечения двух заданных множеств - PascalABC.NET
Формулировка задачи:
Даны 2 множества, получить 3-е множество путем пересечения двух множеств. Удалить все четные элементы множества. Найти элемент равный размерности множества после удаления элементов.
Решение задачи: «Массив: Получить 3-е множество путем пересечения двух заданных множеств»
textual
Листинг программы
begin var S := ReadArrInteger(ReadlnInteger('Count1: ')).Intersect(ReadArrInteger(ReadlnInteger('Count2: '))).Where(x -> not Odd(x)); var A := S.Where(x -> x = S.Count()); Writeln(A.Count() <> 0 ? A.First().ToString() : 'отсутствует искомый элемент'); end.
Объяснение кода листинга программы
В этом коде:
var S := ReadArrInteger(ReadlnInteger('Count1: ')).Intersect(ReadArrInteger(ReadlnInteger('Count2: '))).Where(x -> not Odd(x));
- Сначала мы считываем два массива целых чисел, используя функцию
ReadlnInteger
, которая принимает строку-метку для ввода. - Затем мы пересекаем эти два массива, используя метод
Intersect
. - После этого мы фильтруем пересечение, используя метод
Where
, чтобы оставить только нечетные числа. - Полученный массив
S
содержит искомые числа.
- Сначала мы считываем два массива целых чисел, используя функцию
var A := S.Where(x -> x = S.Count());
- Мы используем метод
Where
, чтобы отфильтровать массивS
, оставляя только элементы, равные его размеру. - Это означает, что мы ищем элемент, который встречается в массиве
S
столько же раз, сколько и его размер.
- Мы используем метод
Writeln(A.Count() <> 0 ? A.First().ToString() : 'отсутствует искомый элемент');
- Мы используем метод
Writeln
для вывода результата. - Если массив
A
не пустой, мы выводим первый элемент массиваA
, преобразованный в строку. - Если массив
A
пустой, мы выводим строкуотсутствует искомый элемент
.
- Мы используем метод