• Заданное натуральное число n и 2 одномерные массивы X и Y, содержащие n элемент по каждому. Сформировать и вывести массив, каждый элемент которого, взятый из массива Х, не принадлежит множеству, образованному из элементов массива Y.

Ответы 6

  • x.Where() - это фильтр. Он выбирает из массива х только те элементы, которые удовлетворяют условию фильтрации. В данном случае условие выглядит как p->not y.Any(q->p=q). Это так называемое лямбда-выражение, т.е. функция, которая создается "на лету", а не описывается заранее. Условие сложное. Читается так: для каждого элемента p (это параметр, на место которого по очереди подставляются элементы со входа фильтра, т.е. в нашем случае как бы x[i]) не должно выполняться условие y.Any(q->p=q)
  • Это условие говорит о том, что хотя бы один элемент в y равен параметру p, т.е. x[i]
    • Автор:

      fideltp3c
    • 5 лет назад
    • 0
  • Спасибо вам большое за помощь!!!
  • В целом получается, что через фильтр проходят только те элементы из x, которые отсутствуют среди элементов y. Оставшаяся часть цепочки .ToArray служит для превращения последовательности элементов, прошедших через фильтр, в массив.
  • В левой части стоит var z:=, т.е. полученный массив помещается в переменную z, которая создается динамически и автоматически получает необходимый тип и размер. Поэтому z - это нужный нам массив. Остальные операторы просто выводят 'z=' и элементы массива z соответственнo.
    • Автор:

      mackenzie
    • 5 лет назад
    • 0
  • // PascalABC.NET 3.2, сборка 1457 от 29.05.2017// Внимание! Если программа не работает, обновите версию!begin  var n:=ReadInteger('n=');  var x:=ArrRandom(n,-50,50); Write('x: '); x.Println;  var y:=ArrRandom(n,-50,50); Write('y: '); y.Println;  var z:=x.Where(p->not y.Any(q->p=q)).ToArray;  Write('z: '); z.Printlnend.Примерn= 17x: -29 16 -20 -14 47 37 29 4 50 42 -30 38 -7 6 32 -11 -33y: -26 32 24 18 -39 38 -18 -8 -42 -7 46 38 -4 -43 47 -27 -13z: -29 16 -20 -14 37 29 4 50 42 -30 6 -11 -33
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years