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 выводит результат на экран.
Выводится десятичное представление величины I, начиная с позиции положения курсора.Выводится десятичное представление величины I в крайние правые позиции поля шириной p.R – в поле шириной 18 символов выводится десятичное представление R в формате с плавающей точкой.R:p – в крайние правые позиции поля шириной p символов выводится десятичное представление значения R в формате с плавающей точкой. Если R>=0 минимальная длина поля вывода 7 символов, если R <=0, то минимальная длина поля вывода 8 символов.R:p:q – в крайние правые позиции поля шириной p символов выводится значение R в формате с фиксированной точкой, причем после десятичной точки выводится q цифр. Если q> 24, то при выводе используется формат с плавающей точкой.Ch – начиная с позиции курсора выводится значение Ch.Ch:p – в крайнюю правую позицию поля шириной p выводится значение.ChS – начиная с позиции курсора выводится значение S.S:p - значение S выводится в крайние правые позиции поля шириной p символов.
131072 /2048 = 64 секунды передается файл
64 *512 =32768 бит /8 /1024 = 4 Кб