Напишите программу в паскале. Даны три одномерных массива из целых чисел. Найти элементы,...

0 голосов
47 просмотров

Напишите программу в паскале. Даны три одномерных массива из целых чисел. Найти элементы, принадлежащие всем трем массивам.


Информатика (18 баллов) | 47 просмотров
Дан 1 ответ
0 голосов

Ответ:

const N = 10;

begin

var a := ArrRandom(N, 0, 20);

var b := ArrRandom(N, 0, 20);

var c := ArrRandom(N, 0, 20);

write('Массив a: '); a.Println();

write('Массив b: '); b.Println();

write('Массив c: '); c.Println();

write('Элементы, принадлежащие всем трем массивам: ');

a.FindAll(x->b.Contains(x) and c.Contains(x)).Distinct(

).PrintLn();

end.

Объяснение:

Первые три строки после begin создают три массива a,b,c и заполняют их N целыми числами в диапазоне от 0 до 20.

Конструкция "a.FindAll(x->b.Contains(x) and c.Contains(x)).Distinct().PrintLn();" делает следующее:

В массиве a выполняется поиск всех элементов (метод FindAll), удовлетворяющих условию:

x->b.Contains(x) and c.Contains(x)

Которое проверяет каждый элемент массива a (который обозначен x), содержится ли он в массиве b и массиве c (Методы Contains).

Далее метод Distinct удаляет все одинаковые элементы из получившейся  последовательности, а метод PrintLn выводит результат на экран.


image
(2.5k баллов)
0

так это не паскаль же

0

PascalABC.NET, версия 3.2

0

а можно проще? используя более простые приёмы, циклами например

0

С этим решением разобраться намного проще, чем использовать более простые приемы, поскольку алгоритм будет на порядок сложнее, особенно если Вы не хотите выводить на экран повторяющиеся элементы

0

но мне проще надо

0

Решение обновлено.

0

Увы, изменить ответ я больше не могу. Если настаиваете на втором варианте, создайте новый вопрос, напишу ответ туда

0

угу