// PascalABC.NET 3.4.2, сборка 1790 от 15.09.2018
// Внимание! Если программа не работает, обновите версию!
begin
var a := ArrRandom(ReadInteger('n='), 1, 100); a.Println; // общее
Println('Максимальный четный ', a.Where(t -> t.IsEven).Max); // задача 1
Print('Второй минимальнывй нечетный'); // задача 2
a.Where(t -> t.IsOdd).OrderDescending.Skip(1).Take(1).Println // задача 2
end.
Пример
n= 15
67 8 60 1 96 40 73 25 39 93 64 89 40 69 9
Максимальный четный 96
Второй минимальнывй нечетный 89
var
n, Num, i, j, t: integer;
Count: array[1..12] of integer;
Names: array[1..12] of integer;
begin
for i := 1 to 12 do
begin
Count[i] := 0;
Names[i] := i;
end;
ReadLn(N); { Считываем количество запросов}
for i := 1 to N do
begin
ReadLn(t); {считали очередной запрос}
Count[t] := Count[t] + 1;
end;
{Сортируем массивы Names и Count в порядке убывания значений массива Count}
for i := 12 downto 2 do
for j := 2 to i do
if Count[j - 1] < Count[j] then
begin
t := Count[j];
Count[j] := Count[j - 1];
Count[j - 1] := t;
t := Names[j];
Names[j] := Names[j - 1];
Names[j - 1] := t;
end;
for i := 12 downto 1 do
if Count[i] > 0 then
WriteLn(Names[i], ' ', Count[i]);
end.
Объяснение: