PascalABC.NET 3.7:
###RS.AdjacentGroup.SelectMany(x → x.Len >= 3 ? x.Len + x[0] : x.Str).PrПояснение:
RS - ReadString: Возвращает значение типа string, введенное с клавиатуры.
AdjacentGroup: Группирует одинаковые подряд идущие элементы, получая последовательность массивов.
SelectMany: Проецирует каждый элемент последовательности в новую последовательность и объединяет результирующие последовательности в одну последовательность.
.Len - .Length: Длина массива.
.Str - .JoinToString: Преобразует последовательность символов в строку, не используя разделитель (при последовательность другого типа данных в качестве разделителя используется пробел).
.Pr - .Print: Выводит последовательность символов на экран, не используя разделитель (при последовательность другого типа данных в качестве разделителя используется пробел).
Пример работы:
1.
var
a: integer;
begin
readln(a);
if ((a mod 10) mod 2 = 0) and ((a mod 100) mod 2 = 0) then writeln('да')
else writeln('нет');
end.
2.
var
a, max: integer;
begin
readln(a);
max : = -1;
while a < > 0 do
begin
if ((a mod 10) mod 2 = 0) and ((a mod 10) mod 2 > max) then max : = (a mod 10) mod 2;
a : = a div 10;
end;
if max < > -1 then writeln(max)
else writeln('');
end.
3.
var
mas: array[0..19] of integer;
sum, i: integer;
begin
randomize;
sum : = 0;
for i : = 0 to 19 do
begin
mas[i] : = -45 + random(1 + 45 + 55);
if (mas[i] mod 2 = 0) and (mas[i] > 0) then sum += mas[i];
end;
writeln(sum);
end.