Есть ответ 👍

Решить в ПаскальАВС!!!!!!!!!!!!!!!!!!!

172
306
Посмотреть ответы 3

Ответы на вопрос:

Uoywex
4,5(57 оценок)

PascalABC.Net

begin

 var n := ReadInteger('Размер массива');

 var a := ReadArrInteger(n);

 a.Println;

 var b := a.Where(z -> z > 0);

 b.Println;

end.

Тестовое решение:

Размер массива 5

4

-5

-3

3

2

4 -5 -3 3 2

4 3 2


Пояснение: Результирующий массив B представляется в требуемом виде только пользователю при выводе на консоль. В памяти программы же он имеет несколько другой вид (поскольку имеет статический размер). Если требовалось создать массив с динамическим размером (например, используя функцию 'setlength'), напишите об этом.

const M = 10;

var A: array [1..M] of integer;

var B: array [1..M] of integer;

var i,j: integer;

begin

// Задаем элементы массива

For i:= 1 to M do

begin

write('Введите ',i,' элемент массива: ');

readln(A[i]);

end;

j:=1;

writeln('Массив B: ');

For i:= 1 to M do

begin

if (A[i]>0) then  

 begin

 B[j]:=A[i];

 write(B[j],' ');

 j:=j+1;

 end;

end;

end.


Строго объяснять не вижу смысла, поскольку придется тратить время на разъяснение массы попутных вещей, начиная от λ-исчисления и алонзо чёрча. если бы вам было понятно одно из определений, вроде " лямбда-выражение — это анонимная функция, с которой можно создавать типы делегатов или деревьев выражений", вы бы не стали писать сюда вопрос. поэтому постараюсь рассказать "на пальцах" и примерах. "лямбды" - это функции (а также, выражения и процедуры), позволяющие эффектно в одном месте и объявить их, и использовать, причем, зачастую, даже не давая этим функциям имени (анонимные функции). вот такие они "одноразовые". записывается лямбда обычно в форме t -> f(t) и читается "t переходит в f(t)". фактически, тут много общего с обычной функцией, имеющей формальный параметр t и определяющей в своем теле значение при f(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)

Популярно: Информатика