Предмет: Информатика, автор: 1239900

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

Ответы

Автор ответа: Helper211
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 выводит результат на экран.

Приложения:

1239900: так это не паскаль же
Helper211: PascalABC.NET, версия 3.2
1239900: а можно проще? используя более простые приёмы, циклами например
Helper211: С этим решением разобраться намного проще, чем использовать более простые приемы, поскольку алгоритм будет на порядок сложнее, особенно если Вы не хотите выводить на экран повторяющиеся элементы
1239900: но мне проще надо
Helper211: Решение обновлено.
Helper211: Увы, изменить ответ я больше не могу. Если настаиваете на втором варианте, создайте новый вопрос, напишу ответ туда
1239900: угу
Похожие вопросы
Предмет: Русский язык, автор: ЛейлаЭргюн
Предмет: Математика, автор: НикАноним1
Предмет: Алгебра, автор: DtSuga