В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
miroororoe01
miroororoe01
23.10.2022 04:50 •  Информатика

Тема:Типовые задачи обработки массивов

Показать ответ
Ответ:
egorlapin2004
egorlapin2004
02.08.2020 07:13
Строго объяснять не вижу смысла, поскольку придется тратить время на разъяснение массы попутных вещей, начиная от λ-исчисления и Алонзо Чёрча. Если бы Вам было понятно одно из определений, вроде "Лямбда-выражение — это анонимная функция, с которой можно создавать типы делегатов или деревьев выражений", Вы бы не стали писать сюда вопрос. Поэтому постараюсь рассказать "на пальцах" и примерах.

"Лямбды" - это функции (а также, выражения и процедуры), позволяющие эффектно в одном месте и объявить их, и использовать, причем, зачастую, даже не давая этим функциям имени (анонимные функции). Вот такие они "одноразовые".

Записывается лямбда обычно в форме t -> f(t) и читается "t переходит в f(t)".
Фактически, тут много общего с обычной функцией, имеющей формальный параметр t и определяющей в своем теле значение при Конечно, параметр может быть и не один.

Изюминка "лямбд" в том, что они могут использоваться на правах простых переменных. Например, можно присвоить переменной "лямбду" и передать её, как параметр в программную единицу вместо функции, например
var f:real->real:=t->3*Sin(t)+Cos(t); Tab(f,0,10,0.1);

Лямбды очень активно присутствуют в операциях, пришедших в PascalABC.NET из LINQ .Net, в частности, в проецировании и фильтрации.
var n:=ArrGen(20,i->2*i+5).Where(t->Cos(t/6)<0).Count;

Последние версии PascalABC.NET 3.3 имеют очень развитые средства для программирования в функциональном стиле, построенные на "лямбдах".
Примеры множественного использования лямбд можно найти в файлах, входящих в стандартную поставку, в также в Справочном руководстве по библиотеке численных методов, ставшей стандартной с версии 3.3.0.1552 от 20.10.2017 (файл \Program Files\PascalABC.NET\Doc\NumLibABC.pdf)
0,0(0 оценок)
Ответ:
даша3335
даша3335
17.07.2020 22:23
// PascalABC.NET 3.3

const n=7;
begin
  Writeln('Исходный массив:');
  var a:=MatrRandomReal(n,n,-5,5); a.Println(6);
  var m:=a.ElementsByRow.Min;
  var imin:=a.ElementsWithIndexes.Where(k->k[0]=m).Select(k->k[1]).Single;
  var jmin:=a.ElementsWithIndexes.Where(k->k[0]=m).Select(k->k[2]).Single;
  writeln('min = a[',imin+1,',',jmin+1,'] =',m:6:2);
end.

Пример:
Исходный массив:
  4.68 -4.11  2.18  2.34 -1.06 -0.69  1.67
  4.58  3.27  1.39  4.55  0.32  0.65 -3.59
  3.10  0.66  0.94 -4.27 -1.46 -3.82 -0.40
 -4.90 -2.71  2.46 -1.43 -1.62  0.45  1.78
  1.59 -1.07  1.60 -0.16 -1.57 -0.83  2.95
  4.19 -3.16 -4.25  1.71 -4.27  1.04 -3.72
 -4.16 -2.30  0.90  4.46  3.51 -4.66  2.87
min = a[4,1] = -4.90
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота