A3. Для групповых операций с файлами используются маски имен файлов. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которых также могут встречаться следующие символы: Символ «?» (вопросительный знак) означает ровно один произвольный символ. Символ «*» (звездочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность. Определите, по какой из масок будет выбрана указанная группа файлов
abcd.txt, bc.tel, bcd.txt, bc.tel
1) *bc*.?t* 2) ?bc?.t?? 3) ?bc?.t* 4) *bc*.t??
Решение: Имя файла состоит из идентификатора и расширения, разделенных точкой. Идентификаторы указанной группы имеют разную длину, но в каждом идентификаторе присутствуют символы bc, следовательно, исходя из определения шаблона «*» идентификатор маски можно задать в виде: *bc*. Расширение у всей группы файлов состоит из трех символов, причем, первый символ после точки у всех четырех файлов – одинаковый – t. Cледовательно, для расширения надо использовать шаблон «t??». Чтобы выбрать указанную группу файлов должна быть задана следующая маска: *bc*.t??
begin
var a:=ArrRandom(ReadInteger('n='),-50,50);
a.Println;
Writeln('s=',a.Select((x,i)->Rec(x,i+1)).Where(x->x.Item1>0)
.Select(x->x.Item2).Sum)
end.
Тестовое решение:
n= 15
-27 45 -9 38 -30 -22 -36 18 -40 5 -47 5 33 -21 -44
s=49